You need to enable JavaScript to run this app.
导航

创建 TOS 触发器

最近更新时间2023.06.27 14:22:51

首次发布时间2022.08.26 16:54:48

函数服务支持对接火山引擎的 对象存储 TOS。通过创建 TOS 触发器,函数服务可监听指定 Bucket 下的各类型事件变动,并将事件传递给用户函数,触发函数代码逻辑。您无需关心函数服务拿取事件的细节,只需编写处理事件的函数。本文为您介绍如何创建 TOS 触发器。

背景信息

在函数服务侧每创建一个 TOS 触发器,对应到对象存储侧,将同步生成一个同名的事件通知规则。相应地,在对象存储侧每创建一个事件通知规则,对应到函数服务侧,将在目标函数下同步生成一个同名的 TOS 触发器。在 TOS 侧创建事件通知规则可参考 设置事件通知

前提条件

  • 已基于vefaas-python38-default模板或vefaas-golang-tos-trigger模板创建函数,并至少完成一次全量发布,详细操作可参见 发布函数
  • 已创建 TOS Bucket,详细操作可参见 创建存储桶

使用限制

  • 每个函数最多支持创建 20 个触发器,灰度发布暂不支持创建触发器。
  • 删除函数前,需要先删除 TOS 触发器。
  • TOS 触发器创建完成后,不允许变更 Bucket。
  • TOS 触发器暂不支持自定义触发器名称。
  • 一个 Bucket 下创建的触发器必须保证语义唯一性,即 触发事件前缀后缀 组成的语义唯一,匹配的范围不存在重叠。
  • 一个 TOS 事件只能投递至一个函数。如果您希望变更投递的函数,可在对象存储侧修改事件通知规则。函数服务侧触发器和函数一对一绑定,不支持直接变更触发器对应的函数。

操作步骤

  1. 登录 函数服务控制台
  2. 在顶部导航栏,选择目标地域。
  3. 在 函数列表 页面,选择需要创建触发器的函数,单击函数名称。
  4. 在函数详情页面的 触发器 页签下,单击 创建触发器
  5. 在 创建触发器 面板,按要求设置参数。
    alt
    配置项说明
    触发器类型本场景选择 TOS 触发器。
    TOS BucketTOS Bucket 是用于存储对象(Object)的空间。选择函数服务需要监听的 TOS Bucket,支持模糊搜索。
    触发事件选择函数服务需要监听的事件,支持多选。支持监听的 TOS 事件及含义,请参见 事件列表

    过滤条件

    通过设置过滤条件,可精确匹配需要监听的事件所包含的对象范围,有效降低触发频率,减少成本。

    • 前缀:根据需要,设置需要匹配对象的前缀信息。
    • 后缀:根据需要,设置需要匹配对象的后缀信息。
      例如:触发事件为tos:Object:Created:*,前缀为test/,后缀为.png,则test目录下检测到png格式的对象上传时,都会触发函数执行。

    说明

    • 前缀和后缀为“且”的关系,匹配规则均为精确匹配。
    • 如果前后缀均未设置,则会匹配存储桶内所有对象。

    注意

    一个 Bucket 下创建的触发器必须保证语义唯一性,即 触发事件前缀后缀 组成的语义唯一,匹配的范围不允许重叠。
    例如:已创建触发器 1, 用于监听 Bucket-A 中后缀为png的对象发生的 tos:Object:Created:Put事件。对于触发器 2,若监听事件包含触发器 1 中的tos:Object:Created:Put事件, 则匹配对象不允许与触发器 1 有重叠,即不允许包含后缀为png的对象。如果包含,触发器 2 将创建失败。

  6. 单击 确定,完成 TOS 触发器创建。

说明

  • TOS 触发器创建成功后,将会在对象存储的指定 Bucket 下同步生成一条同名的事件推送规则,您可前往 对象存储控制台 查看。
  • TOS 触发器创建成功后,需等待 10 分钟方可生效。

后续操作