AWS Lambda
开发人员指南

部署基于 Lambda 的应用程序

基于 Lambda 的应用程序 (也称作无服务器应用程序) 由通过事件触发的函数组成。典型的无服务器应用程序包含一个或多个通过事件 (如向 Amazon S3 上传对象、Amazon SNS 通知和 API 操作) 触发的函数。这些函数既可独立运行,也可利用其他资源 (如 DynamoDB 表或 Amazon S3 存储桶)。最基本的无服务器应用程序仅包含一个函数。

AWS Lambda 提供您可以使用的 API 操作,以便以 ZIP 文件格式提供部署程序包来创建和更新 Lambda 函数。然而,本机制可能不方便用于自动执行函数部署步骤,或者协调事件源和下游资源等其他无服务器应用程序元素之间的部署和更新。例如,为了部署 Amazon SNS 触发器,您需要更新函数、Amazon SNS 主题、函数与主题之间的映射,以及 DynamoDB 表等函数所需的任何其他下游资源。

您可以通过以下方式部署您的无服务器应用程序:

  • AWS CLI - 使用 aws cloudformation deploy 命令。有关更多信息,请参阅部署,这部分内容包含在有关创建无服务器应用程序的教程中。有关更多信息,请参阅 创建您自己的无服务器应用程序。Lambda 还提供了其他 AWS CLI 操作,供您用于部署您的无服务器应用程序:

  • AWS CloudFormation - 您可以使用 AWS CloudFormation 指定、部署和配置无服务器应用程序。AWS CloudFormation 是一项服务,可帮助您对 AWS 资源进行建模和设置,以便能花较少的时间管理这些资源,而将更多的时间花在运行于 AWS 中的应用程序上。您可以创建一个描述您所需的所有 AWS 资源 (如 Lambda 函数或 DynamoDB 表) 的模板,并且 AWS CloudFormation 将负责为您预配和配置这些资源。您无需单独创建和配置 AWS 资源,且无需了解 what—AWS CloudFormation 处理所有这些工作时所依赖的内容。有关更多信息,请参阅AWS CloudFormation 用户指南 中的 AWS CloudFormation 概念

  • AWS SAM - AWS SAM 支持一些特殊资源类型,可简化如何表达无服务器应用程序的函数、API、映射和 DynamoDB 表;还支持这些服务的一些功能,例如环境变量。这些资源的 AWS CloudFormation 描述符合 AWS 无服务器应用程序模型。为了部署您的应用程序,只需在 AWS CloudFormation 模板文件 (在 JSON 或 YAML 中写入) 中指定您想要作为应用程序一部分的资源及其相关权限策略,打包您的部署项目,然后部署该模板。有关更多信息,请参阅 使用 AWS 无服务器应用程序模型 (AWS SAM)

在您了解 AWS 无服务器应用程序模型 (AWS SAM) 之前,我们建议您阅读以下部分,了解 Lambda 函数版本控制、别名以及如何将流量转移到函数修订,这是无服务器应用程序开发的关键部分。有关更多信息,请参阅 AWS Lambda 函数版本控制和别名