Help Center> FunctionGraph> API Reference> Examples> Example 4: Using a Function to Invoke a Subfunction
Updated on 2024-02-01 GMT+08:00

Example 4: Using a Function to Invoke a Subfunction

Scenario

This section uses Python as an example to describe how to invoke a subfunction by using a function.

For details about how to call APIs, see Calling APIs.

Prerequisites

An agency with the FunctionGraph Administrator or Tenant Administrator permission has been created.

Overall Procedure

  1. Create a subfunction.
  2. Create a function.
  3. Use the function to invoke the subfunction.

Step 1: Create a Subfunction

  1. Create a subfunction on the console. Set parameters by referring to Figure 1 and retain the default values for other parameters.
    Figure 1 Setting parameters

Step 2: Create a Function

  1. Create a function on the console. Select an agency with the FunctionGraph Administrator or Tenant Administrator permission. In addition, set parameters as shown in Figure 2 and retain the default values for other parameters.
    Figure 2 Setting parameters
  2. On the Code tab page, edit the code. The sample code is as follows:
    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'  # Subfunction URN, which can be queried on the right of the topology on the subfunction details page.
        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"
            }
        }

Step 3: Use the Function to Invoke the Subfunction

  1. On the function details page, click Test to invoke the function.
  2. View the execution result.
    • The execution result of the function is Success and 200 is returned.
      Figure 3 Function execution record
    • The Logs tab page shows details about subfunction invocation.
      Figure 4 Subfunction execution record