AWS CodePipeline

检测源代码变更并自动执行构建、测试和部署的全托管 CI/CD 服务,实现发布流程的完全自动化

概述

AWS CodePipeline 是一项全托管的持续交付 (CD) 服务,用于自动化软件发布流程。通过组合源阶段 (CodeCommit、GitHub、S3、ECR)、构建阶段 (CodeBuild)、测试阶段和部署阶段 (CodeDeploy、CloudFormation、ECS、S3) 定义流水线,每次代码提交时自动执行。V2 流水线支持流水线级变量、Git 标签触发和改进的手动审批阶段等更灵活的工作流。

流水线结构与阶段

CodePipeline 的流水线由多个阶段组成。每个阶段包含一个或多个操作,操作可顺序或并行执行。典型流水线结构为:Source (获取代码) → Build (编译和测试) → Deploy to Staging (部署到预发布环境) → Manual Approval (手动审批) → Deploy to Production (部署到生产环境)。手动审批阶段是在生产部署前插入人工审查的门控。通过 SNS 通知向审批者发送邮件,等待批准或拒绝操作。流水线的执行历史全部记录,可查看各阶段的成功/失败、执行时间和制品信息。

与 CodeBuild 和 CodeDeploy 的协作

CodeBuild 是全托管构建服务,在 buildspec.yml 中定义构建命令,执行 Docker 镜像构建、单元测试、静态分析和制品生成等。构建环境是一次性容器,每次构建提供干净的环境。CodeDeploy 自动化向 EC2、ECS、Lambda 的部署。EC2 部署可选择就地部署和蓝绿部署两种部署类型。ECS 部署采用蓝绿部署,将流量迁移到新任务集,并可配置为在出现问题时自动回滚。Azure 对应服务为 Azure DevOps Pipelines,同样可构建 CI/CD 流水线。

实际应用模式

CodePipeline 的实际应用之一是微服务的部署自动化。为每个微服务定义独立流水线,实现服务独立部署。结合 CloudFormation 可在同一流水线中部署应用代码和基础设施变更。还支持跨账户部署,可构建在开发账户构建制品、部署到预发布和生产账户的流水线。根据官方价格页面,CodePipeline 的 V1 类型流水线按活跃流水线每月计费,V2 类型流水线按操作执行分钟数按量计费 (截至 2026 年 9 月)。

参考资料(AWS 官方)

本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。

如本页内容与官方文档不一致,请以官方文档为准。

分享