Lambda 函数的滚动部署 - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Lambda 函数的滚动部署

使用滚动部署来控制推出 Lambda 函数新版本相关风险。在滚动部署中,系统会自动部署函数的新版本,并逐步向新版本发送数量不断增加的流量。您可以配置的参数包括流量和增长率。

您可以使用和配置滚动部Amazon CodeDeploy署Amazon SAM。 CodeDeploy 是一项自动将应用程序部署到亚马逊计算平台(例如 Amazon EC2 和Amazon Lambda)的服务。有关更多信息,请参阅什么是 CodeDeploy? 。通过使用 CodeDeploy 部署您的 Lambda 函数,您可以轻松监控部署状态,并在检测到任何问题时启动回滚。

Amazon SAM 是一个开源框架,用于构建无服务器应用程序。您可以创建 Amazon SAM 模板(以 YAML 格式),以便指定滚动部署所需的组件的配置。Amazon SAM 使用模板来创建和配置组件。有关更多信息,请参阅什么是 Amazon SAM?

在滚动部署中,Amazon SAM 会执行以下任务:

  • 它会配置您的 Lambda 函数并创建别名。

    别名路由配置是实施滚动部署的基础功能。

  • 它会创建 CodeDeploy 应用程序和部署组。

    部署组可管理滚动部署和回滚(如果需要)。

  • 它会检测您何时创建 Lambda 函数的新版本。

  • 它 CodeDeploy 会触发开始部署新版本。

示例 Amazon SAM Lambda 模板

下面的示例演示了用于简单滚动部署的 Amazon SAM 模板

AWSTemplateFormatVersion : '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: A sample SAM template for deploying Lambda functions. Resources: # Details about the myDateTimeFunction Lambda function myDateTimeFunction: Type: AWS::Serverless::Function Properties: Handler: myDateTimeFunction.handler Runtime: nodejs18.x # Creates an alias named "live" for the function, and automatically publishes when you update the function. AutoPublishAlias: live DeploymentPreference: # Specifies the deployment configuration Type: Linear10PercentEvery2Minutes

此模板定义一个名为 myDateTimeFunction 的 Lambda 函数,其中包含以下属性。

AutoPublishAlias

AutoPublishAlias 属性创建一个名为 live 的别名。此外,Amazon SAM 框架会自动检测您何时为函数保存新代码。然后,框架发布新的函数版本并更新 live 别名以便指向新版本。

DeploymentPreference

DeploymentPreference属性决定了 CodeDeploy 应用程序将流量从 Lambda 函数的原始版本转移到新版本的速率。Linear10PercentEvery2Minutes 值每两分钟将额外 10% 的流量转移到新版本。

有关预定义部署配置的列表,请参阅部署配置

有关如何使用 Lambda 函数的详细教程,请参阅 CodeDeploy 使用部署更新后的 Lambda 函数。 CodeDeploy