步骤 4:查看部署结果
在本步骤中,您将查看部署的结果。如果部署成功,即可确认更新的 Lambda 函数收到了生产流量。如果部署失败,可以使用 CloudWatch Logs 在部署生命周期挂钩期间运行的 Lambda 函数中查看验证测试的输出。
测试部署的函数
sam deploy 命令更新 my-date-time-app-myDateTimeFunction Lambda 函数。函数版本更新为 2 并添加到 live 别名。
在 Lambda 控制台中查看更新
通过 https://console.aws.amazon.com/lambda/ 打开 Amazon Lambda 控制台。
-
从导航窗格中,选择
my-date-time-app-myDateTimeFunction函数。在控制台中,其名称包含一个标识符,因此看起来类似my-date-time-app-myDateTimeFunction-123456ABCDEF。 -
依次选择 Qualifiers(限定词)和 Aliases(别名)。部署完成后(大约 10 分钟),对于
live别名,您应当看到 Version: 2(版本:2)。
-
在 Function code(函数代码)中,查看函数的源代码。此时应显示您的更改。
-
(可选)您可以使用 步骤 2:更新 Lambda 函数 中的测试说明测试更新的函数。采用以下有效负载创建新的测试事件,然后确认结果中是否包含当前的小时、分钟和秒。
{ "option": "time" }要使用 Amazon CLI 测试更新的函数,可运行以下命令,然后打开
out.txt以确认结果中是否包含当前的小时、分钟和秒。aws lambda invoke --functionyour-function-arn--payload "{\"option\": \"time\"}" out.txt注意
如果您在部署完成之前使用 Amazon 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 挂钩事件
通过 https://console.aws.amazon.com/cloudwatch/ 打开 CloudWatch 控制台。
-
从导航窗格中,选择 Logs(日志)。
-
从日志组列表中,选择 /aws/lambda/CodeDeployHook_beforeAllowTraffic 或 /aws/lambda/CodeDeployHook_afterAllowTraffic。
-
选择日志流。您应当只看到一个。
-
展开事件以查看其详细信息。