HarmonyOS 鸿蒙Next Serverless云函数中怎么调用其他云函数

发布于 1周前 作者 htzhanglong 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Serverless云函数中怎么调用其他云函数 【问题描述】想在云函数代码中调用别的云函数,于是参考官方文档,编写Node.js的函数代码,导入到AGC控制台进行测试,返回结果总是会报下面这个错误。

现在的云函数2.0都找不到@agconnect/common-server@hw-agconnect/function-server的模块了,怎么调用其他云函数?

{
  "code": 180000,
  "message": "Call handler error: Cannot find module '@agconnect/common-server'
Require stack:
- /dcache/layer/func/handler.js
- /home/wisefunction/runtime/functions/invoke_func.js
- /home/wisefunction/runtime/functions/functions.js
- /home/wisefunction/runtime/cluster/worker_listen.js
- /home/wisefunction/runtime/wrapper.js"
}

云函数代码如下:

const agconnect = require('@agconnect/common-server');

const { AGCFunction } = require("@hw-agconnect/function-server");

let path = require('path');

let api_client_path = path.join(__dirname, "agc-apiclient.json");

const agcClient = agconnect.AGCClient.getInstance();

agconnect.AGCClient.initialize(agconnect.CredentialParser.toCredential(api_client_path));

let agcFunction = new AGCFunction(agcClient);

let myHandler = function(event, context, callback, logger) {

  let callable= agcFunction.wrap("gettman","$latest");

  let result=callable.call()

    //send response
    callback({"res":result});
};

module.exports.myHandler = myHandler;

更多关于HarmonyOS 鸿蒙Next Serverless云函数中怎么调用其他云函数的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

更多关于HarmonyOS 鸿蒙Next Serverless云函数中怎么调用其他云函数的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


华为官方有这方面详细文档和代码例子参考吗?

帮顶一个,没人试过云函数中可以调用其它云函数吗?

在HarmonyOS鸿蒙的Next Serverless平台中,调用其他云函数通常可以通过云函数间的HTTP请求来实现。以下是一个简要的实现方式:

  1. 获取目标云函数URL:首先,你需要知道你要调用的目标云函数的URL。这通常可以在云函数的管理界面或配置信息中找到。

  2. 发送HTTP请求:在你的源云函数代码中,使用HTTP客户端库(如axios、fetch等,具体取决于你所使用的运行时环境)向目标云函数的URL发送请求。请求的方法(GET、POST等)和请求体(如果有)应根据目标云函数的要求来设置。

  3. 处理响应:接收目标云函数的响应,并根据需要进行处理。响应中可能包含你需要的数据或状态信息。

  4. 错误处理:确保你的代码能够处理可能出现的错误,如网络错误、目标云函数执行错误等。

示例代码(假设使用axios库,且目标云函数接受POST请求):

const axios = require('axios');

async function callOtherCloudFunction(url, data) {
    try {
        const response = await axios.post(url, data);
        return response.data;
    } catch (error) {
        console.error('Error calling cloud function:', error);
        throw error;
    }
}

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部