更新时间:2024-07-11 GMT+08:00
示例4:函数互调
前提条件
已创建委托,包含“FunctionGraph Administrator”或“Tenant Administrator”权限的委托。
总体思路
- 创建子函数。
- 创建父函数。
- 调用函数。
步骤一:创建子函数
- 在控制台创建子函数,本例所选参数如图1所示,其他参数保持默认。
步骤二:创建父函数
- 在控制台创建父函数。委托名称选择包含“FunctionGraph Administrator”或“Tenant Administrator”权限的委托,本例所选参数如图2所示,其他参数保持默认。
- 在“代码”页签,进行代码编辑,示例代码如下所示。
import json import requests def handler (event, context): token = context.getToken() project_id = context.getProjectID() urn = 'urn:fss:xx-xxxxx-x:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:function:xxx:subfunction:latest' #子函数的urn,在子函数详情页拓扑图的右侧可查询 url = 'https://functiongraph.{region_id}.{external_global_domain_name}/v2/%s/fgs/functions/%s/invocations' % (project_id,urn) headers = { "x-auth-token": token, "content-type": 'application/json' } body = {"k":"v"} resp = requests.post(url, json=body, headers=headers, verify=False) print(resp.text) return { "statusCode": 200, "isBase64Encoded": False, "body": json.dumps(event), "headers": { "Content-Type": "application/json" } }
步骤三:调用函数
- 在父函数的函数详情页,单击“测试”,进行父函数调用。
- 查看执行结果。
- 父函数的执行结果显示“成功”,返回“200”。
图3 父函数执行历史
- 子函数的日志中,显示被调用的日志。
图4 子函数执行历史
- 父函数的执行结果显示“成功”,返回“200”。