AppGallery Connect云函数(上)

110 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第13天,点击查看活动详情

什么是AppGallery Connect云函数

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

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

运行终端要求

必须为OpenHarmony Api 9及以上版本。

能力接入准备

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

  • 创建AGC应用
  • 创建DevEco Studio工程
  • 添加应用包名

开通服务

1.登录AppGallery Connect,点击“我的项目”。

2.在项目列表中选择您需要开通云函数服务的项目。

3.在左侧导航栏选择“构建 > 云函数”。

4.点击页面右上角“立即开通”。

配置云函数

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

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

  • “函数名称”和“描述”栏输入函数名称与描述。
  • “代码输入类型”选择“在线编辑”。
  • “部署信息”中输入部署信息,可使用默认配置。

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;