触发器简介

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

什么是触发器

函数计算提供了一种事件驱动的计算模型。函数的执行是由事件驱动的。函数的执行可以通过函数计算控制台或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)topic触发器

异步调用

轻量消息队列(原 MNS)主题触发器

自建Apache RocketMQ触发器

同步/异步调用

自建Apache RocketMQ触发器

HTTP触发器

同步/异步调用

HTTP触发器概述

通过事件总线EventBridge实现的触发器

轻量消息队列(原 MNS)queue触发器

同步/异步调用

轻量消息队列(原 MNS)队列触发器

消息队列RocketMQ版触发器

同步/异步调用

RocketMQ触发器

消息队列RabbitMQ版触发器

同步/异步调用

RabbitMQ触发器

消息队列Kafka版触发器

同步/异步调用

Kafka触发器

消息队列MQTT版触发器

同步/异步调用

MQTT触发器

数据传输服务DTS触发器

同步/异步调用

DTS触发器

云产品事件触发器

触发器名称

调用方式

示例链接

阿里云官方事件源触发器

同步/异步调用

配置云产品事件触发器