# huaweicloud-modelarts-invoke-python **Repository Path**: HuaweiCloudDeveloper/huaweicloud-modelarts-invoke-python ## Basic Information - **Project Name**: huaweicloud-modelarts-invoke-python - **Description**: Codelabs示例发布,fg平台函数互调,基础API使用演示 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master-dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-05-25 - **Last Updated**: 2025-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 1、功能介绍 **什么是华为云FunctionGraph服务?** 函数工作流(FunctionGraph)是一项基于事件驱动的函数托管计算服务。通过函数工作流,只需编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行。此外,按函数实际执行资源计费,不执行不产生费用 **您将学到什么?** 华为云提供了FunctionGraph服务端SDK,您可以直接集成服务端SDK来调用FunctionGraph相关API,从而实现对FunctionGraph的快速操作。该场景以函数调用模板为例,介绍如何使用FunctionGraph同步或异步调用函数。 ## 2、前置条件 1. 需要华为云个人账号或企业认证账号 2. 获取华为云开发工具包(SDK),华为云提供了多种语言的SDK。本示例代码使用了python SDK。 3. 您需要拥有华为云账号以及该账号对应的 Access Key(AK)、Secret Access Key(SK)和IAM项目ID(PROJECT ID)。获取方法可参考[AK/SK签名认证操作指导](https://support.huaweicloud.com/devg-apisign/api-sign-provide.html) 4. 在函数工作流控制台创建函数,本例所选参数如图所示,其他参数保持默认。创建后可以在函数界面上获取到func_name、version 图1 配置参数示例 ![配置参数](./assets/set_subfunction.png) ## 3、关键代码片段 ```java import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.core.http.HttpConfig; import com.huaweicloud.sdk.functiongraph.v2.FunctionGraphClient; import com.huaweicloud.sdk.functiongraph.v2.model.AsyncInvokeFunctionResponse; import com.huaweicloud.sdk.functiongraph.v2.model.InvokeFunctionResponse; import com.huaweicloud.sdk.functiongraph.v2.region.FunctionGraphRegion; import com.huaweicloud.sdk.functiongraph.v2.model.AsyncInvokeFunctionRequest; import com.huaweicloud.sdk.functiongraph.v2.model.InvokeFunctionRequest; import java.util.Map; import java.util.HashMap; public class FunctionInvokeDemo { public static void main(String[] args) { String ak = ""; String sk = ""; ICredential auth = new BasicCredentials() .withAk(ak) .withSk(sk); // 根据需要配置网络代理 HttpConfig httpConfig = HttpConfig.getDefaultHttpConfig(); httpConfig.setProxyHost(""); httpConfig.setProxyPort(80); httpConfig.setProxyUsername(""); httpConfig.setProxyPassword(""); FunctionGraphClient client = FunctionGraphClient.newBuilder() .withCredential(auth) .withRegion(FunctionGraphRegion.valueOf("")) .build(); // 函数urn可以在函数创建后的详情页面查看 String urn = "urn:fss:::function:default::"; Map invokeFunctionRequestBody = new HashMap<>(); invokeFunctionRequestBody.put("key", "value"); // 同步请求 InvokeFunctionRequest syncRequest = new InvokeFunctionRequest(); syncRequest.withFunctionUrn(urn); syncRequest.withBody(invokeFunctionRequestBody); // 异步请求 AsyncInvokeFunctionRequest asyncRequest = new AsyncInvokeFunctionRequest(); asyncRequest.withFunctionUrn(urn); asyncRequest.withBody(invokeFunctionRequestBody); try { // 同步调用 InvokeFunctionResponse syncResponse = client.invokeFunction(syncRequest); System.out.println(syncResponse.toString()); // 异步调用 AsyncInvokeFunctionResponse response = client.asyncInvokeFunction(asyncRequest); System.out.println(response.toString()); } catch (ConnectionException | RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } } ``` ## 4、返回结果示例 1.同步调用结果 ``` 同步调用结果: 200 '{"statusCode": 200, "isBase64Encoded": false, "body": "{\\"key\\": \\"value\\"}", "headers": {"Content-Type": "application/json"}}' ``` 2.异步调用结果 ``` 异步调用结果: 202 '{"request_id": "4cf9f34d-e030-416e-8abb-59c890f03016"}' ``` ## 5、参考 更多信息请参考[API参考](https://support.huaweicloud.com/intl/zh-cn/api-functiongraph/functiongraph_06_1500.html)