CodeBuild projects and buildspec.yml
Exam alignment: DOP-C02 Domain 1 task statements for pipelines, testing, artifacts, or deployment.
Learning objective
Create reproducible build phases, artifacts, reports, and correct failure status.
| Difficulty / Schwierigkeitsgrad | Intermediate |
| Study time / Lernzeit | 120 minutes |
| Prerequisites / Voraussetzungen | Previous lessons in this volume |
Professional scenario
Local build commands differ and pipeline packages are inconsistent.
Core concepts
- CodeBuild executes commands in a managed build environment.
- Buildspec YAML defines phases, commands, cache, reports, and artifacts.
- The service role supplies temporary AWS permissions.
- Non-zero command status must represent required failure.
Architecture flow
- Identify the release input and immutable identity.
- Select the managed AWS control plane and least-privilege role.
- Execute build, test, artifact, or deployment work.
- Collect service events, logs, reports, and runtime metrics.
- Stop, retry, or roll back according to explicit rules.
Decision matrix
| Requirement | Preferred choice | Reason |
|---|---|---|
| Versioned build commands | Buildspec in repository | Reviewed with code |
| AWS access | Service role | Temporary credentials |
| Required failed test | Non-zero exit | Blocks bad artifact |
Failure modes and troubleshooting
- YAML indentation is invalid.
- Artifact file pattern matches nothing.
- A command masks failure with
|| true.
Security and operations
- Use short-lived service roles and least privilege.
- Encrypt artifacts and protect logs from secret exposure.
- Record changes and approvals for audit.
Hands-on lab
Goal / Ziel: Build, test, and package a small application.
Tasks
- Create the smallest safe test architecture.
- Implement or simulate the main workflow.
- Introduce one controlled failure.
- Diagnose it from service evidence.
- Document cleanup and one improvement.
Validation
- The workflow uses an immutable version.
- A required failure blocks promotion.
- The diagnosis identifies the first failed transition.
Cost control / Kostenkontrolle: Keep resources short lived; read cleanup before starting.
Cleanup
- Delete pipeline/build/deployment resources.
- Delete temporary artifacts, images, logs, and roles.
Exam traps
- Putting credentials in buildspec.
- Uploading the entire work directory.
Key takeaways
- CodeBuild executes commands in a managed build environment.
- Non-zero command status must represent required failure.
- Decisions must be justified by requirements and failure behavior.
Review questions
- What is the immutable release identity?
- Which evidence proves failure or success?
- What is the safest recovery action?
Answers
- A version, digest, or uniquely versioned artifact.
- Service events, logs, reports, health checks, and runtime metrics.
- Restore the known-good version using the configured rollback path.