BOS触发器
更新时间:2024-07-05
用户可以为新建的函数或已有函数配置 BOS 触发器,创建函数的流程可以具体参考 创建函数 。
这里假设用户已完成一个名为 bostrigger 的 Python 函数的创建,以下内容以此为前提,指引用户在 CFC 控制台在函数管理页面中为函数配置触发器。接下来,我们将通过三步来完成一个触发器的设置。
配置 BOS 触发器
- 登录管理控制台,选择“产品服务> 函数计算 CFC”,进入“函数列表”页面。
- 点击需要添加 BOS 触发器的函数名称(即 bostrigger),进入函数详情页面。
- 点击左侧导航栏中的“触发器”,进入函数配置页面,点击“新增触发器”。在弹出框中选择 BOS 触发器。
-
之后在弹出框中填入触发器的各个参数、点击确认,触发器即创建完成,各个参数的解释如下:
- 名称:即触发器的名称。
- 源Bucket:每个触发器需要选择一个 BOS Bucket 作为触发源,且 bucket 与函数需位于同一个地域。
- 事件类型:选择一个或多个事件类型,当覆盖资源在源 Bucket 上发生这些事件时,您的函数就会被触发。
- 覆盖资源:表示您想监控的 BOS 资源的文件名,您可以用文件全名来特指某一个文件,或者用指定前后缀的方式,来指定一类文件名。
- 在函数配置页面“触发器”一栏中,可以看到刚刚创建好的 BOS 触发器及其信息。
编写函数代码
使用 BOS 触发器时,一般情况下您需要读取函数的 event,根据 event 中的信息做相应的处理。在“函数代码”页点击“测试”,在“当前测试事件”中选择 BOS 触发器的某个事件。可以看到每种事件类型都有它对应的 event,以及每个 event 的内容示例。
本例选择“文件上传”,根据该 event 的事件格式编写如下代码:
def handler(event, context):
for record in event['events']:
event_type = record['eventType']
bucket = record['content']['bucket']
object_key = record['content']['object']
file_name = object_key.split('/')[-1]
print("function is triggered, bucket:%s, object:%s, event:%s" % (bucket, file_name, event_type))
return object_key
测试触发器
在“函数代码”页点击“测试”,在“当前测试事件”中选择“文件上传”,点击“执行”。
函数执行结果如图
BOS 事件通知
CFC 的 BOS 触发器与 BOS 的事件通知是互通的,您在 CFC 创建、修改触发器后,在 BOS 对应 bucket 的事件通知页可以看到相应的事件通知,反之亦然。所以,若您需要在 CFC 和 BOS 之间建立触发关系,您在 CFC 或 BOS 的其中一个进行配置即可,不需要重复配置。
关于更多 BOS 事件通知的更多说明,您可以参考 BOS 事件通知。
更多应用
为了便于您编写代码,CFC 为您提供了 BOS 触发器蓝图,每个蓝图都有自己的功能。创建函数时您可以选择“从模板创建函数”,“关键词”输入 BOS 即可获取相关蓝图,在此蓝图基础上修改代码实现您的逻辑。