目录

调用函数

查询函数名和版本号

当您在创建的“事件调用”函数或函数别名中创建了一个HTTP类型的触发器(认证类型选择“API客户端鉴权(Server适用)“后,在主调函数的代码中调用函数时需要传入被调函数的函数名和版本号(或别名),查询方法如下:

在被调函数的触发器页面点击“HTTP触发器”,查看“触发URL”的后缀,获取触发器的标识,格式为“函数名-版本号”。如下图所示,“function-test-$latest”即为HTTP触发器标识,其中“function-test”为函数名,“$latest”为版本号。

调用函数

工程集成了云函数Server SDK后,可以在工程内直接通过SDK API调用云函数,云函数SDK与云侧的函数调用基于传输通道为HTTPS的安全访问。

  1. 创建一个AGCClient对象。先手动加载认证凭据agc-apiclient.json,然后通过认证凭据来生成AGCClient。
    CredentialService credential = CredentialParser.toCredential("凭据文件路径");
    AGCParameter agcParameter = AGCParameter.builder().setCredential(credential).build();
    AGCClient.initialize(agcParameter);
  2. 调用AGCFunction.getInstance获取AGCFunction实例。
    // 构造云函数对象实例
    AGCFunction function = AGCFunction.getInstance();
  3. 调用AGCFunction.wrap设置函数,在方法中传入函数名和版本(或别名)。
    FunctionCallable callable = function.wrap("function-test", "$latest");
  4. 根据函数类型和函数入参情况,调用相关方法来调用函数。
    • 如果调用时无参数,则使用FunctionCallable.call()来调用函数。
      FunctionResult res = callable.call();
    • 如果调用时有参数,则使用FunctionCallable.call(T body)来调用函数。

      传参类型支持HashMap、com.alibaba.fastjson.JSONObject、com.huawei.agconnect.server.commons.json.JSONObject。

      其中HTTP触发器传递给函数的event对象数据格式,请参见event对象说明。

      FunctionResult res = callable.call(body);
  5. 如果您需要关注函数的返回值,可调用如下方法获取:
    • 如果想获取String类型的返回值,使用FunctionResult.getValue()方法即可。
      String message = res.getValue();
    • 如果想获取指定类型的返回值,可使用FunctionResult.getValue传递指定的类型。
      T value = res.getValue(t.class);