函数服务支持对接火山引擎的 对象存储 TOS。通过创建 TOS 触发器,函数服务可监听指定 Bucket 下的各类型事件变动,并将事件传递给用户函数,触发函数代码逻辑。您无需关心函数服务获取事件的细节,只需编写处理事件的函数。本文为您介绍如何创建 TOS 触发器。
TOS 触发器工作机制及注意事项
当符合条件的 TOS 事件发生时,TOS 会将此事件发送给 veFaaS,veFaaS 会把该事件写入队列,并迅速向 TOS 返回响应,表示事件已接收。随后,一个独立的进程会从事件队列中读取事件,触发函数执行用户自定义的业务处理逻辑。
TOS 触发器为双向集成触发器
在函数服务侧每创建一个 TOS 触发器,对应到对象存储侧,将同步生成一个同名的事件通知规则。相应地,在对象存储侧每创建一个事件通知规则,对应到函数服务侧,将在目标函数下同步生成一个同名的 TOS 触发器。
一个 TOS 事件支持投递至多个函数
如果您有此类需求,请前往对象存储控制台创建事件通知规则,详细操作可参见 设置事件通知。
vefaas-python38-default
模板或vefaas-golang-tos-trigger
模板创建函数,并至少完成一次全量发布,详细操作可参见 发布函数。配置项 | 说明 |
---|---|
触发器类型 | 本场景选择 TOS 触发器。 |
TOS Bucket | TOS Bucket 是用于存储对象(Object)的空间。选择函数服务需要监听的 TOS Bucket,支持模糊搜索。 |
触发事件 | 选择函数服务需要监听的事件,支持多选。支持监听的 TOS 事件及含义,请参见 事件列表。 |
过滤条件 | 通过设置过滤条件,可精确匹配需要监听的事件所包含的对象范围,有效降低触发频率,减少成本。
说明
|
注意
一个 Bucket 下创建的触发器必须保证语义唯一性,即 触发事件、前缀 和 后缀 组成的语义唯一,匹配的范围不允许重叠。
例如:已创建触发器 1, 用于监听 Bucket-A 中后缀为png
的对象发生的 tos:Object:Created:Put
事件。对于触发器 2,若监听事件包含触发器 1 中的tos:Object:Created:Put
事件, 则匹配对象不允许与触发器 1 有重叠,即不允许包含后缀为png
的对象。如果包含,触发器 2 将创建失败。
说明