简介

什么是AppGallery Connect云函数

云函数是一项Serverless计算服务,提供FaaS(Function as a Service)能力,可以帮助开发者大幅简化应用开发与运维相关事务,降低应用功能的实现门槛,快速构建业务能力。

云函数提供了高效可靠的函数开发与运行框架,替开发者完全解决传统应用开发与运维中的诸多复杂事务(如服务器配置与管理、代码部署、负载均衡、弹性伸缩、高可用保证等),开发者只须聚焦业务逻辑、开发并上传函数代码,即可构建高可用、可伸缩的Serverless应用。

云函数作为Serverless的核心与枢纽,支持连接和扩展周边云服务能力,开发者可以像拼搭积木一样自由便捷地组织各项服务来实现业务逻辑

您将建立什么?

在本次案例中,您将实现一个能够使用AppGallery Connect云函数与客户端进行交互的功能,您需要完成的功能将包含:

在AGC网站上添加实现生肖计算的函数。

在AGC网站上测试新增的函数。

客户端调用新增函数,输入年份并成功得到返回。

你将会学到什么:

如何将方法函数添加为AppGallery Connect的云函数。

如何测试添加的云函数。

如何集成AppGallery Connect云函数的SDK并在本地调用云函数。

您需要什么?

开发环境及技能要求

您需要搭一套完整的微信开发工具开发环境

熟悉JavaScript

参考账号注册认证注册成为开发者

能力接入准备

集成AppGallery Connect云函数,需要完成以下准备工作

1.创建微信小程序工程

2.创建AppGallery Connect应用

在华为AppGallery Connect控制台创建应用。开发者可以先创建一个项目,然后在项目中添加应用。创建应用的过程中开发者需要填写对应应用的名称、包名、分类、语言等信息,创建完成后开发者可以获得应用的基本配置信息。

(1).登录AppGallery Connect网站,输入账号信息进入AppGallery Connect控制台。

(2).在AppGallery Connect控制台页面上,点击"我的项目",进入项目管理页面。

(3).在我的项目管理页面,点击添加项目按钮,输入项目名称,创建项目。

(4).在项目设置页面点击添加应用开始创建我的应用。

(5)在创建应用页面,填写应用名称应用包名平台,设备,应用分类应用、游戏)和语言,请实际情况选择。

(6).应用创建成功后,可在我的项目中查看应用包名和APP ID**ID等信息。

提示:需要通过注册成开发者才能完成集成准备中的操作,否则无法进行接入准备操作。

配置您的开发环境

  1. 登录AppGallery Connect网站,点击"我的项目"。
  2. 在项目列表中选择您需要开通云函数服务的项目。
  3. 在左侧导航栏选择"构建 > 云函数"。
  4. 点击页面右上角"立即开通"。

说明:

如果您此时未设置默认数据处理位置,系统会自动弹出提示框提示您设置默认数据处理位置,具体操作请参见设置默认

集成SDK

在微信小程序项目中,安装云函数JS SDK到项目中,安装完成后添加到package.Json

npm install --save @agconnect/function@1.3.1

配置云函数

创建云函数

1.开通云函数服务后,在云函数界面,点击"+创建云函数"。

2.在创建界面中,完成函数定义。

1)"函数名称"和"描述"栏输入函数名称与描述。

2)"代码输入类型"选择"在线编辑"。

3)"部署信息"中输入部署信息,可使用默认配置。

3.在handler.js文件的代码输入框中输入以下代码。

let myHandler = function(event, context, callback, logger) { var res = new context.HTTPResponse(context.env, { "res-type":"context.env", "faas-content-type":"json", },"application/json", "200"); var year; if (event.body) { var _body = JSON.parse(event.body); year = _body.year; } else { year = event.year; } var body = { result:'' }; body.result = animal(year); res.body = body; context.callback(res); function animal (inputYear) { var resultString; if (!isNumber(inputYear)) { resultString = "input is not a number"; } else { var remainder = inputYear % 12; switch (remainder) { case 0: resultString = "Monkey"; break; case 1: resultString = "Chicken"; break; case 2: resultString = "Dog"; break; case 3: resultString = "Pig"; break; case 4: resultString = "Mouse"; break; case 5: resultString = "Cow"; break; case 6: resultString = "Tiger"; break; case 7: resultString = "Rabbit"; break; case 8: resultString = "Dragon"; break; case 9: resultString = "Snake"; break; case 10: resultString = "Horse"; break; case 11: resultString = "Sheep"; break; default: resultString = "No symbolic Animal"; } } return resultString; } function isNumber (input) { if (parseInt(input).toString == "NaN") { return false; } else { return true; } } }; module.exports.myHandler =myHandler;

测试函数

1.您可以通过两种方式进入函数测试页面。

1)点击函数详情界面右上角的"测试"按钮。

2)在Cloud Functions主界面上左侧导航栏点击"函数",在函数页面点击"测试"页签。

2.选择刚刚创建的函数及其版本,在事件中输入如下代码:

{
"year": 2020
}

3.在执行结果中查看结果,判断是否与如下结果一致:

添加触发器

1.在函数列表中点击函数名称进入函数详情页面。如果是函数别名,则进入函数别名配置页面。

2.点击"配置"页签下的"添加触发器",显示触发器创建界面。

3.在"配置触发器"区域配置"触发器类型"等信息,此处以HTTP触发器类型和POST请求方式为例。

4.完成后点击"添加"并点击"保存"。

5.将"详细信息"中的"触发URL"的后缀保存,作为后续客户端请求时的触发器标识。

界面设置

您可以按照以下UI进行设计:

代码如下:

index.wxml:

<view class="container"><view><form catchsubmit="formSubmit" catchreset="formReset"><text>AGC-function-Demo</text><text>\n</text><text>\n</text><view class="weui-cell__bd" style="margin: 30rpx 0"><input class="weui-input" name="httpTrigger" placeholder="input your HttpTrigger" /></view><view class="weui-cell__bd" style="margin: 30rpx 0"><input class="weui-input" name="body" placeholder="input your Body" /></view><text>\n</text><view class="btn-area"><button style="margin: 30rpx 0" type="primary" formType="submit" data-type="run">run</button></view></form></view><view class="text-box"><text class="text-content">{{functionRes}}</text></view></view>

index.wxss:

/**index.wxss**/.container {padding: 0 0;}.userinfo {color: #aaa;}.userinfo-avatar {overflow: hidden;width: 128rpx;height: 128rpx;margin: 20rpx;border-radius: 50%;}.section_switch {display: flex;align-items: center;justify-content: space-around;}.text-box {margin: 20rpx;}.text-content {word-break: break-all;}

云函数开发

云函数最主要的功能就是在端侧触发云测的函数,首先调用wrap接口通过触发器标识指定需要触发的函数,然后调用call接口将函数的入参传入并触发函数。

formSubmit: function (e) {console.log(e);var _a = e.detail.value, httpTrigger = _a.httpTrigger, body = _a.body;switch (e.detail.target.dataset.type) {case 'run':this.run(httpTrigger, body);break;default:break;}},run: function (httpTrigger, body) {var _this = this;var functionCallable = agconnect.function().wrap(httpTrigger);functionCallable.call(body).then(function (res) {_this.setData({functionRes: JSON.stringify(res.getValue())});});}

在初始化时输入刚刚复制的应用配置信息

    var agConnectConfig = { //应用配置信息 } //初始化agc agconnect.instance().configInstance(agConnectConfig);

打包测试

1.打开微信开发者工具,选择编译。

2. 打开页面后再HttpTrigger中填写之前在创建触发器时获取的触发器标识,再Function Body中添加触发的入参。

3.点击run后查看result。

打印结果显示2022是虎年,说明测试成功

恭喜您

祝贺您,您已经成功地构建了您的第一个应用程序,并学到了:

  • 如何将方法函数添加为AppGallery Connect的云函数。
  • 如何测试添加的云函数。
  • 如何集成AppGallery Connect云函数的SDK并在本地调用云函数。

参考文件

  • 详细的云函数配置开发指南请参见云函数服务开发指南。
  • 云函数的相关API介绍请参见云函数API参考。

欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

【Serverless】云函数微信小程序相关推荐

  1. uniCloud云函数——微信小程序登录凭证校验[code2Session](即:使用 code 换取 openid 和 session_key 等信息)解决方案

    接口文档 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.h ...

  2. 基于腾讯云开发微信小程序(新闻发布及共享平台)上

    基于腾讯云开发微信小程序(新闻发布及共享平台)上 文章目录 传统的微信小程序开发 一.云开发是什么? 二.使用步骤 1.创建云环境 2.云数据库的创建 3.云储存 4.云函数 总结 传统的小程序开发 ...

  3. Free校园小程序 开源发布,一款集合表白墙、失物招领、兼职和闲置二手买卖的云开发微信小程序

    前言 一个集合表白墙.失物招领.兼职和闲置二手买卖的云开发微信小程序 校园服务小程序 拥有 表白墙.失物招领.兼职.闲置物品等功能,无后台,云开发,只需要搭建云数据库即可 开源地址 GitHub开源地 ...

  4. node.js云学堂微信小程序学习系统的设计与实现毕业设计源码011735

    Node.js云学堂微信小程序 摘要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课 ...

  5. MySQL云数据库+微信小程序+Python做项目

    MySQL云数据库+微信小程序+Python做项目 文章目录 MySQL云数据库+微信小程序+Python做项目 云数据库部分 Python连接云数据库 微信小程序连接云数据库 云数据库部分 大学生如 ...

  6. 详细!基于ESP32的智能门禁系统(华为云iot+微信小程序)

    git地址:智能门禁(云IOT+微信小程序) 开关门效果 设备侧 产品创建 创建产品 创建产品,协议类型选择MQTT,数据格式选择JSON,其他参数自定 设备注册 找到所属产品,认证类型选择密钥,单击 ...

  7. 使用牛刀云开发微信小程序(问题集锦)

    前不久,起步科技正式推出牛刀云1.0,我想这也应该是许多WeX5的忠诚追随者(我也算是其中之一吧)期望的结果了.使用牛刀云开发微信小程序,能够实现使用类似于WeX5的所见即所得组件积木搭建方式构建前端 ...

  8. 1秒生成证件照——小米云证件照微信小程序

    我们经常会遇到需要证件照的场合,去照相馆照相麻烦,自己用手机或电脑拍照,修图也麻烦,有没有更简单快捷的方法呢?使用小米云证件照微信小程序可以快速的生成需要的证件照.小米云证件照可以生成一寸.二寸.小一 ...

  9. uni-app 结合云函数开发小程序博客(二):云函数实现登录注册

    我们研发开源了一款基于 Git 进行技术实战教程写作的工具,我们图雀社区的所有教程都是用这款工具写作而成,欢迎 Star 哦 如果你想快速了解如何使用,欢迎阅读我们的 教程文档哦 本文由图雀社区认证作 ...

最新文章

  1. 阿里技术协会(ATA)11月系列精选文集
  2. CentOS 6.2安装
  3. .NET 6 预览版 7 发布--(最后一个预览版)
  4. 跟面试官侃了半小时 MySQL 事务,把原子性、一致性、持久性的实现都讲完了
  5. SQL Server 2008 Mirror
  6. 联发科mtk手机处理器怎么样_【今日短讯】一加概念手机Concept One发布|苹果iPhone 9渲染图出炉|联发科5G处理器天玑800发布...
  7. chrome最新Android版本,谷歌chrome浏览器安卓版下载,谷歌chrome浏览器安卓最新版本下载地址 v70.0.3538.110 - 浏览器家园...
  8. 使用Qemu模拟arm开发板
  9. android 8.0手机无法更新版本,微信8.0安卓机怎么安装更新 安卓微信更新不了8.0解决办法一览...
  10. 洛谷P1725 琪露诺 题解
  11. 英语它在计算机旁边怎么读,计算机的英语怎么读?
  12. 区块链+医疗:隐藏的百亿级市场?
  13. 与“她”的初次相遇——数学建模笔记之赛后分析和总结
  14. 常用的RGB值和颜色对照表
  15. Table '表名' doesn't exist
  16. 技术背景的创业者由于其秉性容易犯三种错误
  17. Windows10系统保留正版系统重装 与 热迁移系统
  18. html5实现定位签到,H5+百度地图实现移动端考勤定位打卡
  19. 逆风飞扬 吴士宏_打工女皇吴士宏:从初中辍学的患癌小护士到微软中国总经理...
  20. 联发科半年报:5G芯片立头功,高端与高通硬刚

热门文章

  1. 移动web-线性渐变
  2. 《JAVA高并发编程详解》-七种单例模式
  3. android(Google公司开发的操作系统)
  4. VR-AR应用如何改变我们的城市生活?
  5. snipaste——一个好用的截图工具
  6. ElasticSearch 之 Linux 安装 ElasticSearch-7.15.2(ELK、IK)
  7. 运营︱如何实现用户增长?
  8. 领域分类的问题_别人的问题领域
  9. dw网页设计期末设计一个网页_《网页设计与制作Dreamweaver》期末考试试题
  10. 第四十二篇:Flink面试方案设计篇