AWS CodeDeploy
用户指南 (API 版本 2014-10-06)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

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

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

sam packagesam deploy 命令用于更新和触发 Lambda 函数的部署。您已在 打包 AWS SAM 应用程序 部署 AWS 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,AWS CloudFormation 会识别到这是一个堆栈更新。要查看更新的堆栈,可返回 AWS CloudFormation 控制台,然后从导航窗格中,选择 Stacks (堆栈)

(可选)在部署期间查看流量(CodeDeploy 控制台)

  1. 通过 https://console.amazonaws.cn/codedeploy/ 打开 CodeDeploy 控制台。

  2. 在导航窗格中,展开 Applications (应用程序),然后选择 my-date-time-app-ServerlessDeploymentApplication 应用程序。

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

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

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

(可选)在部署期间查看流量(Lambda 控制台)

  1. 通过以下网址打开 AWS Lambda 控制台:https://console.amazonaws.cn/lambda/

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

  3. 依次选择 Qualifiers (限定词)Aliases (别名)live

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