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
- Create a subfunction.
- Create a function.
- Use the function to invoke the subfunction.
Step 1: Create a Subfunction
- Create a subfunction on the console. Set parameters by referring to Figure 1 and retain the default values for other parameters.
Step 2: Create a Function
- 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 1 and retain the default values for other parameters.
Figure 2 Setting parameters
- 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
- On the function details page, click Test to invoke the function.
- 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
- The execution result of the function is Success and 200 is returned.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.