触发器是触发函数执行的方式。在事件驱动的计算模型中,事件源是事件的生产者,函数是事件的处理者,而触发器提供了一种集中、统一的方式来管理不同的事件源。在事件源中,当事件发生时,如果满足触发器定义的规则,事件源会自动调用触发器所对应的函数。

什么是触发器

函数计算提供了一种事件驱动的计算模型。函数的执行是由事件驱动的。函数的执行可以通过函数计算控制台、fcli工具、VSCode插件或SDK触发,也可以由其它一些事件源来触发。您可以在指定函数中创建触发器,该触发器描述了一组规则,当某个事件满足这些规则,事件源就会触发相应的函数。

场景示例

  • 示例一 :对象存储OSS(Object Storage Service)中的图片状态变更触发函数执行

    某应用使用对象存储OSS存放上传的图片,您可以通过直接调用函数的方式去下载图片进行处理,并将结果存入OSS或者其他服务。如果OSS能够帮助我们关注新上传的图片,并且自动去调用相应函数,您就不需要再去自己调用函数了,从而简化了开发和使用流程。OSS触发器的作用就是关注这些事件并调用函数计算的函数。配置了OSS触发器后,当有新图片上传,OSS触发器会自动触发函数下载并处理图片。

  • 示例二:日志服务SLS(Log Service)中日志更新触发函数执行

    某应用使用日志服务SLS定时采集更新的日志,您可以通过直接调用函数的对增量的日志进行查询,分析。如果SLS能够帮助我们关注更新的日志,并自动调用相应的函数,您就不需要再去自己调用函数。SLS触发器的作用就是关注这些事件并调用函数计算的函数。配置了SLS触发器后,当有日志更新,SLS触发器会自动触发函数消费增量的日志。

  • 示例三:在指定时间触发函数执行

    某应用需要每隔1小时收集一次数据。您可以每隔1小时通过直接调用函数收集数据并处理。如果函数计算中的函数能每隔1小时自动执行,您就不需要再去关注时间。定时触发器的作用就是关注时间事件并调用函数计算的函数。配置了定时触发器后,在指定的时间,定时触发器会自动触发函数收集和处理数据。

除上述场景外,函数计算还支持很多其他事件源,详情请参见触发器列表,后续会陆续集成其他事件源。

触发器的基本信息

  • triggerName:触发器名称。
  • triggerType:触发器类型。例如,OSS触发器、HTTP触发器、定时触发器等。
  • sourceArn:触发函数执行的资源描述符。
    • 涉及到阿里云其他服务触发函数计算执行的时需要设置。例如,OSS触发器、SLS触发器等。
    • 不涉及到阿里云其他服务触发函数计算执行的时不需要设置。例如,定时触发器,HTTP触发器等。

    示例:OSS触发器的sourceArn格式为:acs:oss:region:accountId:bucketName

  • invocationRole:触发角色,事件源需要扮演一个角色来触发函数的执行,要求这个角色有触发函数执行的权限。详情请参见权限简介
  • qualifier:触发的服务版本或别名。更多版本和别名的使用请参见版本管理简介
  • triggerConfig:触发器的配置信息,各触发器的配置信息请参考该触发器对应的文档。