一、触发方式
事件总线提供了云上事件源的通用接入方式,云服务事件或产品事件通过事件总线进行匹配后,可以直接发送到指定目标函数,完成函数的触发和事件的消费。
事件总线触发器具有以下特点:
·Push 模型
事件总线会将收到的产品事件主动推送至云函数,完成函数的触发与调用。
·异步调用
事件总线触发器使用异步触发类型来调用函数。有关调用类型的更多信息,请参见 调用类型。
二、应用场景
·通用触发场景
事件总线拓展云函数的触发场景,可以广泛用于事件驱动架构中,以使用事件触发服务在应用之间进行通信。
·云原生驱动场景
事件总线 + 云函数提供了事件完全的生命周期与完全云原生的事件驱动方案,帮助你快速架构云原生事件驱动(EDA),联动更多应用场景。
·状态变化通知
事件总线可以作为中心接收所有应用的状态变化,然后将这些应用状态变化分别路由到对应的云函数,完成事件处理、存储、告警等更多能力。
三、支持事件源
·消息队列 TDMQ。详情可参见 TDMQ 触发。
·消息队列 Ckafka。详情可见 Ckafka 触发。
·SaaS 事件投递(企业集成服务 EIS 提供支持)。详情可见 SaaS 触发。
四、事件消费
对于投递目标为云函数时,事件总线支持批量投递,你可以根据实际业务需求,选择投递方式。
批量投递参数说明:
·最长等待时间: 单次触发的最长等待时间,最长等待时间范围(1-60s),默认为 1。
·最大批量消息数: 在拉取并批量投递给当前云函数时的最大消息数,目前支持最高配置为10000。结合消息大小、写入速度等因素影响,每次触发云函数并投递的消息数量不一定能达到最大值,而是处在1 – 最大消息数之间的一个变动值。
注意:开启批量投递功能后,事件将以数组形式投递,请注意事件消费端的格式适配。
未开启批量投递事件格式:
{ "specversion": "1.0.2", "id": "13a3f42d-7258-4ada-da6d-023a33******", "type": "connector:apigw", "source": "apigw.cloud.tencent", "subjuect": "qcs::apigw:ap-guangzhou:uid1250000000/appidxxx:Serverid/Appid", "time": "1615430559146", "region": "ap-guangzhou", "datacontenttype": "application/json;charset=utf-8", "data":{ $data_value }}
开启批量投递,数组模式:
{ "EventList":[ { "specversion": "1.0.2", "id": "13a3f42d-7258-4ada-da6d-023a33******", "type": "connector:apigw", "source": "apigw.cloud.tencent", "subjuect": "qcs::apigw:ap-guangzhou:uid1250000000/appidxxx:Serverid/Appid", "time": "1615430559146", "region": "ap-guangzhou", "datacontenttype": "application/json;charset=utf-8", "data":{ $data_value } }, { "specversion": "1.0.2", "id": "13a3f42d-7258-4ada-da6d-023a33******", "type": "connector:apigw", "source": "apigw.cloud.tencent", "subjuect": "qcs::apigw:ap-guangzhou:uid1250000000/appidxxx:Serverid/Appid", "time": "1615430559146", "region": "ap-guangzhou", "datacontenttype": "application/json;charset=utf-8", "data":{ $data_value } } ]}