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

什么是触发器

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

说明

如果您需要使用一个触发器触发多个函数,可以结合使用函数计算Serverless工作流服务。首先通过触发器触发一个函数,该函数启动Serverless工作流流程,然后在流程里您可以调用多个函数。更多信息,请参见示例

场景示例

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

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

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

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

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

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

触发器类型

按照触发器集成方式,函数计算支持的触发器分为以下三类:
  • 双向集成触发器:您既可以在函数计算,又可以在事件源端配置触发器。
  • 单向集成触发器:目前只支持在事件源端配置触发器。
  • 云产品事件触发器:支持在函数计算配置触发器,同时支持在事件总线EventBridge创建函数触发规则,无需在事件源端配置。
从函数调用方式的角度,触发器又可以分为同步调用触发器和异步调用触发器,两种调用方式的区别如下所示。更多信息,请参见同步调用
  • 同步调用:事件被函数处理后直接返回结果。例如,使用控制台调用函数属于同步调用。
  • 异步调用:事件在写入到函数计算内部队列后返回结果,函数计算系统会保证该消息被可靠地处理。

双向集成触发器

触发器名称调用方式文档链接
定时触发器异步调用定时触发器概述
OSS触发器异步调用OSS触发器概述
SLS触发器同步调用SLS触发器
CDN事件触发器同步调用CDN事件触发器概述
Tablestore触发器同步调用Tablestore触发器概述
MNS主题触发器异步调用MNS主题触发器
消息服务MNS队列触发器同步调用MNS队列触发器
消息队列RocketMQ版触发器同步调用RocketMQ触发器
消息队列RabbitMQ版触发器同步调用RabbitMQ触发器
消息队列Kafka版触发器同步调用Kafka触发器
数据传输服务DTS触发器同步调用DTS触发器
HTTP触发器同步调用HTTP触发器概述

单向集成触发器

触发器名称调用方式示例链接
API网关触发器同步调用API网关触发器概述

云产品事件触发器

触发器名称调用方式示例链接
阿里云官方事件源触发器同步调用配置云产品事件触发器