AWS Certified DevOps Engineer – ProfessionalSDLC AutomationEasy

A company is using AWS CodePipeline for its CI/CD workflow. They need to ensure that every deployment to the production environment requires explicit approval from a senior engineer before proceeding. The approval process should be integrated directly into the pipeline and prevent automated progression without human intervention. How can this be implemented using native AWS services?

  1. AUse AWS Step Functions to orchestrate a human approval workflow.
  2. BImplement a custom CodeBuild project that waits for a specific flag to be set manually.
  3. CAdd a manual approval action in the CodePipeline stage before production deployment.
  4. DConfigure an AWS Lambda function to pause the pipeline and send an SNS notification for approval.
Show answer & explanation

Correct answer: C. Add a manual approval action in the CodePipeline stage before production deployment.

AWS CodePipeline provides a built-in 'Manual Approval' action type that can be added to any stage. This action pauses the pipeline execution and requires explicit approval from a designated IAM user or group before the pipeline can proceed, directly fulfilling the requirement for human intervention before production deployment.

Why the other options are wrong

  • A. AWS Step Functions could orchestrate complex human workflows, but for a simple 'approve/reject' gate in CodePipeline, it's an overkill and not as direct as the built-in action.
  • B. A custom CodeBuild project attempting to implement a manual pause mechanism would be highly inefficient, complex to build, and less reliable than the native CodePipeline feature.
  • D. While possible, using Lambda and SNS adds unnecessary complexity compared to the native CodePipeline feature and might be harder to manage within the pipeline context.

CodePipeline Manual Approval

A built-in action in AWS CodePipeline that pauses pipeline execution and waits for explicit approval before proceeding to the next stage.

  • Ensures human oversight at critical deployment points.
  • Can be configured to send notifications (e.g., SNS).
  • Requires IAM permissions for users to approve or reject.

Memory trick: Manual Approval is like a stop sign in your pipeline, waiting for a human hand.

More SDLC Automation questions