
# 示例3：函数互调
#### 场景描述
本章节以python语言举例，指导您在一个函数里调用另外一个函数。
API的调用方法请参见[如何调用API](https://support.huaweicloud.com/api-functiongraph/functiongraph_06_0200.html#functiongraph_06_0200)。
#### 前提条件
已创建委托，包含"FunctionGraph Administrator"或"Tenant Administrator"权限的委托。
#### 约束与限制
请确保子函数与父函数创建在同一区域下。
#### 总体思路
1. 创建子函数。
2. 创建父函数。
3. 调用函数。
 
#### 步骤一：创建子函数
在函数控制台创建子函数，本例所选参数如[图1]所示，其他参数保持默认。
图1配置参数   
![](https://support.huaweicloud.com/api-functiongraph/zh-cn_image_0000001861051708.png)
#### 步骤二：创建父函数
1. 在函数控制台创建父函数。委托名称选择包含"FunctionGraph Administrator"或"Tenant Administrator"权限的委托，本例所选参数如[图2]所示，可自行选择函数所在区域，其他参数保持默认。
   图2配置参数   
   ![](https://support.huaweicloud.com/api-functiongraph/zh-cn_image_0000001861063074.png) 
2. 在"代码"页签，复制以下示例代码到代码编辑区，替换字段后单击"部署代码"。字段说明请参考[表1]。
   ```
   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示例代码字段获取说明 
   | **字段**                      | **说明**                                                                                                                                                                                                    |
   |:---|:---|
   | region_id                   | 区域ID。 请参考[区域和终端节点](https://console.huaweicloud.com/apiexplorer/#/endpoint/FunctionGraph)中"区域"列，根据函数所在区域填写。以"华东-上海一"为例，则填写"cn-east-3"。 |
   | external_global_domain_name | 外部全局域名。 请填写"myhuaweicloud.com"。                                                                                                      |
      
   
 
#### 步骤三：调用函数
1. 在父函数的函数详情页，单击"测试"，弹出"配置测试事件"弹窗，单击"创建"使用默认空白模板创建测试事件。
2. 创建成功后，单击代码编辑区的"测试"，进行父函数调用。
3. 查看执行结果。
   - 父函数的执行结果显示"执行成功"，返回"200"。
     图3父函数执行历史   
     ![](https://support.huaweicloud.com/api-functiongraph/zh-cn_image_0000001310876560.png) 
   
   - 子函数的日志中，显示被调用的日志。
     图4子函数执行历史   
     ![](https://support.huaweicloud.com/api-functiongraph/zh-cn_image_0000001310397116.png) 
    
 
