AWS CodeDeploy Blue/Green Deployment: Scripting Hooks for Run Order | Exam DVA-C01

Which Events Can Be Scripted in AppSpec File Hooks? | AWS Certified Developer - Associate Exam

Prev Question Next Question

Question

You are using AWS CodeDeploy for upgrading a web application on an EC2 Instance using blue/green deployment.

DevOps Lead is concerned about scripting in each of the hooks section in an AppSpec file.

Which of the following events can be scripted while creating run order of hooks in a blue/green deployment?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Correct Answer - C.

While creating events hooks for Blue/Green Deployment, the following events can have scripted files.

ApplicationStop.

BeforeInstall.

AfterInstall.

ApplicationStart.

ValidateService.

BeforeAllowTraffic.

AfterAllowTraffic.

BeforeBlockTraffic.

AfterBlockTraffic.

Options A, B & D are incorrect as DownloadBundle, BlockTraffic & AllowTraffic cannot be scripted.

For more information on Run Order of Hooks for Blue/Green Deployment, refer to the following URL,

https://docs.amazonaws.cn/en_us/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html

Sure, I'd be happy to help!

When using AWS CodeDeploy for blue/green deployment, you can use an AppSpec file to define the deployment process, including the order in which hooks are executed. Hooks are scripts that are run at specific stages of the deployment process, and they allow you to perform custom actions, such as stopping or starting services, performing database migrations, or updating configuration files.

In a blue/green deployment, there are four stages in the deployment process where hooks can be run:

  1. BeforeBlockTraffic: This stage is executed before traffic is routed to the new version of the application. Hooks in this stage are typically used to perform tasks that need to be done before the new version is made live, such as running database migrations or updating configuration files.

  2. AfterBlockTraffic: This stage is executed after traffic has been routed to the new version of the application, but before the old version is terminated. Hooks in this stage are typically used to perform tasks that need to be done while the new version is running alongside the old version, such as running integration tests.

  3. BeforeAllowTraffic: This stage is executed before the old version of the application is terminated. Hooks in this stage are typically used to perform tasks that need to be done before the old version is shut down, such as running cleanup scripts or collecting performance metrics.

  4. AfterAllowTraffic: This stage is executed after the old version of the application has been terminated. Hooks in this stage are typically used to perform tasks that need to be done after the old version is shut down, such as sending notifications or logging deployment information.

Now, let's take a look at the four events listed in the question and see which stages they correspond to:

A. DownloadBundle: This event is not a hook, but rather a built-in event that occurs when CodeDeploy downloads the application bundle from the source location. It does not correspond to any of the four stages in the deployment process.

B. BlockTraffic: This event corresponds to the BeforeBlockTraffic stage. Hooks in this stage are run before traffic is routed to the new version of the application.

C. ApplicationStart: This event is not a hook, but rather a built-in event that occurs when the new version of the application is started. It does not correspond to any of the four stages in the deployment process.

D. AllowTraffic: This event corresponds to the BeforeAllowTraffic stage. Hooks in this stage are run before the old version of the application is terminated.

Therefore, the correct answer to the question is B. BlockTraffic and D. AllowTraffic. These are the two stages in the deployment process where hooks can be scripted in a blue/green deployment.