更新时间:2025-08-06 GMT+08:00
分享

函数触发器概述

函数触发器介绍

触发器是FunctionGraph中用于启动函数执行的重要机制。当其他云服务作为事件源检测到特定事件时,触发器会根据预定义的规则自动调用关联的函数,从而实现事件的实时处理。FunctionGraph支持的触发事件请参见FunctionGraph支持的触发事件

每个事件传递到函数时,仅包含与该触发器相关的事件数据,事件数据以结构化的JSON格式传递,FunctionGraph会将事件数据转换为函数处理程序可以使用的对象。根据具体业务需求,一个函数可以配置一个或多个触发器,每个触发器都可以独立地调用函数。

函数触发器的调用方式

根据函数调用方式,函数的触发器可分为同步调用和异步调用。关于函数调用的更多说明请参见调用函数

  • 同步调用:客户端调用函数后,FunctionGraph会立即执行函数,等函数执行完成后再向客户端返回响应和执行结果。
  • 异步调用:客户端调用函数后,FunctionGraph会将请求排队,不等待函数的执行结果,直接向客户端返回响应,FunctionGraph会在系统空闲的情况下逐个处理排队的请求。
表1 函数触发器的调用机制

触发器

调用方式

API网关服务(APIG专享版)触发器

默认为同步调用,但可以修改为异步调用,具体配置方式请参考配置异步调用

API Connect(APIC)触发器

默认为同步调用,但可以修改为异步调用,具体配置方式请参考配置异步调用

定时触发器(TIMER)触发器

默认为同步调用,且不可修改。

云数据库 GeminiDB DynamoDB触发器

默认为同步调用,且不可修改。

云审计服务(CTS)触发器

默认为异步调用,且不可修改。

文档数据库服务(DDS)触发器

默认为异步调用,且不可修改。

数据接入服务(DIS)触发器

默认为异步调用,且不可修改。

分布式消息服务 Kafka版(KAFKA)触发器

默认为异步调用,且不可修改。

开源Kafka(OPENSOURCEKAFKA)触发器

默认为异步调用,且不可修改。

分布式消息服务 RabbitMQ版(RABBITMQ)触发器

默认为异步调用,且不可修改。

云数据库 GeminiDB Mongo触发器

默认为异步调用,且不可修改。

设备接入(IoTDA)触发器

默认为异步调用,且不可修改。

云日志服务(LTS)触发器

默认为异步调用,且不可修改。

消息通知服务(SMN)触发器

默认为异步调用,且不可修改。

EventGrid触发器

默认为异步调用,且不可修改。

FunctionGraph支持的触发事件

表2为支持触发FunctionGraph函数的云服务,这些云服务可配置为FunctionGraph函数的事件源,即配置函数的触发器。配置事件源触发器后,只要检测到相应事件,将自动调用FunctionGraph函数。

表2 FunctionGraph支持的云服务触发事件

云服务/功能

触发事件

计划事件功能 TIMER

使用TIMER的计划事件功能定期调用函数代码,可以指定固定频率(分钟、小时、天数)或指定 Cron 表达式定期调用函数(TIMER示例事件)。

TIMER定时触发器的使用过程请参考使用定时触发器

API网关服务 APIG

通过HTTPS或者HTTP调用FunctionGraph函数,使用API Gateway自定义REST API和终端节点来实现。可以将各个API操作(如GET和PUT)映射到特定的FunctionGraph函数,当向该API终端节点发送HTTPS请求时(APIG示例事件),APIG会调用相应的FunctionGraph函数。

APIG的触发使用过程请参考:使用APIG专享版触发器

API Connect APIC

通过HTTPS或者HTTP调用FunctionGraph函数,将各个API操作(如GET和PUT)映射到特定的FunctionGraph函数,当向该API发送HTTPS或者HTTP请求时,APIC 会调用相应的FunctionGraph函数。

APIC的触发使用过程请参考使用APIC触发器

云审计服务 CTS

编写FunctionGraph函数,根据CTS云审计服务类型和操作订阅所需要的事件通知,当CTS云审计服务获取已订阅的操作记录后,通过CTS触发器将采集到的操作记录作为参数传递(CTS示例事件)来调用FunctionGraph函数。经由函数对日志中的关键信息进行分析和处理,对系统、网络等业务模块进行自动修复,或通过短信、邮件等形式产生告警,通知业务人员进行处理。

CTS的触发使用过程请参考使用CTS触发器

文档数据库服务 DDS

使用DDS触发器,每次更新数据库中的表时,都可以触发Functiongraph函数以执行额外的工作(DDS示例事件)。

DDS的触发使用过程请参考使用DDS触发器

数据接入服务 DIS

将FunctionGraph函数配置为自动轮询流并处理任何新记录,例如网站点击流、财务交易记录、社交媒体源、IT日志和数据位置跟踪事件等(DIS示例事件)。FunctionGraph会定期轮询DIS数据流中的新记录。

DIS的触发使用过程请参考使用DIS触发器

分布式消息服务 Kafka版

当向Kafka实例的Topic生产消息时,FunctionGraph会消费消息,触发函数以执行额外的工作(Kafka示例事件)。

分布式消息Kafka的触发使用过程请参见:

分布式消息服务 RabbitMQ版

FunctionGraph可以定期轮询RabbitMQ实例指定Exchange绑定的队列下的新消息,FunctionGraph将轮询得到的消息作为参数传递来调用函数(分布式消息服务RabbitMQ示例事件)。

分布式消息RabbitMQ的触发使用过程请参见使用RabbitMQ触发器

云数据库 GeminiDB MongoDB

使用GeminiDB MongoDB(MONGODB)触发器,每次更新数据库中的表时,都可以触发FunctionGraph函数以执行额外的工作(GeminiDB MongoDB示例事件)。

GeminiDB MongoDB触发器使用请参见使用云数据库GeminiDB MongoDB触发器

云数据库 GeminiDB DynamoDB

使用GeminiDB DynamoDB(DYNAMODB)触发器,实现定时拉取DynamoDB数据库流表中的信息,并触发函数执行(云数据库GeminiDBDynamoDB示例)。

GeminiDB DynamoDB触发器使用请参见使用云数据库GeminiDB DynamoDB触发器

设备接入服务 IoTDA

使用IoTDA触发器,对于设备上报到平台的数据,FunctionGraph可跟踪设备的设备属性、消息上报,状态变更,分析、整理和计量数据流(IoTDA示例事件)。

IoTDA触发器的使用请参见使用IoTDA触发器

云日志服务 LTS

编写FunctionGraph函数来处理云日志服务订阅的日志,当云日志服务采集到订阅的日志后,可以通过将采集到的日志作为参数传递(LTS示例事件)来调用FunctionGraph函数,FunctionGraph函数代码可以对其进行自定义处理、分析或将其加载到其他系统。

LTS的触发使用过程请参考使用LTS触发器

消息通知服务 SMN

编写FunctionGraph函数来处理SMN的通知,在将消息发布到SMN主题时,服务可以通过将消息负载作为参数传递(SMN示例事件)来调用FunctionGraph函数,FunctionGraph函数代码可以处理事件,比如将消息发布到其他SMN主题或将消息发送到其他云服务。

SMN消息触发的使用过程请参考使用SMN触发器

对象存储服务 OBS

可以编写FunctionGraph函数来处理OBS存储桶事件,例如对象创建事件或对象删除事件(OBS示例事件)。当用户将一张照片上传到存储桶时,OBS存储桶调用FunctionGraph函数,实现读取图像和创建照片缩略图。

OBS对象操作触发函数的过程请参考:

事件网格服务 EventGrid

可以编写FunctionGraph函数来处理EventGrid的通知,在将消息发布到EG事件源时,服务可以通过将消息负载作为参数传递(EG示例事件)来调用FunctionGraph函数。FunctionGraph函数代码可以处理事件,比如将消息发送到其他云服务。

EventGrid的触发使用支持以下事件源:

云服务触发事件示例

相关文档