步骤 3:部署更新的 Lambda 函数
在本步骤中,您将使用更新的 myDateTimeFunction.js,以更新并启动 Lambda 函数的部署。您可以在 CodeDeploy 或 Amazon Lambda 控制台中监控部署进度。
AutoPublishAlias: live 模板中的 Amazon SAM 行使得基础设施会检测使用 live 别名的函数的更新。函数的更新会通过 CodeDeploy 触发部署,从而将生产流量从函数的原始版本转移到更新版本。
sam package 和 sam deploy 命令用于更新和触发 Lambda 函数的部署。您已在 打包 Amazon SAM 应用程序 和 部署 Amazon SAM 应用程序 中执行这些命令。
部署更新的 Lambda 函数
-
在
SAM-Tutorial目录中,运行以下命令。sam package \ --template-file template.yml \ --output-template-file package.yml \ --s3-bucketamzn-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 控制台)
从 https://console.aws.amazon.com/codedeploy/
打开 CodeDeploy 控制台。 -
在导航窗格中,展开 Applications(应用程序),然后选择 my-date-time-app-ServerlessDeploymentApplication 应用程序。
-
在 Deployment groups(部署组)中,选择应用程序的部署组。其状态应为 In progress(正在进行)。
-
在 Deployment group history(部署组历史记录)中,选择正在进行中的部署。
此页面上的 Traffic shifting(流量转移)进度条以及 Original(原始)和 Replacement(替换)框中的百分比显示了其进度。
(可选)在部署期间查看流量(Lambda 控制台)
通过 https://console.aws.amazon.com/lambda/
打开 Amazon Lambda 控制台。 -
从导航窗格中,选择
my-date-time-app-myDateTimeFunction函数。在控制台中,其名称包含一个标识符,因此看起来类似my-date-time-app-myDateTimeFunction-123456ABCDEF。 -
依次选择别名和 live。
原始函数版本(版本 1)和更新的函数版本(版本 2)旁边的权重,显示了在加载此 Amazon Lambda 控制台页面时提供给每个版本的流量。该页面不会随时间更新权重。如果每隔一分钟刷新一次页面,则版本 1 的权重降低 10%,版本 2 的权重增加 10%,直到版本 2 的权重达到 100%。