使用 CodePipeline 构建流水线

在 AWS 上自动化部署

Dunieski Otano

Amazon Web Services Solutions Architect

多阶段流水线

视频预览:包含制品、审批与 EventBridge 的多阶段流水线

在 AWS 上自动化部署

CodePipeline 流水线结构

  • 流水线由一系列阶段组成
  • 每个阶段包含操作组与操作
  • 操作会生成并消费制品(存储于 S3)
  • 下一阶段将制品作为输入

CodePipeline 结构:阶段、操作、制品

在 AWS 上自动化部署

连接源、构建与部署

  • 源阶段:CodeCommit 检测到推送,输出源制品
  • 构建阶段:CodeBuild 接收源码,输出构建制品
  • 部署阶段:CodeDeploy 接收构建制品,部署到目标
  • 每次代码推送都会端到端运行流水线

三阶段流水线

在 AWS 上自动化部署

人工审批操作

  • 人工审批:阶段间的人为闸门
  • 流水线暂停,直到有人批准或拒绝
  • 常见用法:作为预生产到生产的闸门
  • 状态显示 "Waiting for approval",支持 SNS 通知

人工审批闸门:组长审核流水线

在 AWS 上自动化部署

阶段迁移与流水线控制

  • 启用/禁用阶段间迁移
    • 禁用可在指定位置暂停流水线
  • 重试失败的操作,无需重启流水线
  • 手动发布变更,推送特定修订版

 

CodePipeline 阶段迁移控制、重试与发布

在 AWS 上自动化部署

流水线事件通知

CodePipeline 结构:阶段、操作、制品

  • CodePipeline 将事件发送到Amazon EventBridge
  • 事件包括:流水线启动、阶段成功、阶段失败
  • 创建EventBridge 规则将事件路由到目标
    • 通过 SNS 主题发送邮件/SMS 警报
    • 触发 Lambda 函数实现自定义自动化
  • 事件详情包含流水线名、阶段名和失败原因
在 AWS 上自动化部署

多环境流水线设计

  • 单一流水线可部署到多个环境
  • 构建一次,逐级提升:Dev -> Staging -> Approval -> Prod
  • 同一制品贯穿所有环境
  • 测试即所部署,结果一致

多环境流水线:开发、预生产、审批、生产

在 AWS 上自动化部署

让我们一起练习吧!

在 AWS 上自动化部署

Preparing Video For Download...