前言:上一次笔者给大家带来了AGC领域的远程配置服务的学习。这次我们再继续深化学习AGC的相关知识。在文章开始之前,再给读者简单介绍一下AGC,以免第一次来的读者不了解。所谓AGC就是AppGallery Connect的简称,为用户的应用进行创意、开发、分发、运营、经营各环节提供一站式服务,说的通俗一点,就是给用户在华为应用市场上架运营应用提供全面的服务。

全部的AGC相关的知识分为两大类,一大类即上架相关,这个可以参考链接:https://developer.huawei.com/consumer/cn/doc/distribution/app/agc-help-overview-0000001100246618。里面提供了像是应用测试、应用发布、应用管理、应用维护等应用市场相关的内容。另一大类则是为开发者提供了各种帮助Kit,这个可以参考链接:https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-introduction-0000001057492641。里面提供了像是云存储、A/B测试、质量分析、华为云等Kit,为开发者提供额外的帮助,辅助开发者更好的完成应用上架、提高应用质量、增加用户粘性等。

由于AGC全部的内容太多了,所以每一次的学习我们尽量讲其中一点,讲的详细一点,当然也会看情况,如果有些章节的内容较少也会包含在一起讲。这一次我们来学习构建服务的云函数的功能。这个功能是一项Serverless计算服务,提供FaaS(Function as a Service)能力,一方面云函数将开发测试的对象聚焦到函数级别,大幅简化应用开发与运维相关的事务,另一方面在应用中集成云函数SDK,便捷操作云数据库、云存储等,提升业务功能构建的便利性。

远程配置服务的主要功能有:1、简化开发与运维,提供了高效可靠的函数开发与运行框架,替开发者完全解决传统应用开发与运维中的诸多复杂事务(如服务器配置与管理、代码部署、负载均衡、弹性伸缩、高可用保证等等),您只需聚焦业务逻辑、开发并上传函数代码,即可构建高可用、可伸缩的Serverless应用。2、扩展周边服务,云函数作为Serverless的核心与枢纽,支持方便连接和扩展周边云服务能力,可以像拼搭积木一样自由便捷地组织各项服务来实现业务逻辑。

云函数服务的工作原理是,使用云函数服务,需要先在AppGallery Connect(简称AGC)上开发能够实现某些业务功能的云函数,并为函数添加触发其运行的触发器,比如在发起HTTP请求时触发运行的HTTP触发器、集成云数据库服务后进行删除或者插入数据操作时触发运行的云数据库触发器等。客户端集成云函数SDK并满足函数触发器的触发条件后,便可以实现云函数的调用,极大地便利了业务功能的构建。

接下来就跟着笔者的脚步来完成一个简单应用的云函数服务。因为此处只是演示用,所以部分内容进行了简化,并且笔者这里只用了Android作为演示,云函数服务还可以支持其他平台,读者可以自行探索。

  1. 集成SDK

1)在AGC网站的我的项目中选择需要启用云函数的应用,点击增长->云函数,进入云函数服务页面,立即开通服务。

2)登录AGC网站,点击我的项目,在项目设置的应用栏下,下载配置文件"agconnect-services.json"。将配置文件复制到应用级根目录下。

3)添加AGC插件,在Android Studio项目级build.gradle文件中添加maven仓地址和HUAWEI agc插件。

4)打开Android Studio应用级build.gradle文件,添加添加agcp插件配置和agc-remoteconfig编译依赖。

5)点击界面上的"Sync Now"链接同步已完成的配置。

  1. 配置云函数。

1)创建云函数,开通云函数服务后,在云函数界面,点击"+创建云函数"。在创建界面中,定义函数,属性信息默认即可。在handler.js文件的代码输入框中输入以下代码。

2)测试函数,点击函数详情界面上面的"测试函数"按钮。在测试参数中添加如下代码,查看执行结果是否正确。

3)添加触发器,点击"配置"页签下的"添加触发器",显示触发器创建界面,在"配置触发器"区域配置"触发器类型"等信息。完成后点击"添加"并点击"保存"。将"详细信息"中的"触发URL"的后缀保存,作为后续客户端请求时的触发器标识。

  1. 界面设计。

1)在页面布局中添加一个textview用来输出结果,一个EditText用来输入年份和一个Button用于获取云函数调用。

2)具体页面代码如下:

  1. 云函数开发。

1)添加是否输入合法的方法。

2)在应用启动的onCreate方法中获取控件实例并设置按钮的点击事件,获取输入框的输入值进行判空,进行合法性校验。

3)初始化云函数服务,生成云函数所需要的事件的map对象。调用云函数SDK中的wrap方法指定触发器,这里的wrap方法中配置的参数,值为在AGC上查询并获取的触发器标识。call方法传入事件的map作为参数,发送请求并使用云函数进行计算,并且添加请求的回调接受云函数的返回结果显示到Textview中。

  1. 打包测试。

1)用手机打开应用,这里笔者使用的是华为AGC提供的云手机调试功能。

打开AGC网站,在我的项目-质量-云调试中,选择一部手机开始测试。

2)将打包的apk上传,我这边已经上传好了,云调试手机会自动安装,没有自动安装可以手机点击安装。

3)点击运行应用程序,查看初始化后的页面。

        

4)在输入框中输入2020,点击"cloudFuntion"按钮,欢迎语的文字内容发生变化,出现了对应年份的生肖。

以上,本次的内容分享,谢谢!

参考原文链接:

https://developer.huawei.com/consumer/cn/codelab/CloudFunctions/index.html#4

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

【AGC】构建服务1-云函数示例的更多相关文章

  1. 如何在 Flutter 中集成华为云函数服务

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

  2. 基于腾讯云Serverless的HTTP服务探活函数

    本文基于 Golang 开发了一款简单易用的拨测云函数,入口函数与腾讯云 Serverless SDK 绑定.与目前腾讯云中默认的拨测函数不同的是, url-tester-func 支持非 200 响 ...

  3. 【AGC】增长服务1-远程配置示例

    ​ [AGC]增长服务1-远程配置示例 前言:上一次笔者给大家带来了AGC领域的性能管理服务的学习.这次我们再继续深化学习AGC的相关知识.在文章开始之前,再给读者简单介绍一下AGC,以免第一次来的读 ...

  4. 构建基于阿里云OSS文件上传服务

    转载请注明来源:http://blog.csdn.net/loongshawn/article/details/50710132 <构建基于阿里云OSS文件上传服务> <构建基于OS ...

  5. 构建Spring Cloud微服务分布式云架构

    大型企业分布式微服务云架构服务组件 实现模块化.微服务化.原子化.灰度发布.持续集成 commonservice zipkinSpring 日志收集工具包,封装了Dapper和log-based追踪以 ...

  6. 华为云函数中使用云数据库的JavaScript SDK基础入门

    背景介绍 使用云数据库Server端的SDK,此处我以华为提供的官方Demo为例,他们的Demo也已经开源放在了GitHub上,大家需要的可以自行下载. https://github.com/AppG ...

  7. protobuf / Consul / 边缘计算 / MEC / CDN / Serverless / GraphQL / 微服务 / 网关 / 云原生 / Serverless (真能造概念啊!!!)

    技术概念层出不穷,学吧!记录下自己多这些概念的理解 protobuf: 数据结构而已,类比XML, JSON consul 解决的只是微服务里的服务注册与发现,健康检查等. 边缘计算:可以理解为是指利 ...

  8. 阿里云函数计算 VSCode 使用,及部署 Docusaurus

    代码: https://github.com/ikuokuo/start-serverless 使用简介 产品页开通服务.使用流程,如下: 新手示例,如下: 创建函数 阿里云提供了如下几种方式创建函数 ...

  9. ServerLess之云函数实践-天气API

    关注我的个人博客,发掘更多的内容 ServerLess之云函数实践-天气API 前言 云计算是大势所趋 Serverless 架构即"⽆服务器"架构,它是一种全新的架构方式,是云计 ...

随机推荐

  1. spring-boot rest controller 使用枚举作为参数,重写反序列化实现任意值转枚举类型

    目录 BaseEnum MyEnum StringToEnumConverterFactory FormatterConfig DTO RestController 参考 BaseEnum packa ...

  2. 详细剖析pyecharts大屏的Page函数配置文件:chart_config.json

    目录 一.问题背景 二.揭开json文件神秘面纱 三.巧用json文件 四.关于Table图表 五.同步讲解视频 5.1 讲解json的视频 5.2 讲解全流程大屏的视频 5.3 讲解全流程大屏的文章 ...

  3. 443. String Compression - LeetCode

    Question 443. String Compression Solution 题目大意:把一个有序数组压缩, 思路:遍历数组 Java实现: public int compress(char[] ...

  4. CentOS7 安装高版本gcc, g++, gfortran等工具

    SCL(Software Collections)是一个CentOS/RHEL Linux平台的软件多版本共存解决方案,为用户提供一种方便.安全地安装和使用应用程序和运行时环境的多个版本的方式. De ...

  5. docker安装nginx,配置SSL

    nginx安装 下载镜像并测试 1.docker pull nginx 2.docker images nginx 查看我们拉取到本地的nginx镜像IMAGE ID 3.首先测试下nginx镜像是否 ...

  6. 面试突击55:delete、drop、truncate有什么区别?

    在 MySQL 中,删除的方法总共有 3 种:delete.truncate.drop,而三者的用法和使用场景又完全不同,接下来我们具体来看. 1.delete detele 可用于删除表的部分或所有 ...

  7. element-ui table组件使用v-if时的问题

    element-ui项目中经常遇到需要使用v-if指令来根据情况动态显示隐藏某些列情况,这时就会出现滚动条样式异常.列错乱.列宽错乱等问题 解决办法:在el-table上添加:key="Ma ...

  8. 高性能 Jsonpath 框架,Snack3 3.2.29 发布

    Snack3,一个高性能的 JsonPath 框架 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计.其下一切数据都以ONode表示,ONode也 ...

  9. 【Redis】集群故障转移

    集群故障转移 节点下线 在集群定时任务clusterCron中,会遍历集群中的节点,对每个节点进行检查,判断节点是否下线.与节点下线相关的状态有两个,分别为CLUSTER_NODE_PFAIL和CLU ...

  10. Node.js精进(5)——HTTP

    HTTP(HyperText Transfer Protocol)即超文本传输协议,是一种获取网络资源(例如图像.HTML文档)的应用层协议,它是互联网数据通信的基础,由请求和响应构成. 在 Node ...