调用本地云函数之前,请按照以下示例设置“设备端口”到“主机端口”的映射。详情请参见创建反向端口转发任务。
hdc rport tcp:18090 tcp:18090
其中,设备端口和主机端口即为Function URI中的端口。
从6.0.1(21)版本开始,新增支持调用本地云函数功能。
导入相关模块。
import { cloudFunction } from '@kit.CloudFoundationKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { hilog } from '@kit.PerformanceAnalysisKit'; 调用call()方法设置函数,在方法中传入函数名称和本地启动的云函数地址,返回调用结果。
使用Promise异步回调:
cloudFunction.call({
name: 'my-cloud-function', // my-cloud-function需替换为实际的函数名
version: '$latest', // 如果不传入版本号,默认为“$latest”。
timeout: 10 * 1000, // 单位为ms,默认为70*1000ms。
data: {
// data为函数请求体
param1: 'val1',
param2: 'val2'
},
localUrl: 'http://localhost:18090' // 本地启动的云函数地址
}).then((res: cloudFunction.FunctionResult) => {
hilog.info(0x0000, 'function', `Succeeded in calling the function, result: ${JSON.stringify(res.result)}`);
}).catch((err: BusinessError) => {
hilog.error(0x0000, 'function', `Failed to call the function, code: ${err.code}, message: ${err.message}`);
}); 或者,使用callback异步回调:
cloudFunction.call({
name: 'my-cloud-function', // my-cloud-function需替换为实际的函数名
version: '$latest', // 如果不传入版本号,默认为“$latest”。
timeout: 10 * 1000, // 单位为ms,默认为70*1000ms。
data: {
// data为函数请求体
param1: 'val1',
param2: 'val2'
},
localUrl: 'http://localhost:18090' // 本地启动的云函数地址
}, (err: BusinessError, res: cloudFunction.FunctionResult) => {
if (err) {
hilog.error(0x0000, 'function', `Failed to call the function, code: ${err.code}, message: ${err.message}`);
return;
}
hilog.info(0x0000, 'function', `Succeeded in calling the function, result: ${JSON.stringify(res.result)}`);
}); 打开entry的“Run/Debug Configurations”窗口,勾选“Allow multiple instances”。若未勾选,启动entry调试任务时,系统会终止云函数调试进程。
