鸿蒙端云一体化开发--开发云函数--适合小白体制

开发云函数

那什么是云函数?我们将来又怎么去使用这个云函数呢?

答:我们之前要编写一些服务端的业务逻辑代码,那现在,在这种端云一体化的开发模式下,我们是把服务端的业务逻辑代码,通过云函数来实现,简单来说,云函数其实就是用来实现服务端的业务逻辑代码。

那么云函数开发好了之后,我们怎么去使用它呢?

答:要把这个云函数部署到云侧:

部署好以后,我们还得编写端侧的代码,来调用云侧的云函数:

当然,云侧这边云函数如果有返回结果的话,我们需要把这个结果从云侧再返回给端侧:

开发步骤

第一步:新建项目和应用,开通云函数服务(AGC)

首先进入华为的App Gallery Connect界面:

AppGallery Connect (huawei.com)

完成登入操作:

后面对于《AppGallery Connect》简称为AGC.

点击我的项目:

添加项目:

有一个疑问:项目和应用的关系?

答:

应用:就跟我们日常所理解的手机上的APP应用

项目:一个项目中可以包含多个应用,那么我们接下来要开通什么云函数服务、包括以后要学到的云存储、云数据库,他们都是项目级别的,比如说,你为这个项目开通了云函数服务之后,那这个项自下的所有应用都可以使用这个云函数服务,不用为每个应用一一开通,【服务是项目级别的,项目包括多个应用

第二步:开通云函数

寻找开通界面:

在这里注意:这里开通云函数分免费档跟收费档,要求:一个月只要你调用云函数的次数不超过100万次都是免费的

将来数据存储位置在哪里:

第三步:使用端云一体化模板创建应用(DevEco Studio)

进入《项目设置》界面:

并且应用包名必须确保唯一性

在DevEco Studio开发软件中,使用端云一体化模板创建应用:

注意:DevEco Studio软件中创建应用的《Bundle name》它必须跟我们刚才AGC上应用的包名完全一致,不一致那么你的应用是创建不成功的

没登入过,记得登入一下:

Bundle name只要跟AGC那边的包名匹配得上,它就相当于已经把我们本地的这个项目代码跟AGC上那个应用关联起来了

创建后:

对于项目管理进行细说:

查看云函数代码:

对于云函数代码进行刨析:

let myHandler = async function (event, context, callback, logger) {logger.info(event);if (event.httpMethod) {const json = JSON.parse(event.body)callback({code: 0,desc: `success`,debug: event.body,data: `Hello, ${json.name}`});} else {callback({code: 0,desc: `success`,debug: `${JSON.stringify(event)}`,data: `Hello, ${event.body.name}`});}};export { myHandler };

从上可见,其中:

1.event 即为调用云函数的入参,这部分将来由 client 发送
  1.1 注意:不同方式触发的 event 格式会有不同

参见 [event对象-附录-云函数 | 华为开发者联盟 (huawei.com)]
2.context 函数执行上下文

  •   * 包括环境变量
  •   * 包括 PROJECT_CREDENTIAL 凭据信息
  •   * 等等

3.callback 用来返回响应,响应中有哪些 key、value 是自定义的
4.logger 用来记录日志,日志级别有 debug,info,warn 和 error

第四步:编写云函数代码

创建hello云函数文件:

编写代码:

运行代码:

运行代码有两种方式:

第一种:本地测试运行

第二种:部署到云端测试

推荐在AGC云端测试!

* 部署云函数需要在 DevEco Studio 中以华为开发者账号登录
* 本地测试,需要使用华为提供的 node.js 环境

第五步:部署云函数

注意:部署到云测的时候,会把这个cloudfunctions文件下所有的云函数一次性的进行部署

部署前记得看看有没有登入你的华为账号:

在AGC中查看:

第六步:测试云函数

测试成功:

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

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

相关文章

linux安装和使用-第一天

一. 安装linux系统 安装过程:略注意事项: 安装时一定一定一定不要选择有中文的目录包括镜像文件所在的目录,否则会发生各种问题,比如VMware Tools是灰色的.1. 安装ssh工具 (1) 安装命令 # 第一次安装系统需要更新一下apt的源,他维护了软件依赖关系,否则安装不了软件,每次安装…

网络安全教程及案例分析

一、网络安全教程 (一)网络安全基础知识 计算机基础知识:了解计算机的硬件、软件、操作系统和网络结构,有助于我们更好地理解网络安全的概念和技术。这些基础知识为我们提供了对计算机系统的全面认识,从而能够更准确…

【云计算】混合云概述

混合云概述 1.混合云定义2.云混合的形态2.1 公有云之间的混合2.2 私有云之间的混合2.3 公有云和私有云的混合2.4 公有云和传统IT的混合 3.小结 混合云 是近几年来被经常提及的一个新的云架构体系,根据 NIST(美国国家标准与技术研究院)的定义&…

MT3020 任务分配

思路:利用二分找到某个时间是满足“k个人可以完成” ,并且时间最小。 因为尽量让后面的人做任务,所以从后往前排任务(倒着分配)。从后往前遍历任务,如果此人加上这个任务超出之前求得的时间,就…

Csapp整数浮点数操作实验(精讲)

a. int conditional(int x, int y, int z) 功能&#xff1a;实现与三目运算符表达式 x ? y : z 具有等价功能的函数合法的运算符&#xff1a;! ~ & ^ | << >>可使用的运算符数&#xff1a;16难度&#xff1a;4寻找一种转换&#xff0c;使得当x非0时转变为0x…

快速入门深度学习9.1(用时20min)——GRU

速通《动手学深度学习》9.1 写在最前面九、现代循环神经网络9.1 门控循环单元&#xff08;GRU&#xff09;9.1.1. 门控隐状态9.1.1.1. 重置门和更新门9.1.1.2. 候选隐状态9.1.1.3. 隐状态 9.1.3 API简洁实现小结 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 20…

空指针与野指针的辨析

空指针 空指针不指向任何实际的对象或者函数&#xff0c;反过来&#xff0c;任何的对象或者函数也不可能是空指针。 在程序中得到空指针的办法就是使用预定义的NULL&#xff0c; int *ip NULL; 校验一个指针是否为空指针可以用 if (ip NULL) NULL是标准规定的宏定义&am…

h5 笔记4 表格与表单

<table></table>设置表格&#xff1b; <tr></tr>设置行数&#xff1b; <td></td>设置列数&#xff1b; <caption></caption>设置表格标题&#xff1b; <th></th>设置列标题。 直列&#xff1a;column&#xf…

独孤思维:完美的赚钱人设,一定是假的

01 做个人ip&#xff0c;设立自己的人设。 不要完美无缺。 完美100%是假的。 都是人&#xff0c;谁没个缺点。 不要把自己架得太高&#xff0c;搞得事事完美。 这是不合理的。 粉丝看了&#xff0c;会觉得很假。 一定要真实。 哪怕你有这样的缺点&#xff0c;那样的毛…

Pytest精通指南(09)利用Fixture给函数设置别名

文章目录 前言测试用例默认显示传递一个参数传递多个参数 利用Fixture修改测试函数名称传递一个参数传递多个参数 验证ids和params长度不一致修改Fixture函数名称 前言 在 pytest 中&#xff0c;pytest.fixture 装饰器用于定义可以在多个测试函数中重用的设置和清理代码。 name…

android gradle 配置远程仓库

build.gradle buildscript { ext.kotlin_version "1.6.0" // 使用适合你项目的Kotlin版本 repositories { maven { url http://maven.aliyun.com/nexus/content/groups/public/ } maven { url http://maven.aliyun.com/nexus/content/repos…

虚拟机下CentOS7开启SSH连接

虚拟机下CentOS7开启SSH连接 自己在VMware中装了CentOS 6.3&#xff0c;然后主机&#xff08;或者说xshell&#xff09;与里面的虚拟机连不通&#xff0c;刚学习&#xff0c;一头雾水&#xff0c;查了半天&#xff0c;也不知道怎么弄。 在虚拟机&#xff08;Vmware Workstatio…

OSCP靶场--PayDay

OSCP靶场–PayDay 考点(公共exp文件上传密码复用sudo -l all提权) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap -sV -sC 192.168.153.39 -p- -Pn --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-04-13 04:52 EDT Nmap scan report for 192…

C语言 | 字符函数和字符串函数

目录&#xff1a; 1. 字符分类函数 2. 字符转换函数 3. strlen的使用和模拟实现 4. strcpy的使用和模拟实现 5. strcat的使用和模拟实现 6. strcmp的使用和模拟实现 7. strncpy函数的使用 8. strncat函数的使用 9. strncmp函数的使用 10. strstr的使用 11. strtok函…

智慧公厕:城市管理的一大创新

公共厕所作为城市基础设施的重要组成部分&#xff0c;不仅仅是提供方便的厕所&#xff0c;更是城市管理的一项创新。随着科技的发展&#xff0c;智慧公厕应运而生。通过物联网、大数据、云计算、网络通信、自动化控制等技术&#xff0c;智慧公厕实现了对公厕内部人体活动状态、…

【算法刷题day22】Leetcode:235. 二叉搜索树的最近公共祖先、701. 二叉搜索树中的插入操作、450. 删除二叉搜索树中的节点

文章目录 Leetcode 235. 二叉搜索树的最近公共祖先解题思路代码总结 Leetcode 701. 二叉搜索树中的插入操作解题思路代码总结 Leetcode 450. 删除二叉搜索树中的节点解题思路代码总结 草稿图网站 java的Deque Leetcode 235. 二叉搜索树的最近公共祖先 题目&#xff1a;235. 二…

JD抓包 | 安卓app抓包

去年11月份左右搞过一次安卓抓包, 搞了很久试了很多方法, 才弄好. 时隔半年, 安卓抓包依然是令我头疼的问题 这次简单记录一下过程(细节太多我也说不清) JD的有效信息接口通常是以下这样的, 其他的接口并没有返回太多"有用"的信息 https://api.m.jd.com/client.act…

Composite 组合

意图 将对象组合成树形结构以表示“部分-整体”的层级结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 结构 其中&#xff1a; Component为组合中的对象声明接口&#xff1b;在适当情况下实现所有类共有接口的默认行为&#xff1b;声明一个接口用于访问和管…

Java基础(二)-- 面向对象

文章目录 第二章、面向对象一、类和对象1、基本概念1&#xff09;什么是对象2&#xff09;什么是面向对象3&#xff09;什么是类4&#xff09;什么是对象的属性和方法5&#xff09;类和对象的关系 2、单一职责原则3、对象实例化1&#xff09;Java内存管理之堆和栈 4、构造方法5…

LeetCode题练习与总结:有效数字--65

一、题目描述 有效数字&#xff08;按顺序&#xff09;可以分成以下几个部分&#xff1a; 1. 一个 小数 或者 整数 2. &#xff08;可选&#xff09;一个 e 或 E &#xff0c;后面跟着一个 整数 小数&#xff08;按顺序&#xff09;可以分成以下几个部分&#xff1a; 1. &…