更新时间:2022-04-22 GMT+08:00
分享

函数异步配置

函数创建完成后,支持设置函数异步配置,将函数异步执行结果通知到目标服务。

  1. 若配置函数异步时,报“用户权限不足”,请添加“FunctionGraph Administrator”权限。具体操作方法请参考创建用户并授权使用FunctionGraph
  2. 异步配置通知到目标服务时,需配置具有目标服务操作权限的函数委托。
  3. 当您在配置异步执行通知目标时,请务必保证不要出现循环调用的情况。例如:您为函数A配置了成功调用时的异步通知目标为函数B,为函数B配置了成功调用时的异步通知目标为函数A,当您异步触发函数A并且执行成功后,则可能出现A—>B—>A......循环调用的情况。
  4. 函数可以按照版本执行,也可以按照别名执行。按照别名执行时不支持异步配置,“异步配置”页签不展示。
    图1 按照别名执行函数

操作步骤

  1. 登录FunctionGraph控制台,在左侧导航栏选择“函数 > 函数列表”,进入函数页面。
  2. 在函数页面的“函数列表”,选择已创建的函数,单击进入函数详情页面。
  3. 在“异步配置”页签,单击“配置异步调用”。

    图2 配置异步调用

  4. 填写配置参数,参考如下表1,例如设置目前服务为函数工作流(FunctionGraph),参考如下截图:

    图3 填写配置参数
    表1 参数说明

    参数

    说明

    异步策略配置

    • 最大重试次数:异步调用失败后最大重试次数,默认为1次,取值范围:0-3。
    • 消息最大有效期(s):消息最大存活时长,取值范围:1-86400。

    成功时通知

    目标服务:执行成功时发送通知到以下目标服务

    1. 函数工作流(FunctionGraph)
    2. 对象存储服务(OBS)
    3. 数据接入服务(DIS)
    4. 消息通知服务(SMN)

    失败时通知

    目标服务:执行失败时发送通知到以下目标服务

    1. 函数工作流(FunctionGraph)
    2. 对象存储服务(OBS)
    3. 数据接入服务(DIS)
    4. 消息通知服务(SMN)

  5. 填写完成后,单击“创建”即可完成异步配置。

配置说明

异步调用目标的配置说明参考表2,异步调用目标的事件内容参考如下示例:

{
        "timestamp": "2020-08-20T12:00:00.000Z",
	"request_context": {
	        "request_id": "1167bf8c-87b0-43ab-8f5f-26b16c64f252",
	        "function_urn": "urn:fss:xx-xxxx-x:xxxxxxx:function:xxxx:xxxx:latest",
	        "condition": "",
	        "approximate_invoke_count": 0
	 },
	    "request_payload": "",
	    "response_context": {
	        "status_code": 200,
	        "function_error": ""
	  },
	 "response_payload": "hello world!"
}
表2 配置参数说明

参数

说明

timestamp

调用时间戳。

request_context

请求上下文。

request_context.request_id

异步调用的请求ID。

request_context. function_urn

异步执行的函数URN。

request_context.condition

调用错误类别。

request_context. approximate_invoke_count

异步调用的执行次数。当该值大于1时,说明函数计算对您的函数进行了重试。

request_payload

请求函数的原始负载。

response_context

返回上下文。

response_context.statusCode

调用函数的返回码(系统)。当该返回码不为200时,说明出现了系统错误。

response_context.function_error

调用错误信息。

response_payload

执行函数返回的原始负载。

开启异步调用状态持久化

当前仅“华南-广州”区域支持该功能。

开启和关闭异步调用状态持久化,该功能可单独配置,与其他相关配置互不影响。开启后可以提供更好的可观测性,支持查询每次异步调用的执行状态。
  1. 开通白名单。

    用户默认没有权限开启异步调用状态持久化,如果需要开启异步调用状态持久化,查看调用记录,请在工单系统提交工单添加白名单。

  2. 登录FunctionGraph控制台,在左侧导航栏选择“函数 > 函数列表”,进入“函数”页面。
  3. 在函数列表选择已创建的函数,单击进入函数详情页面。
  4. 在“异步配置”页签,单击“点击开通”,开通云日志服务(LTS)。此过程后台自动调用LTS接口,在LTS控制台创建日志组和日志流,用户无需手动创建日志组和日志流。
    图4 开通云日志服务
  5. 开通完成后,页面上新增参数“开启异步调用状态持久化”。
    图5 异步调用状态持久化
  6. 开启此参数后,调用异步触发的函数或触发器后,会上报日志到LTS,在调用函数的“异步配置”页签下,可以查看调用日志,跟踪异步请求链路。
    图6 开启异步调用状态持久化
分享:

    相关文档

    相关产品

close