文档首页/ 函数工作流 FunctionGraph/ 开发指南/ Python/ 使用华为云SDK开发Python函数示例
更新时间:2025-08-05 GMT+08:00
分享

使用华为云SDK开发Python函数示例

华为云API Explorer工具提供各云服务的API参考文档及配套SDK代码示例。

本章节指导您使用华为云SDK,在函数工作流控制台开发Python函数。

步骤一:创建Python函数

  1. 登录函数工作流控制台,右上角单击“创建函数”
  2. 创建一个空白的Python事件函数,建议选择较新的运行时版本,单击“立即创建”进入函数详情页。
  3. “代码”页签,下拉至“代码依赖包”模块,单击“添加依赖包”
  4. 图1所示,“依赖包源”选择“私有依赖包”,单击“创建依赖包”进入依赖包创建界面。
    图1 选择依赖包

  5. 请参考华为云Python SDK创建函数依赖包为函数创建所需的Python依赖包。

    请注意,创建Python依赖包时需选择与Python函数相同的运行时版本。

  6. 完成依赖包创建后,回到4添加已创建的依赖包。

步骤二:通过APIE获取SDK代码示例

  1. 打开API Explorer,如图2所示选择所需的接口,单击“代码示例”页签,选择“Python”语言。

    图2 APIE代码示例

    1. 此处以“获取函数列表”为例,选择接口。
    2. 填写接口所需的参数,参数描述可参考API参考手册中的相应章节,本例可参考获取函数列表API
    3. 复制APIE生成的代码,粘贴在步骤一:创建Python函数函数的代码编辑框中。

  2. 示例代码中的AK/SK信息建议配置在函数的环境变量中,并在代码中使用context.getUserData(string key)方法获取。

    改写后的代码内容如下:

    # -*- coding:utf-8 -*-
    import json
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkfunctiongraph.v2.region.functiongraph_region import FunctionGraphRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdkfunctiongraph.v2 import *
    def handler (event, context):
        ak = context.getUserData("AK")
        sk = context.getUserData("SK")
        projectId = "project_id"
        credentials = BasicCredentials(ak, sk, projectId)
        client = FunctionGraphClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(FunctionGraphRegion.value_of("cn-north-4")) \
            .build()
        try:
            request = ListFunctionsRequest()
            request.marker = "marker"
            request.maxitems = "maxitems"
            request.package_name = "package_name"
            request.func_name = "func_name"
            response = client.list_functions(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
        return {
            "statusCode": 200,
            "isBase64Encoded": False,
            "body": json.dumps(event),
            "headers": {
                "Content-Type": "application/json"
            }
        }

  3. (可选)如需使用更安全的鉴权方式,可将以下代码内容替换:

    ak = context.getUserData("AK")
    sk = context.getUserData("SK")
    credentials = BasicCredentials(ak, sk, projectId)

    替换为:

    ak = context.getSecurityAccessKey()
    sk = context.getSecuritySecretKey()
    st = context.getSecurityToken()
    credentials = BasicCredentials(ak, sk, projectId).with_security_token(st)

相关文档