j9九游会登录/ 函数工作流 functiongraph/ 开发指南/ node.js/ 使用华为云sdk开发node.js函数示例
更新时间:2026-01-04 gmt 08:00

使用华为云sdk开发node.js函数示例-j9九游会登录

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

本章节以“获取函数列表”接口为例指导您使用华为云sdk,在函数工作流控制台开发node.js函数。

步骤一:创建函数委托

  1. 登录。
  2. 左侧导航栏选择权限管理 > 权限,单击“创建自定义策略”
  3. 以配置“获取函数列表”接口的相关委托为例,如图1所示配置包含获取函数列表权限的自定义策略,单击“确定”完成自定义策略创建。
    关于权限的更多说明请参考权限基本概念
    图1 获取函数列表自定义策略
  4. 返回iam控制台j9九游会登录首页,在左侧导航栏选择“委托”,单击右上方的“创建委托”。
  5. 配置委托参数,完成参数配置后如图2所示,单击“完成”,系统弹出“创建成功”提示,单击“立即授权”。
    图2 填写基本信息
  6. “选择策略”界面,选择3创建的自定义策略,单击“下一步”,其他参数请根据实际需求选择,完成委托授权。

步骤二:创建node.js函数

  1. 登录,右上角单击“创建函数”
  2. 创建一个空白的node.js事件函数,“委托”选择步骤一:创建函数委托中创建的委托,建议选择较新的运行时版本,单击“创建函数”进入函数详情页。
  3. “代码”页签,下拉至“代码依赖包”模块,单击“添加依赖包”
  4. 图3所示,“依赖包源”选择“私有依赖包”,单击“创建依赖包”进入依赖包创建界面。
    图3 选择依赖包
  5. 请参考和创建函数依赖包为函数创建所需的node.js依赖包。

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

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

步骤三:通过apie获取sdk代码示例

  1. 打开,如图4所示选择所需的接口,单击“代码示例”页签,选择“node.js”语言。
    图4 apie代码示例
    1. 此处以“获取函数列表”为例,单击选择接口。
    2. 填写接口所需的参数,参数描述可参考api参考手册中的相应章节,本例可参考获取函数列表api
    3. 复制apie生成的代码,粘贴在步骤二:创建node.js函数创建好的函数的代码编辑框中。
  2. 示例代码中的ak/sk信息建议配置在函数的环境变量中,并在代码中使用context.getuserdata(string key)方法获取。

    改写后的代码内容如下:

    const core = require('@huaweicloud/huaweicloud-sdk-core');
    const functiongraph = require("@huaweicloud/huaweicloud-sdk-functiongraph/v2/public-api");
    exports.handler = async (event, context) => {
        const ak = context.getuserdata("ak");
        const sk = context.getuserdata("sk");
        const endpoint = "https://functiongraph.cn-north-4.myhuaweicloud.com";
        const project_id = "project_id";
        const credentials = new core.basiccredentials()
            .withak(ak)
            .withsk(sk)
            .withprojectid(project_id)
        const client = functiongraph.functiongraphclient.newbuilder()
            .withcredential(credentials)
            .withendpoint(endpoint)
            .build();
        const request = new functiongraph.listfunctionsrequest();
        request.marker = "marker";
        request.maxitems = "maxitems";
        request.packagename = "package_name";
        request.funcname = "func_name";
        const result = client.listfunctions(request);
        result.then(result => {
            console.log("json.stringify(result)::"   json.stringify(result));
        }).catch(ex => {
            console.log("exception:"   json.stringify(ex));
        });
        const output =
        {
            'statuscode': 200,
            'headers':
            {
                'content-type': 'application/json'
            },
            'isbase64encoded': false,
            'body': json.stringify(event),
        }
        return output;
    }
  3. (可选)如需使用更安全的鉴权方式,可将以下代码内容替换:
    const ak = context.getuserdata("ak");
    const sk = context.getuserdata("sk");
    const credentials = new core.basiccredentials()
        .withak(ak)
        .withsk(sk)
        .withprojectid(project_id)

    替换为:

    const ak = context.getsecurityaccesskey();
    const sk = context.getsecuritysecretkey();
    const st = context.getsecuritytoken();
    const credentials = new core.basiccredentials()
        .withak(ak)
        .withsk(sk)
        .withprojectid(project_id)
        .with_security_token(st)

相关文档

网站地图