您可以通过事件规则过滤事件,将事件路由到函数计算。本文以自定义事件为例介绍将事件路由到函数计算的前提条件、操作步骤和结果验证。
步骤一:添加自定义事件源
- 登录事件总线EventBridge控制台,在左侧导航栏,单击事件总线。
- 在顶部菜单栏,选择地域,在事件总线页面,单击目标自定义事件总线名称。
- 在左侧导航栏,单击事件源,然后单击添加事件源。
- 在添加自定义事件源面板,输入名称和描述,事件提供方选择自定义应用,然后单击确定。
步骤二:创建事件规则
- 登录事件总线EventBridge控制台,在左侧导航栏,单击事件总线。
- 在顶部菜单栏,选择地域,在事件总线页面,单击目标总线名称。
- 在左侧导航栏,单击事件规则,然后单击创建规则。
- 在创建规则页面,完成以下操作。
- 在配置基本信息配置向导,在名称文本框输入规则名称,在描述文本框输入规则的描述,然后单击下一步。
- 在配置事件模式配置向导,事件源类型选择自定义事件源,事件源选择步骤一添加的自定义事件源,在事件模式内容代码框输入事件模式,然后单击下一步。
- 在配置事件目标配置向导,配置事件目标,然后单击创建。
- 服务类型:单击函数计算。
- 服务:选择已创建的函数计算的服务。
- 函数:选择已创建的函数计算的函数。
- 事件:单击模板。
以下提供变量和模板的示例。
变量示例:
{
"source":"$.source",
"type":"$.type"
}
模板示例:
The event comes from ${source},event type is ${type}.
如需了解更多信息,请参见事件内容转换。
- 服务版本和别名:选择服务版本或服务别名。
- 默认版本:LATEST。
- 指定版本:选择服务版本。更多信息,请参见管理版本。
- 指定别名:选择服务别名。更多信息,请参见管理别名。
- 调用方式:选择同步调用或异步调用。更多信息,请参见同步调用和功能概览。
步骤三:发布事件
- 登录事件总线EventBridge控制台,在左侧导航栏,单击事件总线。
- 在顶部菜单栏,选择地域。
- 在事件总线页面,找到目标总线,在其右侧操作列单击发布事件。
- 在发布事件至自定义事件总线面板,自定义事件源下拉列表选择已创建的自定义事件源,在事件体代码框输入事件内容,然后单击确定。
说明 如需重试发布失败的事件,则需定义函数计算的函数异常处理,事件总线EventBridge检测到函数抛出的异常后,则会重新发布事件到函数计算。
结果验证
您可以在函数计算控制台使用表盘解读数据指标。
- 登录函数计算控制台。
- 在左侧导航栏,单击服务及函数。
- 在顶部菜单栏,选择地域。
- 在服务列表页面,找到目标服务,在其右侧操作列单击函数管理。
- 在函数管理页面,找到目标函数,单击目标函数名称。
- 在函数详情页面,单击调用日志页签,查看日志。
FC Invoke Start RequestId: c2be67a7-fh1a-9619-ei4c-3c04gcf6****
2020-11-19T11:11:34.161Z c2be67a7-fh1a-9619-ei4c-3c04gcf6c**** [verbose] Receive Event v2 ==> The event comes from aliyun.ui,event type is ui:Created:PostObject.
2020-11-19T11:11:34.167Z c2be67a7-fh1a-9619-ei4c-3c04gcf6c****
FC Invoke End RequestId: c2be67a7-fh1a-9619-ei4c-3c04gcf6c****
常见问题
事件发布失败,我该如何定位问题?
如果事件发布失败,您可以查看事件轨迹,在事件轨迹页面的事件投递区域查看投递详情,获取投递响应。针对不同投递响应提示,采取相应的解决措施。
发布到函数计算的事件发布失败,且投递响应为[500]ConnectErrorconnectiontimedout,我该如何处理?
您可以按照以下步骤处理:
- 登录函数计算控制台,执行目标函数并观察执行时间。
- 如果函数执行时间大于15s,请排查网络问题;如果函数执行时间小于15s,请确认您是否可以访问函数计算服务所属地域的Endpoint。
- 如您不能访问当前函数计算服务所属地域的Endpoint,请联系函数计算工程师处理。