鸿蒙开发——端云一体化——开发云函数

云函数

用来实现服务端的业务逻辑代码

云函数的使用

云函数部署到云测-->编写端侧代码调用云函数的代码-->将返回结果从云侧返回给端侧

一、云函数的开发

1.新建项目:登录AGCAppGallery Connect,点击我的项目,新建项目,输入项目名称,点击完成,在项目中的数据处理位置选择中国,设为默认。

2.开通云函数:点击开发中的云函数,选择开通(一个月调用不超过100万次不收费)

3.新建应用:返回至项目设置,添加应用选择APP(HarmonyOS),然后点击下方蓝色APP ID,按需填写,点击确认,选择应用所属项目,选择确定

4.创建应用:在DevEco Studio中实现,新建项目,选择[CloudDev]Empty Ability模板,输入项目名称,包名与AGC上一致

5.新建云函数:选中CloudProgram下cloudFunctions右键,new-->Cloud Function点击,输入名称,点击ok

6.编写云函数代码

        云函数的触发时机:http请求、云数据库(插入记录)、云存储(上传文件)

        云函数四大参数:event(输入信息)、context(执行时上下文信息)、callback(输出返回结果)、logger(记录日志)

//例如:
let myHandler = async function (event, context, callback, logger) {
  logger.info(event);

  // do something here
  const date = new Date();
  const year = date.getFullYear();
  const month = date.getMonth() + 1;
  const day = date.getDate();
  const currentDate = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;
  callback({
    code: 200,
    desc: "Success.",
    message: currentDate
  });
};

export { myHandler };

注意: 假如需要传入值,那么在本地测试与云调用时写法是不一致的

//调用时写法
let r = JSON.parse(event.body).r
//本地测试时写法
// let r = event.r

二、云函数的部署

        选中CloudProgram下cloudFunctions右键,点击Deploy Cloud Functions,等待部署完成,回到AGC的云函数,可以看到已经部署到云侧了

测试云函数:

        测试前需要Run想要测试的云函数

        选中右边栏中的Cloud Functions Requestor进入测试,左侧Cloud Function选择想要测试的云函数,右侧Environment选择在本地测试还是在远端测试

三、云函数的调用

1.认证:在AGC上将项目的sdk下载下来,放在DevEco Studio中src/main/resources/rawfile目录下,文件包含所有的授权信息

2.初始化

首先,在oh-package.json5中添加依赖

"dependencies": {
        "@hw-agconnect/cloud": "^1.0.1",
        "@hw-agconnect/hmcore": "^1.0.1",
        "@hw-agconnect/auth-component":  "^1.0.1"
}

其次,在src/main/ets/entryability/EntryAbility.ets中进行初始化

//初始化项目
let input = await this.context.resourceManager.getRawFileContent('agconnect-services.json')
let jsonString = util.TextDecoder.create('utf-8', { ignoreBOM: true }).decodeWithStream(input, { stream: false })
initialize(this.context, JSON.parse(jsonString)); 

3.调用: 

      //例如:
       Button("获取当前日期")
        .onClick(async () => {
          const result1 = await cloud.callFunction({
            name: "function1",
            version: '$latest',
            params: {}
          })
          promptAction.showToast({ message: result1.getValue().message })
        })

cloud为我们添加的依赖

name为函数的名字

version为函数的版本,一般写为$latest,表示为最新的一版

params为向函数传入的参数,没有就传入空{}

注:云函数的调用无法通过模拟器或者预览器查看,必须使用真机或者在AGC上使用云调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值