本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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