函数触发器概述-j9九游会登录
函数触发器介绍
触发器是functiongraph中用于启动函数执行的重要机制。当其他云服务作为事件源检测到特定事件时,触发器会根据预定义的规则自动调用关联的函数,从而实现事件的实时处理。functiongraph支持的触发事件请参见functiongraph支持的触发事件。
每个事件传递到函数时,仅包含与该触发器相关的事件数据,事件数据以结构化的json格式传递,functiongraph会将事件数据转换为函数处理程序可以使用的对象。根据具体业务需求,一个函数可以配置一个或多个触发器,每个触发器都可以独立地调用函数。
函数触发器的调用方式
根据函数调用方式,函数的触发器可分为同步调用和异步调用。关于函数调用的更多说明请参见调用函数。
- 同步调用:客户端调用函数后,functiongraph会立即执行函数,等函数执行完成后再向客户端返回响应和执行结果。
- 异步调用:客户端调用函数后,functiongraph会将请求排队,不等待函数的执行结果,直接向客户端返回响应,functiongraph会在系统空闲的情况下逐个处理排队的请求。
|
触发器 |
调用方式 |
|---|---|
|
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函数。
|
云服务/功能 |
触发事件 |
|---|---|
|
计划事件功能 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的触发使用支持以下事件源: |
云服务触发事件示例
相关文档
意见反馈
文档内容是否对您有帮助?
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨