HarmonyOS开发云工程与开发云函数
创建函数
您可直接在DevEco Studio创建函数、编写函数业务代码、为函数配置调用触发器。
1.右击“cloudfunctions”目录,选择“New > Cloud Function”。
2.输入函数名称后,点击“OK”。
函数名称仅支持小写英文字母、数字、中划线(-),首字符必须为小写字母,结尾不能为中划线(-)。
“cloudfunctions”目录下生成新建的函数目录。
3.配置函数。
- node_modules:自动为该函数引入的依赖包。
- function-config.json:函数的配置文件,可配置触发器,通过触发器暴露的触发条件来实现函数调用。

在“triggers”下配置触发器,云函数目前支持以下5种触发器。
NOTICE
如您需在函数部署完成后更新触发器,请先删除之前的触发器配置,再添加新的触发器配置,否则您的更新将不生效。
- HTTP触发器
function-config.json文件中已为您自动完成HTTP触发器配置。函数部署到云端后会自动生成触发URL,在您向该URL发起HTTP请求时触发函数。关于如何使用HTTP触发器调用函数,请参见通过HTTP触发器调用函数。
{"type": "http","properties": {"enableUrlDecode": true,"authFlag": "true","authAlgor": "HDA-SYSTEM","authType": "apigw-client"}
}
- type:触发器类型,配置为“http”。
- properties:触发器属性,属性参数如下表所示。

- CLOUDDB触发器
为函数配置CLOUDDB触发器后,当云数据库发生插入或者更新数据、删除数据、清空数据等变更操作时将触发云函数。关于如何使用CLOUDDB触发器调用函数,请参见云数据库调用函数。
{"type": "clouddb","properties": {"eventSourceId": "9***-test-user","eventType": "onUpsert","enabled": "true"}
}
- type:触发器类型,配置为“clouddb”。
- properties:触发器属性,属性参数如下表所示。

AUTH触发器
您可以为函数配置AUTH触发器来接收用户的注册、登录等关键事件。例如,若添加了“用户注册”事件类型的AUTH触发器,当认证服务检测到用户注册事件发生时将触发函数。关于如何使用AUTH触发器调用函数,请参见认证服务调用函数。
{"type": "auth","properties": {"eventType": 0}
}
- type:触发器类型,配置为“auth”。
- properties:触发器属性,属性参数如下表所示。

- CLOUDSTORAGE触发器
为函数配置CLOUDSTORAGE触发器后,当AGC云存储服务中发生文件或者文件夹上传或删除操作时,将触发函数并执行您想要实现的功能。关于如何使用CLOUDSTORAGE触发器调用函数,请参见云存储调用函数。
{"type": "cloud_storage","properties": {"bucketName": "harmony-0xnwg","eventName": "storage.upload.completed"}
}
- type:触发器类型,配置为“cloud_storage”。
- properties:触发器属性,属性参数如下表所示。

- helloworld.ts:函数入口文件(此处以“helloworld.ts”为例,请以实际名称为准)。请参考开发函数编写函数代码。

- package.json:包含了当前函数的名称、版本等函数元数据。package.json内自动引入了云数据库的最新版本Node.js
Server SDK,您也可以在“dependencies”下添加其他需要的依赖。

- package-lock.json:保存了node_modules中所有包的信息,如版本、下载地址等。

调试函数
函数开发过程中,您可在本地进行调试。或者您也可以将函数部署到AGC云端后,在本地触发调用云端函数。
目前本地调试支持Run和Debug两种模式。Debug模式支持使用断点来追踪函数的运行情况,Run模式则不支持。
NOTICE
在通用云开发模板工程与商城模板工程下调试函数的流程基本一致,但商城模板工程目前存在一些特殊限制,因此如需调试商城模板工程函数,请直接参考调试商城模板工程函数操作。
Run模式启动调试
1.右击“cloudfunctions”目录,选择“Run Cloud Functions”。
NOTE
直接从当前路径下Run,使用的是默认的Run配置,您也可自定义Run配置。自定义Run配置后再从此路径下Run,将优先采用自定义Run配置。

2.查看“Run”面板。如果出现“Cloud Functions loaded successfully”,表示所有函数已成功加载到本地运行的HTTP Server中,并生成对应的POST URL。
3.在菜单栏选择“Tools > CloudDev > Cloud Functions Requestor”,使用Cloud Functions Requestor触发函数调用。
4.在弹出的“Cloud Functions Requestor”面板,填写触发事件参数。
- Environment:选择函数调用环境,Local表示本地调用,Remote表示远程调用。
NOTICE
远程调用需先将函数部署到AGC云端。
- Cloud Function:选择需要触发的云函数。
- Event:输入事件参数,内容为JSON格式请求体数据。
5.(可选)点击“Save”,可保存当前触发事件。
点击右上角可展开保存的触发事件,后续可直接点击“Load”加载事件。对于不需要保存的触发事件,也可以点击“Delete”删除。
6.点击“Trigger”, 将会触发执行用户函数代码。执行结果将展示在“Result”框内,Run面板同时打印运行日志。
7.(可选)如配置了环境变量(如下图中“env1”),可将变量配置信息传入到函数执行环境中,用于函数运行时读取。
8.点击Run面板左侧,可停止运行。
9.根据运行结果修改函数代码后,点击重新以Run模式启动调试,直至没有问题。
10.参考步骤4~9,完成其他函数的调试。
Debug模式启动调试
右击“cloudfunctions”目录,选择“Debug Cloud Functions”。
NOTE
直接从当前路径下Debug,使用的是默认的Debug配置,您也可自定义Debug配置。自定义Debug配置后再从此路径下Debug,将优先采用自定义Debug配置。

2.查看Console面板。如果出现“Cloud Functions loaded successfully”,表示函数成功加载到本地运行的HTTP Server中,并生成对应的POST URL。
3.如需设置断点调试,在函数代码中选定要设置断点的有效代码行,在行号(如下图行14)后单击鼠标左键设置断点(如下图的红点)。
设置断点后,调试能够在断点处中断,并高亮显示该行。
4.在菜单栏选择“Tools > CloudDev > Cloud Functions Requestor”,使用Cloud Functions Requestor触发函数调用。
5.在弹出的“Cloud Functions Requestor”面板,填写触发事件参数。
- Environment:选择函数调用环境,Local表示本地调用,Remote表示远程调用。
NOTICE
远程调用需先将函数部署到AGC云端。
- Cloud Function:选择需要触发的云函数。
- Event:输入事件参数,内容为JSON格式请求体数据。
6.(可选)点击“Save”,可保存当前触发事件。

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

7.点击“Trigger”, 将会触发执行用户函数代码。执行结果将展示在“Result”框内,Debugger面板同时打印调试日志。

8.(可选)如配置了环境变量(如下图中“env1”),可将变量配置信息传入到函数执行环境中,用于函数运行时读取。

9.点击,可停止调试。

10.根据调试结果修改函数代码后,点击重新以Debug模式启动调试,直至没有问题。
11.参考步骤5~10,完成其他函数的调试。
自定义Run/Debug配置
按以上两种方法直接启动调试采用的是默认的Run/Debug配置。如有特殊需求,您也可使用自定义Run/Debug配置项来进行调试。
1.在菜单栏选择“Run > Edit Configurations”。
2.在“Run/Debug Configurations”窗口,点击,选择“Cloud Functions”,新增一个Run/Debug配置。
3.自定义Run/Debug配置,完成后点击“OK”。
- Name:Run/Debug配置的名称,如“functions-custom1”。
- Server Port:HTTP服务端监听端口。默认为“18090”,自定义端口号建议大于1024。勾选“Auto
increment”表示如当前端口被占用则端口号自动加“1”。 - Environment variables:函数运行的环境变量,为key-value形式。
点击“Edit environment variables”按钮,在“Environment Variables”弹窗中点击“+”添加一个环境变量,然后点击“OK”。添加成功后,您便可以将变量配置信息传入到函数执行环境中,用于函数运行时读取。
4.选择刚刚自定义的Run/Debug配置,分别点击或进行Run或Debug。后续调试步骤与默认配置下的调试步骤一致,请分别参见Run模式启动调试或Debug模式启动调试。
调试商城模板工程函数
商城模板中有部分代码逻辑实现了云函数调用云数据库,因此需要您先部署云工程,云端才会有相关数据及环境变量。同时,云函数为访问云数据库使用了“PROJECT_CREDENTIAL”环境变量,部署函数到AGC云端时,云端会自动配置好“PROJECT_CREDENTIAL”以运行环境变量。但在本地调试函数时,需要您手动将“PROJECT_CREDENTIAL”环境变量添加到Run/Debug配置中。否则,函数调试代码执行会因获取不到“PROJECT_CREDENTIAL”环境变量而中断。
本章节将介绍如何在本地调试商城模板工程函数,重点详述商城模板函数调试的一些特殊配置。
1.将整个云工程部署到AGC云端。
2.进入AGC控制台,选择您的项目,进入“Serverless > 云函数”菜单,在函数列表点击刚刚部署的任意函数(如下图“mall-commodity”)。

3.在函数概览页面,选择“配置 > 环境变量”页签,获取AGC为您自动配置好的环境变量“PROJECT_CREDENTIAL”的key和value值。

4.参考自定义Run/Debug配置新增函数调试配置,将步骤3获取的“PROJECT_CREDENTIAL”环境变量添加到调试配置中。您也可以添加您需要的其他环境变量。

5.选择刚刚自定义的Run/Debug配置,分别点击或进行Run或Debug,调试步骤请分别参见Run模式启动调试或Debug模式启动调试。
部署函数
完成函数代码开发后,您可将函数部署到AGC控制台,支持单个部署和批量部署。
部署单个函数
1.右击需部署的函数目录,选择“Deploy Function”。

2.“底部状态栏右侧将展示函数打包与部署进度。请您耐心等待,直至出现“Deploy successfully”消息,表示函数已成功部署。

3.登录AppGallery Connect,进入当前项目的云函数服务菜单,可查看到您刚刚部署的函数,函数名称与本地工程的函数目录名相同。
批量部署函数
批量部署指将整个云函数目录下创建的所有函数同时部署到AGC控制台。
1.右击“cloudfunctions”目录,选择“Deploy Cloud Functions”。
2.您可在底部状态栏右侧查看函数打包与部署进度。
请您耐心等待,直至出现“Deploy successfully”消息,表示所有函数均已成功部署。

3.登录AppGallery Connect,进入当前项目的云函数服务菜单,可查看到您刚刚部署的云函数目录下的所有函数,函数名称均与本地工程的函数目录名相同。

那么要想成为一名鸿蒙高级开发,以上知识点是必须要掌握的,除此之外,还需要掌握一些鸿蒙应用开发相关的一些技术,需要我们共同去探索。
为了能够让大家跟上互联网时代的技术迭代,在这里我特邀了几位行业大佬整理出一份最新版的鸿蒙学习提升资料,有需要的小伙伴自行领取,限时开源,先到先得~~~~
领取以下高清学习路线原图请点击→《鸿蒙全套学习指南》纯血鸿蒙HarmonyOS基础技能学习路线图

领取以上完整高清学习路线图,请点击→《鸿蒙基础入门学习指南》小编自己整理的部分学习资料(包含有高清视频、开发文档、电子书籍等)
以上分享的学习路线都适合哪些人跟着学习?
-应届生/计算机专业通过学习鸿蒙新兴技术,入行互联网,未来高起点就业。
-0基础转行提前布局新方向,抓住风口,自我提升,获得更多就业机会。
-技术提升/进阶跳槽发展瓶颈期,提升职场竞争力,快速掌握鸿蒙技术,享受蓝海红利。

最后
鸿蒙开发学习是一个系统化的过程,从基础知识的学习到实战技能的锤炼,再到对前沿技术的探索,每一环节都至关重要。希望这份教程资料能帮助您快速入门并在鸿蒙开发之路上步步攀升,成就一番事业。让我们一起乘风破浪,拥抱鸿蒙生态的广阔未来!
如果你觉得这篇内容对你有帮助,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
关注我,同时可以期待后续文章ing,不定期分享原创知识。
想要获取更多完整鸿蒙最新VIP学习资料,请点击→《鸿蒙 (Harmony OS)开发学习手册》
相关文章:
HarmonyOS开发云工程与开发云函数
创建函数 您可直接在DevEco Studio创建函数、编写函数业务代码、为函数配置调用触发器。 1.右击“cloudfunctions”目录,选择“New > Cloud Function”。 2.输入函数名称后,点击“OK”。 函数名称仅支持小写英文字母、数字、中划线(-&a…...
SpringMVC了解
1.springMVC概述 Spring MVC(Model-View-Controller)是基于 Java 的 Web 应用程序框架,用于开发 Web 应用程序。它通过将应用程序分为模型(Model)、视图(View)和控制器(Controller&a…...
day44((VueJS)路由的懒加载使用 路由的元信息(meta) 路由守卫函数 vant组件库的应用)
一.路由懒加载的使用 使用原因 1.使用原因1) 使用一般写法(即直接填写组件的缺点)当使用这种写法,页面在初次加载会将所有路由配置表的添加的组件一次性全部加载,如果项目中组件代码量庞大,就需要很长时间…...
非线性优化资料整理
做课题看了一些非线性优化的资料,整理一下,以方便查看: 优化的中文博客 数值优化|笔记整理(8)——带约束优化:引入,梯度投影法 (附代码)QP求解器对比对于MPC的QP求解器 数值优化| 二次规划的…...
踩坑wow.js 和animate.css一起使用没有效果
踩坑wow.js 和animate.css一起使用没有效果 问题及解决方法一、电脑系统配置问题二、版本问题 问题及解决方法 一、电脑系统配置问题 在系统属性里面把窗口内的动画和元素勾选 二、版本问题 使用wow加animate4.4.1也就是最新本,打开网页没有任何动画效果 但是把…...
Laravel - API 项目适用的图片验证码
1. 安装 gregwar/captcha 图片验证码接口的流程是: 生成图片验证码 生成随机的 key,将验证码文本存入缓存。 返回随机的 key,以及验证码图片 # 不限于 laravel 普通 php 项目也可以使用额 $ composer require gregwar/captcha2. 开发接口 …...
iMazing3安全吗?好不好用?值不值得下载
一、安全性 iMazing在设计和开发过程中,始终把用户数据的安全性放在首位。它采用了多种先进的安全技术来确保用户数据在传输、备份和存储过程中的安全。 iMazing3Mac-最新绿色安装包下载如下: https://wm.makeding.com/iclk/?zoneid49816 iMazing3Wi…...
韩国突发:将批准比特币ETF
作者:秦晋 韩国两党宣布将批准比特币ETF。比特币也再次成为竞选的宠儿。 4月10日,韩国将迎来每隔4年而进行的一次立法大选。在大选之前,现执政党与反对党都承诺将批准比特币ETF。 我们知道,比特币的主要受众群体以年轻人居多。此前…...
Kubernetes IoTDB系列 | IoTDB数据库同步|IoTDB数据库高可用
目录 一、介绍二、应用场景三、IoTDB 数据库搭建四、修改同步配置文件1、配置接收端的参数2、配置发送端的参数五、启动同步功能发送端六、测试一、介绍 IoTDB 数据库同步是指将一个节点的数据复制到其他节点,以确保数据的冗余和可用性。在分布式环境中,数据同步是保证系统高…...
重拾前端基础知识:CSS
重拾前端基础知识:CSS 前言选择器简单选择器属性选择器组合选择器 插入CSS内嵌样式(Inline Style)内部样式(Internal Style)外部样式(External Style) 层叠颜色背景颜色文本颜色RGB 颜色HEX 颜色…...
综合实战(volume and Compose)
"让我,重获新生~" MySQL 灾难恢复 熟练掌握挂载卷的使用,将Mysql的业务数据存储在 外部。 实战思想: 使用 MySQL 5.7 的镜像创建容器并创建一个普通数据卷 "mysql-data"用来保存容器中产生的数据。我们需要容器连接到Mysql服务&a…...
国际黄金价格要具体市况具体分析
国际黄金价格走势多变,投资者在参与的过程中要注意自己交易策略的灵活度,要做到具体市况具体分析,而且面对不同的市况,要采用不同的挂单方式,这样才能把握住更有利的入场时机。在大家常用的现货黄金交易软件MT4中&…...
【python】0、超详细介绍:json、http
文章目录 一、json二、http2.1 json 读取 request 序列化 三、基本类型3.1 decimal 四、图像4.1 颜色格式转换 一、json import json f open(data.json) # open json file data json.load(f) # 读出 json object for i in data[emp_details]: # 取出一级属性 emp_details, …...
可观测性在威胁检测和取证日志分析中的作用
在网络中,威胁是指可能影响其平稳运行的恶意元素,因此,对于任何希望避免任何财政损失或生产力下降机会的组织来说,威胁检测都是必要的。为了先发制人地抵御来自不同来源的任何此类攻击,需要有效的威胁检测情报。 威胁…...
win32com打开带密码excel
简单来说给excel上加密常见的方法有两种 方法一: 直接修改文件属性 这种方法对应的解法是 excel DispatchEx("Excel.Application") # 启动excel excel.Visible visible # 可视化 excel.DisplayAlerts displayalerts # 是否显示警告 wb excel.Wo…...
IntelliJ IDEA 的常用快捷键
IntelliJ IDEA 的常用快捷键非常多,这些快捷键可以帮助你更高效地编写代码。以下是一些常用的快捷键总结: 基础操作 CtrlN:查找类CtrlShiftN:查找文件CtrlAltL:格式化代码AltInsert:生成代码(…...
C语言统计成绩
目录 描述 输入描述: 输出描述: 问题描述 解决方案 总结 描述 输入n科成绩(浮点数表示),统计其中的最高分,最低分以及平均分。 数据范围:1≤�≤100 1≤n≤100 , …...
LVS做集群四层负载均衡的简单理解
背景:业务中主要是TCP/SSL连接,要做四层负载均衡。 之前做负载均衡,调研了nginx(见之前的nginx实现后端服务负载均衡和nginx负载均衡监测后台服务状态)。 nginx作为一个应用,做四层负载均衡效率低。lvs是li…...
2.1_6 线程的实现方式和多线程模型
文章目录 2.1_6 线程的实现方式和多线程模型(一)线程的实现方式(1)用户级线程(2)内核级线程 (二)多线程模型(1)一对一模型(2)多对一模…...
4.5 MongoDB 文档存储
目录 1. 相关安装 2. Pycharm可视化观察MongoDB 3. python使用 MongoDB 最初流程代码 4. 插入、查询、更新、删除数据 4.1 插入数据 4.2 查询数据 4.3 更新数据 4.3.1 更新一条数据 4.3.2 更新多条数据 4.4 删除数据 5. 计数、排序、偏移 5.1 计数 5.2 排序 5.3 …...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
