更新时间:2024-07-25 GMT+08:00

示例4:函数互调

场景描述

本章节以python语言举例,指导您在一个函数里面调用另外一个函数。

API的调用方法请参见如何调用API

前提条件

已创建委托,包含“FunctionGraph Administrator”或“Tenant Administrator”权限的委托。

总体思路

  1. 创建子函数。
  2. 创建父函数。
  3. 调用函数。

步骤一:创建子函数

  1. 在控制台创建子函数,本例所选参数如图1所示,其他参数保持默认。
    图1 配置参数

步骤二:创建父函数

  1. 在控制台创建父函数。委托名称选择包含“FunctionGraph Administrator”或“Tenant Administrator”权限的委托,本例所选参数如图2所示,其他参数保持默认。
    图2 配置参数
  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"
            }
        }

步骤三:调用函数

  1. 在父函数的函数详情页,单击“测试”,进行父函数调用。
  2. 查看执行结果。
    • 父函数的执行结果显示“成功”,返回“200”。
      图3 父函数执行历史
    • 子函数的日志中,显示被调用的日志。
      图4 子函数执行历史