AWS Certified DevOps Engineer – Professional — Question 14
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 begins executing.
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 traffic is only directed to the new version of the Lambda function once all necessary database changes are confirmed to be in place, preventing failures. Option B is incorrect as it attempts to control traffic after it has already been allowed, which does not address the initial problem. Option C also fails because it preempts the deployment rather than managing the traffic flow during the deployment. Option D would reject incoming traffic but does not ensure that the changes are ready before allowing traffic, which is not a proactive approach to avoiding failures.