Serverless 团队协作:通过阿里 CloudFormation 轻松部署函数应用

阅读时长 7 分钟读完

Serverless 团队协作:通过阿里 CloudFormation 轻松部署函数应用

Serverless 架构随着云计算的普及越来越受欢迎,相比传统的服务器架构,Serverless 架构可以让开发者从基础设施管理中解放出来,专注于业务逻辑的实现。在 Serverless 架构中,我们可以将所有的代码打包成一个个函数,上传到云函数平台,引入事件触发机制来触发函数执行逻辑,这种按需执行的方式更加灵活高效。与此同时,Serverless 也有着团队协作的需求,如何在多人协作的开发中,更加方便快捷地部署和管理 Serverless 应用呢?本文将介绍如何通过阿里 CloudFormation 的 Serverless 应用管理方式,轻松部署和管理函数应用。

一、简介

CloudFormation 是云原生的自动化服务,它可以轻松地为您的应用程序和基础架构生成和管理资源堆栈。资源是 AWS 中的任何服务或功能, 如 Amazon EC2 实例、Amazon RDS 数据库、API 网关、Lambda 函数、Amazon S3 存储桶等等。CloudFormation 使您可以使用 JSON 或 YAML 模板来描述要包含在要创建的资源堆栈中的所有资源及其属性。

跨多个 AWS 账号和区域工作的分布式应用程序通常由数百个资源组成。手动设置和管理这些部署变得异常棘手,这时使用 CloudFormation 完成自动化即可。

二、 准备工作

  1. 了解 CloudFormation

作为初学者,可以先去阅读 CloudFormation 和 Serverless Application Model 的使用文档。当然需要先有一定的 AWS 基础。

  1. 了解函数应用

函数应用是 Serverless 应用组成的最基本单元,理解函数应用的概念可以让我们更好地使用 CloudFormation 管理 Serverless 应用。阿里云函数计算(Function Compute)是基于函数计算能力的,这里我们以阿里云函数计算为例。可以先阅读阿里云函数计算文档主页。

三、 架构设计

  1. 建立项目

首先,我们要在阿里云函数计算上创建一个函数应用,用于存储我们需要使用 CloudFormation 管理的函数应用。我们以一个使用 Expressjs 开发的 Web 应用为例。我们可以创建一个包含如下文件的项目:

-- -------------------- ---- -------
-------
-   ------
-   ------------    
-   --------------  
--------------
-   -   ------------------
----------
-   -------------
----------
-   -   --------
  1. 编写应用代码

我们以 Hello World 为例,这里我们需要创建一个 /hello 接口,访问此接口后,返回 "Hello World!" 的文本。详见如下代码:

// app.js

//controller/helloController.js

在这个代码中,我们创建了一个基于 Expressjs 的 Web 应用,并在 /hello 路由上预处理分发给 helloController 进行处理。在 helloController 中,返回了 "Hello World!" 的文本。

  1. 编写 Serverless 配置文件

这里我们使用 CloudFormation 基于 Serverless Application Model 标准编写一个与之对应的配置文件 serverless.yml

-- -------------------- ---- -------
------------------------- ------------
---------- -------------------------------
----------
  --------------
    ------------ -------- ----- -------- ------- ----- ----- --------
    ----- -----------------------------
    -----------
      ------------ -------- ----- -------- ------- --------
      ------- -----------
      --------------- ----
      ----------
        ------ -----------------
        -----------
          - -----------------
      ---------
        --------- -----
        --------- ---------------------------
      ---------
        ----- -----------------------
        -------- -----------
        -------- --------
        ----------- ---
        -------- -
        -------- --
        ---------------------- --
        -------------------- -
        ------------------------------------------ -------
        -------
          - -----
              ----- -------------
              ------- ---
              --------- ---------

在这个配置文件中,我们声明了 helloWorldFun 资源,它是一个基于 Serverless Application Model 标准的函数应用。在 function 属性里,我们指定了函数应用的一些参数:函数名称、代码位置、运行环境、函数运行时间、执行的事件驱动模式等等。这些参数都是通过 CloudFormation 提供的资源声明方式来进行配置管理的。

四、 运行并验证

  1. 运行项目

可以使用如下命令在本地启动函数应用:

这里启动后,应用就可以在地址 http://localhost:9000/hello 访问了。

  1. 上传并部署项目

接下来,我们通过 CloudFormation CLI 工具来部署项目。首先,安装 CLI 工具:

然后创建配置文件和部署项目:

fun deploy 命令执行后,阿里云函数计算平台会自动创建一个函数应用,上传当前目录的代码,然后构建并部署到函数计算平台上。

  1. 验证部署结果

在函数应用启动成功后,我们可以通过运行 fun deploy 命令查看应用的信息。也可以在应用中心或函数计算平台上查看。

在通过应用的访问地址 http://$service_name.$region_name.fc.aliyuncs.com/2016-08-15/proxy/myserverless-helloworld/hello/{{name}},访问 /hello 接口来测试我们的函数应用。

五、 总结

通过使用 CloudFormation 来管理 Serverless 应用,我们可以在开发过程中更加便捷地部署和管理服务,提高开发效率和代码可维护性。在多人协作开发中,更可以有效地整合资源和管理配置,提高团队沟通和协作效率。在实际开发过程中,在了解 CloudFormation 和 Serverless Application Model 的基础上,可以根据实际需求灵活配置函数应用,提升开发效率。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64fec67995b1f8cacdd7307c

纠错
反馈