除去传统的云函数,您还可在端云一体化云侧工程下开发云对象。云对象是一种特殊的云函数,本质是对云函数的一种封装,客户端可通过导入一个云对象来直接使用这个对象的方法,提供在端侧直接调用云侧代码的开发体验。相对普通云函数方式,云对象代码更精简、逻辑更清晰,大多数场景下推荐使用云对象代替传统云函数。开发流程大致如下:
说明
一般建议先将云对象调试无误后再部署至云端,但某些业务场景下需要先部署云对象才能进行调试。请根据实际业务需要操作。
首先您需要在云侧工程下创建云对象。
1. 右击“cloudfunctions”目录,选择“New > Cloud Function”。

2. 在“Select the Cloud Function Type”栏选择“Cloud Object”,输入云对象名称(如“my-cloud-object”),点击“OK”。
与云函数名一样,云对象名称长度2-63个字符,仅支持小写英文字母、数字、中划线(-),首字符必须为小写字母,结尾不能为中划线(-)。

“cloudfunctions”目录下生成新建的云对象目录,目录下主要包含如下文件:
说明 云对象的配置文件“function-config.json”不建议手动修改,否则将导致云对象部署失败或其它错误。



云对象创建完成后,您便可以直接在云对象中编写需要实现的方法。例如,通过云对象实现add与subtract两个方法。
1. 打开云对象入口文件(此处以“myCloudObject.ts”为例),添加add与subtract方法。
export class MyCloudObject {
add(num1: number, num2: number) {
return { result: num1 + num2 };
}
subtract(num1: number, num2: number) {
return { result: num1 - num2 };
}
}
注意
2. (可选)如云对象存在依赖关系,可在“package.json”文件的“dependencies”下添加需要的依赖,然后点击右上角“Sync Now”。
说明
右击“package.json”文件,选择“Run 'npm install'”菜单,也可以实现依赖包安装。

所有安装的依赖包都会存储在当前云对象的“node_modules”目录下。

云对象开发完成后,您可以对其进行调试,以验证云对象代码运行是否正常。
目前DevEco Studio云对象调试支持本地调用和远程调用,请根据实际场景选择使用:
可在DevEco Studio调试本地开发好的云对象,支持单个调试和批量调试,并支持Run和Debug两种模式。
下文以Debug模式下调试单个云对象“my-cloud-object”为例,介绍如何在DevEco Studio调试本地云对象。
1. 右击“my-cloud-object”云对象目录,选择“Debug 'my-cloud-object'”。
说明

2. 在下方通知栏“cloudfunctions”窗口,查看调试日志。如果出现“Cloud Functions loaded successfully”,表示云对象已成功加载到本地运行的HTTP Server中,并生成对应的Function URI。

3. 如需设置断点调试,在函数代码中选定要设置断点的有效代码行,在行号(如下图行3)后单击鼠标左键设置断点(如下图的红点)。
设置断点后,调试能够在断点处中断,并高亮显示该行。

4. 在菜单栏选择“View > Tool Windows > Cloud Functions Requestor”,使用事件模拟器(Cloud Functions Requestor)触发云对象调用。

5. 在弹出的“Cloud Functions Requestor”面板,配置触发事件参数。
注意
如果Method的入参中的某一个是数组[]类型,那么Event中将至少包含两层方括号'[',外层的方括号表示参数列表。

6. (可选)点击“Save”,可保存当前触发事件。

点击右上角

可展开保存的触发事件,后续可直接点击“Load”加载事件。对于不需要保存的触发事件,也可以点击“Delete”删除。

7. 点击“Trigger”, 将会触发执行云对象的方法,执行结果将展示在“Result”框内。
说明
“Result”框右侧的“Logs”面板仅供通过远程调用方式调试云对象时使用。

8. 点击菜单栏

,可停止调试。
9. 根据调试结果修改云对象代码后,点击

重新以Debug模式启动调试,直至没有问题。
10. 参考步骤5~9,完成云对象其他方法或其他云对象的调试。
可以将云对象部署至AGC云端,然后在DevEco Studio调用云端云对象,以测试云对象在云端的运行情况、或补充测试因各种因素限制未能在本地调试中发现的问题。
1. 参考部署云对象将需要调试的云对象部署至AGC云端。
2. 在菜单栏选择“View > Tool Windows > Cloud Functions Requestor”,使用事件模拟器(Cloud Functions Requestor)触发云对象调用。

3. 在弹出的“Cloud Functions Requestor”面板,配置触发事件参数。
注意
如果Method的入参中的某一个是数组[]类型,那么Event中将至少包含两层方括号,如'[[1, 2], 3]',外层的方括号表示参数列表。

4. 点击“Trigger”, 将会触发执行云对象方法,执行结果将展示在“Result”框内。

5. 点击“Logs”页签,还可查看打印的日志定位问题。修改云对象代码、重新部署云对象后再次执行远程调用,直至没有问题。
6. 参考步骤1~5,完成云对象其他方法或其他云对象的调试。
完成云对象代码开发后,您可将云对象部署到AGC云端,支持单个部署和批量部署。
单个部署仅部署选中的云对象,批量部署则会将整个“cloudfunctions”目录下的所有云对象同时部署到AGC云端。
下文以部署单个云对象“my-cloud-object”为例,介绍如何部署云对象。
1. 右击“my-cloud-object”云对象目录,选择“Deploy 'my-cloud-object'”。
说明
如需批量部署多个云对象,右击“cloudfunctions”目录,选择“Deploy Cloud Functions”即可部署该目录下所有云对象。如“cloudfunctions”目录下同时存在云函数和云对象,云函数和云对象将会被一起部署到AGC云端。

2. 可在底部状态栏右侧查看云对象打包与部署进度。
耐心等待,直至出现“Deploy successfully”消息,表示当前云对象已成功部署。

3. 在菜单栏选择“Tools > CloudDev”。

4. 在打开的CloudDev面板中,点击“Serverless > Cloud Functions”下的“Go to console”,进入当前项目的云函数服务页面。

5. 查看到“my-cloud-object”云对象已成功部署至AGC云端,云对象名称与本地工程的云对象目录名相同。
部署成功后,便可以从端侧调用云对象了