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

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

步骤 3:部署更新的 Lambda 函数

在本步骤中,您将使用更新的 myDateTimeFunction.js,以更新并启动 Lambda 函数的部署。您可以在 CodeDeploy 或Amazon Lambda控制台中监控部署进度。

Amazon SAM 模板中的 AutoPublishAlias: live 行使得基础设施会检测使用 live 别名的函数的更新。函数的更新会触发部署 CodeDeploy ,从而将生产流量从函数的原始版本转移到更新的版本。

sam packagesam deploy 命令用于更新和触发 Lambda 函数的部署。您已在 打包 Amazon SAM 应用程序 部署 Amazon SAM 应用程序 中执行这些命令。

部署更新的 Lambda 函数
  1. SAM-Tutorial 目录中,运行以下命令。

    sam package \ --template-file template.yml \ --output-template-file package.yml \ --s3-bucket your-S3-bucket

    这会创建一组新的构件,这些构件引用您的 S3 存储桶中更新的 Lambda 函数。

  2. 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 控制台)
  1. 打开 CodeDeploy 控制台,网址为 https://console.aws.amazon.com/codedeploy/

  2. 在导航窗格中,展开 “应用程序”,然后选择您的 my-date-time-app-ServerlessDeploymentApplication 应用程序。

  3. Deployment groups(部署组)中,选择应用程序的部署组。其状态应为 In progress(正在进行)

  4. Deployment group history(部署组历史记录)中,选择正在进行中的部署。

    此页面上的 Traffic shifting(流量转移)进度条以及 Original(原始)Replacement(替换)框中的百分比显示了其进度。

(可选)在部署期间查看流量(Lambda 控制台)
  1. 通过 https://console.aws.amazon.com/lambda/ 打开 Amazon Lambda 控制台。

  2. 从导航窗格中,选择 my-date-time-app-myDateTimeFunction 函数。在控制台中,其名称包含一个标识符,因此看起来类似 my-date-time-app-myDateTimeFunction-123456ABCDEF

  3. 依次选择别名live

原始函数版本(版本 1)和更新的函数版本(版本 2)旁边的权重,显示了在加载此 Amazon Lambda 控制台页面时提供给每个版本的流量。该页面不会随时间更新权重。如果每隔一分钟刷新一次页面,则版本 1 的权重降低 10%,版本 2 的权重增加 10%,直到版本 2 的权重达到 100%。