前言:上一次笔者给大家带来了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. Java线程同步操作

    synchronized 作用于对象实例:对给定对象加锁,进入同步代码前要获得给定对象的锁. 作用于实例方法:相当于对当前实例加锁,进入同步代码前要获得当前实例的锁. 作用于静态方法:相当于对当前类加 ...

  2. Ubuntu16.04编译OpenJDK7u40

    下图是OpenJDK6.OpenJDK7.OpenJDK7u和OpenJDK8这几个项目之间的关系: 下面把编译步骤记录下来: 编译环境 Ubuntu 16.04.4 LTS jdk版本 openjd ...

  3. linux篇-Centos7jdk安装

    2.1查看现有JDK #rpm -qa|grep jdk (如果有其他版本的JDK建议卸载) 卸载其他版本的JDK命令 #yum –y remove java-1.6.0 #yum –y remov ...

  4. Windows 程序安装与更新方案: Clowd.Squirrel

    我的Notion Clowd.Squirrel Squirrel.Windows 是一组工具和适用于.Net的库,用于管理 Desktop Windows 应用程序的安装和更新. Squirrel.W ...

  5. 12┃音视频直播系统之 WebRTC 实现1对1直播系统实战

    一.搭建 Web 服务器 前面我们已经实现过,但是没有详细说HTTPS服务 首先需要引入了 express 库,它的功能非常强大,用它来实现 Web 服务器非常方便 同时还需要引入 HTTPS 服务, ...

  6. flask实现python方法转换服务

    一.flask安装 pip install flask 二.flask简介: flask是一个web框架,可以通过提供的装饰器@server.route()将普通函数转换为服务 flask是一个web ...

  7. 当运行npm install 命令的时候带上ignore-scripts,会发生什么?

    摘要:运行npm install 命令的时候带上ignore-scripts, 可以避免一个恶意包里的病毒. 本文分享自华为云社区<运行npm install 命令的时候带上--ignore-s ...

  8. 渗透测试之常用的sql语句

    学习路漫漫,常用的sql语句给我们平常所运用的sql语句相差不多,用句土话讲:百变不离其中 注:网络安全时刻警醒,需要打靶的还需要建立自己的靶场,关注博主在以往博客中分享有多种创建靶场可参考 1.判断 ...

  9. 一个全新的Vue拖拽特性实现:“调整尺寸”部分

    关于拖拽 CabloyJS提供了完备的拖拽特性,可以实现移动和调整尺寸两大类功能,这里对调整尺寸的开发进行阐述 关于移动的开发,请参见:拖拽:移动 演示 开发步骤 下面以模块test-party为例, ...

  10. c++ 超长整数减法 高精度减法

    c++ 超长整数减法 高精度减法 实现思路 和加法类似,设置临时变量记录借位 当对应位数相减得到的结果大于等于0时,该位数字为本身值,否则需要加上借位的10.则\(t=(t+10)%10\) 打卡代码 ...