本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 3:部署更新的 Lambda 函数
在本步骤中,您将使用更新的 myDateTimeFunction.js
,以更新并启动 Lambda 函数的部署。您可以在 CodeDeploy 或 Amazon Lambda 控制台中监控部署进度。
Amazon SAM 模板中的这一AutoPublishAlias: live
行会使您的基础架构检测到使用live
别名的函数的更新。函数的更新会触发部署 CodeDeploy ,从而将生产流量从函数的原始版本转移到更新的版本。
sam package 和 sam deploy 命令用于更新和触发 Lambda 函数的部署。您已在 Package 将 Amazon SAM应用程序打包 和 部署 Amazon SAM应用程序 中执行这些命令。
部署更新的 Lambda 函数
-
在
SAM-Tutorial
目录中,运行以下命令。sam package \ --template-file template.yml \ --output-template-file package.yml \ --s3-bucket
amzn-s3-demo-bucket
这会创建一组新的构件,这些构件引用您的 S3 存储桶中更新的 Lambda 函数。
-
在
SAM-Tutorial
目录中,运行以下命令。sam deploy \ --template-file package.yml \ --stack-name my-date-time-app \ --capabilities CAPABILITY_IAM
由于堆栈名称仍为
my-date-time-app
,因此可以 Amazon CloudFormation 识别这是堆栈更新。要查看更新的堆栈,请返回 Amazon CloudFormation 控制台,然后从导航窗格中选择 Stacks。
(可选)用于在部署期间查看流量(CodeDeploy 控制台)
打开 CodeDeploy 控制台,网址为https://console.aws.amazon.com/codedeploy/
。 -
在导航窗格中,展开 “应用程序”,然后选择您的 my-date-time-app-ServerlessDeploymentApplication 应用程序。
-
在 Deployment groups(部署组)中,选择应用程序的部署组。其状态应为 In progress(正在进行)。
-
在 Deployment group history(部署组历史记录)中,选择正在进行中的部署。
此页面上的 Traffic shifting(流量转移)进度条以及 Original(原始)和 Replacement(替换)框中的百分比显示了其进度。
(可选)在部署期间查看流量(Lambda 控制台)
打开 Amazon Lambda 控制台,网址为https://console.aws.amazon.com/lambda/
。 -
从导航窗格中,选择
my-date-time-app-myDateTimeFunction
函数。在控制台中,其名称包含一个标识符,因此看起来类似my-date-time-app-myDateTimeFunction-123456ABCDEF
。 -
依次选择别名和 live。
原始函数版本(版本 1)和更新的函数版本(版本 2)旁边的权重,显示了在加载此 Amazon Lambda 控制台页面时提供给每个版本的流量。该页面不会随时间更新权重。如果每隔一分钟刷新一次页面,则版本 1 的权重降低 10%,版本 2 的权重增加 10%,直到版本 2 的权重达到 100%。