HarmonyOS鸿蒙Next新手也能搞定的端云一体化指南——云函数
HarmonyOS鸿蒙Next新手也能搞定的端云一体化指南——云函数
一些理论知识要点
云函数是一项Serverless计算服务,提供Faas(Function as a Service)能力,一方面云函数将开发测试的对象聚焦到函数级别,可以帮助开发者大幅简化应用开发与运维相关的事务,另一方面开发者可以通过在应用中集成云函数SDK,便捷操作云开发(Serverless)提供的其他诸如云数据库、云存储等服务,提升业务功能构建的便利性。解决了传统业务开发、调试、部署、运维疑难杂症,开发者不需要关注业务逻辑以外的事务,如搭建软件运行环境、高并发扩容、服务器维护等,云函数可以根据函数的实际流量对函数进行弹性伸缩,开发者无需为空闲资源买单。
开发一个获取「欢迎页面信息」的云函数
开发流程
使用端云一体化云侧工程开发云函数流程为以下五步:
- 确保云函数服务开通。
- 通过DevEco Studio工具在云侧工程创建一个用于获取「欢迎页面信息」的云函数,并为函数配置入口以及调用的触发器等。
- 通过DevEco Studio工具在云侧工程为创建的云函数编写业务逻辑代码。
- 通过DevEco Studio工具测试函数代码是否正常。
- 完成函数代码开发与调试后,通过DevEco Studio工具提供的一键部署能力,将云函数部署到AGC云端。
确保云函数服务开通
使用DevEco Studio预置的通用云开发模板创建的端云一体化工程,在工程初始化时,会自动开通云开发(Serverless)服务,若在开发工具主界面通知栏(Notifications)中显示服务开通失败,需按照以下步骤进行开通个。
- 登录 AGC控制台,点击“我的项目”。
- 在项目列表中点击需要开通云函数的项目。
- 在打开的目标项目左侧导航栏选择“云开发(Serverless) > 云函数”,进入云函数页面,点击“立即开通”。如果您此时未设置数据处理位置,系统会自动弹出提示框提示您进行设置。
云侧创建云函数
- 展开云侧工程目录,右击“cloudfunctions”目录,选择“New > Cloud Function”。
- 在打开的“New Cloud Function”窗口,输入云函数名称(如“query-welcome-func”),函数命名需符合长度2-63个字符,仅支持小写英文字母、数字、中划线,首字符必须为小写字母,结尾不能为中划线的命名规则。接着在“Select the Cloud Function Type”栏中选择“Cloud Function”,点击OK完成云函数创建。
DevEco Studio会根据通用云开发模板中云函数模板完成函数创建,在开发工具底部右侧弹出云函数创建成功信息,同时会在“cloudfunctions”目录下生成新建的“query-welcome-func”函数目录,目录包括以下文件:
- 函数配置文件“function-config.json”
- 函数入口文件“queryWelcomeFunc.ts”
- 依赖配置文件“package.json”
函数创建完成后,会自动在开发工具主界面编辑区打开函数入口文件“queryWelcomeFunc.ts”。
配置函数
打开函数配置文件“function-config.json”,文件包含函数入口属性、函数类型属性、以及触发器配置属性。
函数类型“functionType”值为0时表示云函数,为1时表示云对象,该值为创建时自动生成,且不可手动修改,负责将导致云函数部署失败。
云函数当前仅支持HTTP触发器,“function-config.json”文件中已经为开发者自动完成HTTP触发器配置。云函数部署到AGC云端后会自动生成触发URL,在开发者向该URL发起HTTP请求时触发函数。
开发函数
函数配置完成后,该函数的作用是获取云数据库中「欢迎页信息」,需要为函数配置云数据库SDK依赖关系,在“package.json”文件的“dependencies”下添加需要的依赖,当然,这种方式需要开发者明确依赖包的版本,然后点击右上角“Sync now”同步配置。若开发者不清楚依赖包的版本,在函数根目录打开终端,使用npm install --save @hw-agconnect/cloud-server
命令安装依赖包。
导入对象类型文件
- 右击需要调用的对象类型文件(以“Welcome.json”为例),选择“Generate Server Model”。
- 选择生成的Server Model文件存放在“query-welcome-func”函数目录,点击OK。
- “query-welcome-func”目录下生成对应对象类型的Server Model文件,为开发者在后续逻辑代码中引用Server Model提供便利。
开发获取「欢迎页信息」代码
在“query-welcome-func”目录下新建CloudDBZoneWrapper.ts文件,引入云数据库SDK包和对象类型文件,并定义获取Welcome数据的存储区名称(若不清楚存储区名称,可以在“clouddb > dataentry”目录下目标对象类型数据条目中查看),然后提供一个查询「欢迎页信息」的接口。
// 引入Server SDK依赖
import { cloud, CloudDBCollection } from '@hw-agconnect/cloud-server';
// Welcome为对象类型名
import { Welcome } from './Welcome';
// ZONE_NAME为存储区名称
const ZONE_NAME = "default";
export class CloudDbZoneWrapper {
collection: CloudDBCollection<Welcome>;
constructor() {
this.collection = cloud.database({ zoneName: ZONE_NAME }).collection(Welcome);
}
//查询数据
async queryBooks(): Promise<Welcome[]> {
const query = this.collection.query();
const result = await query.equalTo("status", 0).get();
return result;
}
}
在函数入口文件“queryWelcomeFunc.ts”文件中添加业务逻辑代码。
import { CloudDbZoneWrapper } from './CloudDBZoneWrapper';
let myHandler = async function (event, context, callback, logger) {
logger.info(event);
const wrapper = new CloudDbZoneWrapper();
const result = await wrapper.queryBooks();
return callback({
code: 0,
desc: "Success.",
data: result
});
};
export { myHandler };
调试云函数
云函数开发完成后,可以通过本地调用方式调试函数,也可以将函数部署至AGC云端后通过远程调用方式调试函数,推荐使用本地调试方式调试函数,函数正确运行后再部署至AGC云端。
- 右击“cloudfunctions”目录中的目标函数query-welcome-func目录,选择“Debug Cloud Functions”启动云函数。
- 在开发工具主界面底部控制台“cloudfunctions”窗口,可以查看云函数启动日志,调试日志。如果出现“Cloud Functions loaded successfully”,表示函数成功加载到本地运行的HTTP Server中,并生成对应的Function URI。
- (可选)开发者如果需要设置断点调试,在函数代码中选定要设置断点的有效代码行,在行号后单击鼠标左键设置断点。设置断点后,调试能够在断点处中断,并高亮显示该行。
- DevEco Studio集成开发工具内置了调试工具,在开发工具主界面顶部菜单栏选择“View > Tool Windows > Cloud Functions Requestor”,打开事件模拟器(Cloud Function Requestor)来触发函数调用。
在弹出的事件模拟器(Cloud Functions Requestor)面板,配置触发事件参数,然后点击面板中触发(Trigger)触发云函数执行业务逻辑。执行结果将展示在“Result”框内,“cloudfunctions”窗口同时打印调试日志。
部署云函数
开发、调试云函数通过后,开发者可以将云函数部署到AGC云端,支持单个部署和批量部署。二者区别在于所选目录不同,单个部署仅部署选中的目标函数,批量部署则会将整个“cloudfunctions”目录下的所有函数同时部署到AGC云端。
- 右击目标云函数目录(query-welcome-func),选择“Deploy ‘函数名称’”。
- 可在开发工具主界面底部状态栏右侧查看函数打包与部署进度,直至出现“Deploy successfully”消息,表示云函数已成功部署到AGC云端。
总结
本小节主要对云函数相关概念做了简单了解,并通过查询「欢迎页信息」对象类型详细信息讲解了使用一站式集成工具DevEco Studio工具开发、调试、部署云函数至AGC云端,同时提供了如何查看部署到AGC云端的云函数资源。
HarmonyOS鸿蒙Next的端云一体化开发中,云函数是实现云端逻辑的关键组件。云函数允许开发者在云端运行代码,无需管理服务器,直接与设备端进行交互。以下是云函数的基本使用步骤:
-
创建云函数:在华为开发者联盟的AppGallery Connect中,进入“云函数”模块,点击“创建函数”,填写函数名称、运行时环境(如Node.js)等基本信息。
-
编写函数代码:在云函数的代码编辑器中,编写业务逻辑代码。例如,处理设备端上传的数据,或调用其他云服务。代码编写完成后,点击“保存”。
-
配置触发器:云函数可以通过触发器自动执行。常见的触发器包括HTTP请求、定时任务、设备端事件等。在“触发器”模块中,配置触发条件,如URL路径、定时规则等。
-
部署与测试:完成代码编写和触发器配置后,点击“部署”按钮,将云函数发布到云端。部署成功后,可以通过触发器或直接调用函数URL进行测试。
-
设备端调用:在HarmonyOS设备端,使用
@ohos.cloud
模块调用云函数。通过cloud.callFunction
方法,传入函数名称和参数,即可触发云函数执行,并获取返回结果。 -
监控与日志:在AppGallery Connect中,可以查看云函数的执行日志和监控数据,帮助开发者调试和优化代码。
通过以上步骤,开发者可以快速实现HarmonyOS鸿蒙Next的端云一体化功能,利用云函数处理复杂的业务逻辑,提升应用性能和用户体验。
更多关于HarmonyOS鸿蒙Next新手也能搞定的端云一体化指南——云函数的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,端云一体化通过云函数实现,新手也能轻松上手。首先,在DevEco Studio中创建云函数项目,选择“Cloud Function”模板。接着,编写云函数代码,支持JavaScript和TypeScript。然后,配置云函数触发器,如HTTP请求或定时任务。最后,部署云函数到华为云FunctionGraph服务,通过API Gateway暴露接口。这样,设备端即可调用云函数,实现端云协同。整个过程简单直观,适合初学者快速掌握。