Q26 — AWS DOP-C02 第2章
第 26/100 题 | ← 返回第2章
一家公司开发了一个AWS Lambda函数,难于处理通活API接收的订单。该公司正在使难AWS CodeDeploy范赛署Lambda功能,游为 CI/CD管道的最后一个阶克。 一会DevOps工程师注闻到,在赛署后的吧秒钟内,订购API名出现须歇性故障。经活一些调查后,DevOps工程师即为失败是由于在调 难Lambda函数之前数据库更大顶响南全卖播。 DevOps工程师应该如何段服这一点?
- A. 将BeforeAllowTrac挂钩添加到AppSpec文件中,该文件测试并等待任何必要的数据库更改,然后流量才能流向新版本的Lambda 函数。 ✓
- B. 在AppSpec文件中添加AfterAllowTrac挂钩,强制流量在允许新版本的Lambda函数响应之前等待任何未决的数据库更改。
- C. 在AppSpec文件中添加一个BeforeInstall挂钩,该挂钩在部署Lambda函数的新版本之前测试并等待任何必要的数据库更改。
- D. 向AppSpec文件添加一个ValidateService挂钩,该挂钩检查传入的流量,并在相关服务(如数据库)尚未就绪时拒绝有效负载。
正确答案: A. 将BeforeAllowTrac挂钩添加到AppSpec文件中,该文件测试并等待任何必要的数据库更改,然后流量才能流向新版本的Lambda 函数。
解析
AWS CodeDeploy在部署Lambda函数时使用AppSpec文件定义部署生命周期钩子。根据AWS文档,CodeDeploy的BeforeAllowTraffic钩子用于在流量切换到新版本之前执行脚本或测试,确保新版本就绪。题目中数据库变更未完成导致故障,需要在流量切换前等待变更传播。选项A的BeforeAllowTraffic钩子在此阶段检查数据库状态,符合AWS推荐的最佳实践。其他选项的钩子阶段(AfterAllowTraffic、BeforeInstall、ValidateService)要么在流量切换后执行,要么不符合CodeDeploy标准钩子的功能定义。AWS CodeDeploy应用规范文件生命周期事件顺序明确BeforeAllowTraffic是切换流量前的最后一个检查点。