前言:上一次笔者给大家带来了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

最新文章

  1. 【2016-11-3】【坚持学习】【Day18】【我认识的ORM】
  2. centos7下 安装mysql
  3. Ros集成开发环境配置
  4. C# 插件式程序开发
  5. java栈与堆
  6. mysql术语解释
  7. 【官方方法】xcode7免证书真机调试
  8. mysql 连接命令 表管理 ,克隆表,临时表,字符串属性,设定语句间的分隔符
  9. MongoDB - The mongo Shell, Configure the mongo Shell
  10. 深入理解Java虚拟机
  11. dialog获取焦点
  12. 使用Delphi声明C++带函数的结构体实战 good
  13. 使用echarts水球图
  14. SpringMvc(4-1)Spring MVC 中的 forward 和 redirect
  15. Hadoop 管理工具HUE配置-初始配置
  16. Linux下的文件操作——基于文件指针的文件操作(缓冲)
  17. (转)怎么实时查看mysql当前连接数
  18. SLAM学习笔记
  19. How to Get the Function Code in R
  20. 常用正则表达式—邮箱(Email)

热门文章

  1. 【Java面试】Redis存在线程安全问题吗?为什么?
  2. 【多线程】线程礼让 Thread.yield()
  3. 一文带你看懂Java中的Lock锁底层AQS到底是如何实现的
  4. static关键字——JavaSE基础
  5. java中的final与可变类型、不可变类型的关系
  6. easy-captcha生成验证码
  7. Elasticsearch学习系列一(部署和配置IK分词器)
  8. service继承baseService后无法注入dao的解决办法
  9. 解开XAML的邪恶面纱
  10. UiPath剪贴板操作的介绍和使用