cdn触发器 -奇异果体育app竞彩官网下载
更新时间:2020-01-14
用户可以为新建的函数或已有函数配置cdn触发器,创建函数的流程可以具体参考 这里不再赘述。
这里假设用户已完成一个名为hello-cdn的python函数的创建,以下内容以此为前提,指引用户在cfc控制台在函数管理页面中为函数配置触发器。接下来,我们将通过三步来完成一个触发器的设置。
编写处理函数
使用cdn触发器需要用户在函数代码中作出相应的调整,按照cdn的事件格式来编写handler,具体可参考 cdn事件说明。
- 登录管理控制台,选择“产品服务>云函数计算 cfc”,进入“函数列表”页面。
- 在“函数列表”页面,点击名称为hello-cdn的函数,进入函数详情页面。
-
在函数详情页中编写函数代码,以对触发操作做出适当的处理,之后点击右下角保存按钮完成函数的修改操作。
# -*- coding: utf-8 -*- def handler(event, context): for record in event['events']: domain = record['eventdetail']['domain'] status = record['eventdetail']['status'] print("current status of domain '%s' is '%s'" % (domain, status)) return 'successfully processed {} records.'.format(len(event['events']))
配置cdn触发器
- 登录管理控制台,选择“产品服务> 函数计算 cfc”,进入“函数列表”页面。
- 点击需要添加cdn触发器的函数名称(即hello-cdn),进入函数详情页面。
- 点击左侧导航栏中的“触发器”,进入函数配置页面,点击“新增触发器”。
- 在弹出框中,点击下拉框“选择事件源进行添加”,选择cdn触发器。
-
之后在弹出框中配置好域名、事件类型和触发器备注,并点击确认,完成触发器的创建。
- 事件类型:触发器需要匹配的事件类型,可以通过下拉框选择一种类型,这里我们选择“启动域名成功”
- 域名:cdn服务中管理的域名
- 备注:触发器的备注信息
- 在函数配置页面“触发器”一栏中,可以看到刚刚创建好的cdn触发器及其信息。
测试触发器
- 点击测试按钮
-
输入测试事件,并点击执行,测试内容如下
{ "events": [ { "eventname": "cdndomainstarted", "eventversion": "1.0.0", "eventsource": "cdn", "eventtime": 1551085929, "userid": "9b2aa05367204d9481ef29bdf5ef8243", "eventdetail": { "domain": "www.test.com", "status": "started" } } ] }
- 查看返回的结果
cdn事件说明
事件名称 | 事件说明 | 事件粒度 | 事件版本 |
---|---|---|---|
cachedobjectsblocked | 发现违禁资源 | 用户粒度 | 1.0.0 |
cachedobjectspushed | 预热资源完成 | 用户粒度 | 1.0.0 |
cachedobjectsrefreshed | 刷新资源完成 | 用户粒度 | 1.0.0 |
cdndomaincreated | 创建域名成功 | 用户粒度 | 1.0.0 |
cdndomaindeleted | 删除域名成功 | 用户粒度 | 1.0.0 |
logfilecreated | 产生域名日志 | 域名粒度、用户粒度 | 1.0.0 |
cdndomainstarted | 启动域名成功 | 域名粒度、用户粒度 | 1.0.0 |
cdndomainstopped | 停止域名成功 | 域名粒度、用户粒度 | 1.0.0 |
粒度说明
事件的粒度分为用户粒度和域名粒度,其中域名粒度更为精细,用户粒度指代用户全局粒度;针对每个cfc函数触发器的设置,不指定具体域名即为用户粒度触发器,指定具体域名即为域名粒度触发器。
- 用户粒度:用户账户产生指定事件,即可触发相关cfc函数
- 域名粒度:特定域名产生指定事件,即可触发相关cfc函数
事件结构
预热刷新事件 cachedobjectspushed:用户账户下预热任务完成 cachedobjectsrefreshed:用户账户下刷新任务完成
{
"events": [
{
"eventname": "cachedobjectspushed", // 事件类型
"eventversion": "1.0.0", // 事件版本
"eventsource": "cdn", // 事件源
"eventtime": 1551085930, // 时间戳
"userid": "9b2aa05367204d9481ef29bdf5ef8243", // 用户账户id
"eventdetail": {
"taskid": "ejwzmtu3njq2mxbim0tmttjkntmklimkwwseo0aabmleg==", // 任务id
"status": "completed" // 刷新或预热任务完成
}
}
]
}
黄反事件
cachedobjectsblocked:用户账户下发现黄反url
{
"events": [
{
"eventname": "cachedobjectsblocked", // 事件类型
"eventversion": "1.0.0", // 事件版本
"eventsource": "cdn", // 事件源
"eventtime": 1551085930, // 时间戳
"userid": "9b2aa05367204d9481ef29bdf5ef8243", // 用户账户id
"eventdetail": {
"url": "http://www.test.com/sexy.jpg", // 黄反url
"status": "slightporn" // 取值为slightporn或severeporn
}
}
]
}
日志事件 logfilecreated:用户账户下某一域名或特定域名产生最近时间访问日志
{
"events": [
{
"eventname": "cachedobjectsblocked", // 事件类型
"eventversion": "1.0.0", // 事件版本
"eventsource": "cdn", // 事件源
"eventtime": 1551085930, // 时间戳
"userid": "9b2aa05367204d9481ef29bdf5ef8243", // 用户账户id
"eventdetail": {
"domain": "www.test.com", // 产生日志的域名
"logtime": "2019-02-26t12:00:00" // 日志产生时间
}
}
]
}
域名事件 cdndomainstarted:用户账户下某一域名或特定域名启动成功 cdndomainstopped:用户账户下某一域名或特定域名停止成功 cdndomaincreated:用户账户下某一域名创建成功 cdndomaindeleted:用户账户下某一域名删除成功
{
"events": [
{
"eventname": "cdndomainstarted", // 事件类型
"eventversion": "1.0.0", // 事件版本
"eventsource": "cdn", // 事件源
"eventtime": 1551085930, // 时间戳
"userid": "9b2aa05367204d9481ef29bdf5ef8243", // 用户账户id
"eventdetail": {
"domain": "www.test.com", // 触发动作的域名
"status": "started" // 取值为started、stopped、created、deleted
}
}
]
}