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)开发学习手册》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/708622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue中组合式API和选项式API的区别

组合式api(Composition API)是vue3对我们开发者来说变化非常大的更新,我们先不关注具体语法,先对它有一个大的感知。 通过vue2, vue3两种形式实现同一个需求,理解vue3的compition api 带来的好处 两个独立的功能&…

leetcode 重复的子字符串

前要推理 以abababab为例,这里最主要的就是根据相等前后缀进行推导 s [ 0123 ] 如 t【 0123 】 f 【01 23 】 后两个分别是前后缀,第一个是总的字符串,然后可以推导 //首先还是算出…

从Spring Boot应用上下文获取Bean定义及理解其来源

前言 在Spring框架中,Bean是组成应用程序的核心单元。特别是在Spring Boot项目中,通过使用SpringApplication.run()方法启动应用后,我们可以获得一个ConfigurableApplicationContext实例,这个实例代表了整个应用程序的运行时环境…

ArcgisForJS如何使用ArcGIS Server发布的GP服务?

文章目录 0.引言1.ArcGIS创建GP服务2.ArcGIS Server发布GP服务3.ArcgisForJS使用ArcGIS Server发布的GP服务 0.引言 ArcGIS for JavaScript(或简称AGJS)是一个强大的工具,它允许开发者使用JavaScript在Web浏览器中创建和运行ArcGIS应用程序。…

❤ git操作Github、git操作github

❤ 操作github 一、git操作Github 1、设置用户名和邮件地址 git config --global user.name "nexuslin" git config --global user.email "2455067339qq.com"2、生成本地密钥 ssh-keygen -t rsa -C 2455067339qq.com3、接下来就一直回车,然…

Docker数据集与自定义镜像:构建高效容器的关键要素

目录 博客前言 一.数据卷 1.数据卷介绍 2.实战 宿主机和容器共享目录 容器和容器之间共享目录 二.自定义镜像 1.自定义镜像介绍 2.实战 2.1自定义centos,具备vim及ifconfig作用 构建镜像 通过镜像运行一个容器进行测试 2.2自定义tomact(文件为…

(转载)SpringCloud 微服务(三)-Seata解决分布式事务问题

ps:这个原文写的很好,怕后续这个地址失效,备份一个留着自己学习 转自:SpringCloud 微服务(三)-Seata解决分布式事务问题_seata 黑马 代码-CSDN博客 看完了黑马程序员的免费课程,感觉受益匪浅,…

【Oracle】玩转Oracle数据库(七):RMAN恢复管理器

前言 嘿,数据库大魔法师们!准备好迎接新的技术大招了吗?今天我们要探索的是Oracle数据库中的神奇利器——RMAN恢复管理器!🛡️💾 在这篇博文【Oracle】玩转Oracle数据库(七)&#xf…

【4.3计算机网络】网络规划与设计

目录 1.网络规划2.逻辑网络设计3.物理网络设计 1.网络规划 需求分析->通信规范分析->逻辑网络设计->物理网络设计->实施阶段 2.逻辑网络设计 3.物理网络设计 例题1: 解析:选A。 例题2: 解析:选A。 例题3. 解析&am…

自动化威胁检测和响应

网络安全变得比以往任何时候都更加复杂和疯狂。网络威胁在不断演变,资金充足且持续存在的不良行为者变得更加复杂且更难以检测。预算和资产捉襟见肘,现代网络安全团队的任务是通过持续监控威胁、实施强有力的安全措施、教育组织最佳安全实践以及迅速修复…

关于uniapp小程序的分包问题

开发uniapp小程序时,在打包上传代码时会出现超出2M的打包限制不能上传,那么我们该怎么做呢? 1.对于图片,将图片从后端服务取,尽量不要放在静态资源,图片体积会影响打包大小。 2.使用分包,tabb…

全国产飞腾E2000Q +复旦微FPGA的轨道交通、电力解决方案

产品概述 ITX-XMF201是一款高性能边缘计算网关主板,采用飞腾E2000Q 4核处理器,国产化率达到95%国产化。 板载2电口,2路CAN,6路RS232接口,1路RS485接口,16路GPIO,可以满足银行、轨道交通、电力等…

VR元宇宙的概念|VR体验店加盟|虚拟现实设备销售

VR元宇宙是一个结合了虚拟现实(Virtual Reality)和增强现实(Augmented Reality)等技术的概念,代表着一个虚拟的多维度世界。它是一个由数字化的空间构成的虚拟环境,可以通过虚拟现实设备进行交互和探索。 元…

JavaScript 解决切换图片问题

代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style…

华为配置攻击检测功能示例

配置攻击检测功能示例 组网图形 图1 配置攻击检测功能示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 企业用户通过WLAN接入网络&#xff0c;以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时&#xff0c;不影响用户的业务使用。…

车灯典型方案 H5528L 降压恒流芯片12V240V360V48V60V72V90V转9V12V 高低亮 性价比高

降压恒流芯片支持高低亮工作原理&#xff1a; 通过PWM&#xff08;脉冲宽度调制&#xff09;技术来调节开关管的开关时间&#xff0c;从而实现稳定的输出电压和电流&#xff0c;保持LED灯的亮度稳定。当需要调节LED灯的亮度时&#xff0c;可以通过改变PWM信号的占空比来实现。…

【信号分析】01/说在前面

全课程思维 #mermaid-svg-va4HsweZFSOJpLXa {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-va4HsweZFSOJpLXa .error-icon{fill:#552222;}#mermaid-svg-va4HsweZFSOJpLXa .error-text{fill:#552222;stroke:#552222;…

Bert-as-service 实战

参考&#xff1a;bert-as-service 详细使用指南写给初学者-CSDN博客 GitHub - ymcui/Chinese-BERT-wwm: Pre-Training with Whole Word Masking for Chinese BERT&#xff08;中文BERT-wwm系列模型&#xff09; 下载&#xff1a;https://storage.googleapis.com/bert_models/…

使用Django的admin功能管理数据_vscode

之前的文章 项目 hello_django, app名 hello&#xff0c;已有的model LogMessage&#xff1a; https://blog.csdn.net/weixin_44741835/article/details/136202771?spm1001.2014.3001.5502 参考得到电子书&#xff1a;第八章。 https://www.dedao.cn/ebook/reader?idrEQKv6…

linux系统-----------搭建LNMP 架构

PHP(Hypertext Preprocessor 超文本预处理器)是通用服务器端脚本编程语言&#xff0c;主要用于web开发实现动态web页面&#xff0c;也是最早实现将脚本嵌入HTML源码文档中的服务器端脚本语言之一。同时&#xff0c;php还提供了一个命令行接口&#xff0c;因此&#xff0c;其也可…