AWS Certified DevOps Engineer – Professional (DOP-C02) — Question 110
A company has developed an AWS Lambda function that handles orders received through an API. The company is using AWS CodeDeploy to deploy the Lambda function as the final stage of a CI/CD pipeline.
A DevOps engineer has noticed there are intermittent failures of the ordering API for a few seconds after deployment. After some investigation, the DevOps engineer believes the failures are due to database changes not having fully propagated before the Lambda function is invoked.
How should the DevOps engineer overcome this?
Answer options
- A. Add a BeforeAllowTraffic hook to the AppSpec file that tests and waits for any necessary database changes before traffic can flow to the new version of the Lambda function.
- B. Add an AfterAllowTraffic hook to the AppSpec file that forces traffic to wait for any pending database changes before allowing the new version of the Lambda function to respond.
- C. Add a BeforeInstall hook to the AppSpec file that tests and waits for any necessary database changes before deploying the new version of the Lambda function.
- D. Add a ValidateService hook to the AppSpec file that inspects incoming traffic and rejects the payload if dependent services, such as the database, are not yet ready.
Correct answer: A
Explanation
The correct answer is A because the BeforeAllowTraffic hook ensures that any necessary database changes are fully applied before allowing traffic to the new version of the Lambda function, preventing failures. Option B is incorrect as the AfterAllowTraffic hook does not prevent traffic from reaching the function before the database is ready. Option C is not suitable because the BeforeInstall hook occurs before the new version is deployed, not during the traffic phase. Option D, while useful for validation, does not specifically wait for database readiness before allowing traffic.