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

步骤 4:查看部署结果

在本步骤中,您将查看部署的结果。如果部署成功,即可确认更新的 Lambda 函数收到了生产流量。如果部署失败,可以使用 CloudWatch Logs 在部署生命周期挂钩期间运行的 Lambda 函数中查看验证测试的输出。

测试部署的函数

sam deploy 命令更新 my-date-time-app-myDateTimeFunction Lambda 函数。函数版本更新为 2 并添加到 live 别名。

在 Lambda 控制台中查看更新

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

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

  3. 依次选择 Qualifiers (限定词)Aliases (别名)。部署完成后(大约 10 分钟),对于 live 别名,您应当看到 Version: 2 (版本:2)

  4. Function code (函数代码) 中,查看函数的源代码。此时应显示您的更改。

  5. (可选)您可以使用 步骤 2:更新 Lambda 函数 中的测试说明测试更新的函数。采用以下有效负载创建新的测试事件,然后确认结果中是否包含当前的小时、分钟和秒。

    { "option": "time" }

    要使用 AWS CLI 测试更新的函数,可运行以下命令,然后打开 out.txt 以确认结果中是否包含当前的小时、分钟和秒。

    aws lambda invoke --function your-function-arn --payload "{\"option\": \"time\"}" out.txt

    注意

    如果您在部署完成之前使用 AWS CLI 测试函数,您可能会收到意外结果。这是因为 CodeDeploy 会每隔一分钟将 10% 的流量转移到更新版本。在部署过程中,部分流量仍然指向原始版本,因此 aws lambda invoke 可能使用原始版本。10 分钟后,部署完成,所有流量均指向函数的新版本。

在 CloudWatch Logs 中查看挂钩事件

BeforeAllowTraffic 挂钩过程中,CodeDeploy 执行 CodeDeployHook_beforeAllowTraffic Lambda 函数。在 AfterAllowTraffic 挂钩过程中,CodeDeploy 执行 CodeDeployHook_afterAllowTraffic Lambda 函数。每个函数运行验证测试,使用新的 time 参数调用更新的函数版本。如果 Lambda 函数更新成功,则 time 选项不会导致错误,并且验证成功。如果函数未更新,则无法识别的参数会导致错误,并且验证失败。这些验证测试仅供演示之用。您自行编写测试来验证部署。您可以使用 CloudWatch Logs 控制台查看验证测试。

查看 CodeDeploy 挂钩事件

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 从导航窗格中,选择 Logs (日志)

  3. 从日志组列表中,选择 /aws/lambda/CodeDeployHook_beforeAllowTraffic/aws/lambda/CodeDeployHook_afterAllowTraffic

  4. 选择日志流。您应当只看到一个。

  5. 展开事件以查看其详细信息。