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?
- AUse AWS Step Functions to orchestrate a human approval workflow.
- BImplement a custom CodeBuild project that waits for a specific flag to be set manually.
- CAdd a manual approval action in the CodePipeline stage before production deployment.
- DConfigure an AWS Lambda function to pause the pipeline and send an SNS notification for approval.
Show answer & explanationAnswer & 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.