全部产品
云市场

4. 创建OSS触发器

更新时间:2018-11-01 10:11:01

创建触发器

  1. 首先在代码执行页面点击【触发器】
  2. 设置触发器服务类型为【对象存储触发器】,Bucket 选择刚才新建的 Bucket ,触发事件选择 oss:objectCreated:*,前缀选择 source/,表示只要 Bucket 中 source/ 下有新对象被创建时,函数就会被触发执行。
  3. 角色创建方式,选择【已有角色】,系统为 OSS 触发器提供名为 AliyunOSSEventNotificationRole 的角色,您可以直接选取这个角色作为触发器角色。
    • 触发器需要设置一个触发器角色,这个角色有触发函数执行的权限。OSS 需要扮演这个角色来触发函数执行。
    • 想了解更多权限信息请参考文章 权限简介

Attention:

使用 OSS 触发器一定要避免 循环触发。一个典型的循环触发场景是 OSS 的某个 Bucket 上传文件触发函数执行,这个函数又生成了一个或多个文件,写回到 OSS 的 Bucket 里,这个写入动作又触发了函数执行,形成了链状循环。

上述过程类似于一个无限递归,为了避免这种循环触发函数产生不必要的费用,强烈建议您配置前/后缀,例如将触发函数的 Bucket 目录前缀设置成 src/,生成的文件写入的目录前缀设置为 dst/ ,这样生成的文件就不会再次触发函数。

测试触发器

OSS 触发器设置完毕后,可以测试整个项目,在 OSS 控制台上向对应 Bucket 的 source/ 目录下新上传一个图片,发现会在 processed/ 目录下新生成一个 resize 过的同名图片。