You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整AWS CodePipeline适配CloudFront分阶段部署工作流?

CloudFront持续部署结合CodePipeline实现混合发布流程

一、前期CloudFront配置

  • 保留现有生产CloudFront分发(关联你的S3存储桶),新建一个预发分发:
    • 预发分发的源、缓存策略、SSL配置、WAF规则完全复刻生产分发,确保测试环境与生产一致;可选配置一个测试域名(如pre.yourdomain.com)用于内部验证
  • 在生产分发的「持续部署」面板,将预发分发设为候选分发,初始流量分配设为0%(日常状态下所有流量走生产分发)
  • 开启自动回滚(推荐):设置错误率阈值(如5%),当预发分发的错误率超标时自动切回100%生产流量

二、CodePipeline流程改造

不需要改动现有构建→部署到S3的核心链路,仅新增一个手动审批分支来区分日常/重大更新:

  1. 保留原有默认流程:构建完成后自动部署到S3,紧接着执行aws cloudfront create-invalidation命令触发生产分发缓存失效——这是日常发布的默认路径,和你原来的逻辑完全一致
  2. 添加手动审批环节:在构建阶段之后、部署到S3之前,插入一个手动审批动作。当判断为重大更新时,审批通过后触发额外动作:
    • 调用aws cloudfront update-continuous-deployment-policy将预发分发的流量比例调整为初始测试值(如10%)
    • 可选:通过SNS发送团队通知,告知已启动灰度发布

三、日常发布操作

  • 提交代码到指定分支,CodePipeline自动执行构建→部署S3→生产分发缓存失效
  • 此时持续部署策略的流量分配仍为0%,所有用户访问的是生产分发拉取的最新S3内容,完全沿用原有发布逻辑

四、重大更新操作步骤

  1. 代码提交后,在CodePipeline的手动审批环节标记为「重大更新」并通过
  2. 登录AWS控制台,进入生产CloudFront分发的「持续部署」面板,手动调整流量比例:
    • 先分配10%流量到预发分发,监控CloudWatch的错误率、请求延迟等指标
    • 验证无问题后,逐步提升流量至50%、100%
  3. 确认新内容稳定后,恢复默认配置:
    • 触发生产分发的缓存失效,确保生产分发拉取最新S3内容
    • 将持续部署策略的流量分配调回0%,或直接移除候选分发
    • 可选:暂停/删除预发分发,待下次重大更新前再重新配置

五、关键注意事项

  • 预发与生产分发的配置必须完全对齐,避免因缓存策略、WAF规则差异导致的测试失真
  • 重大更新期间,预发分发会自动拉取S3新内容(只要缓存策略设置正确),无需额外触发失效
  • 若需要更自动化的灰度节奏,可通过Lambda+CloudWatch Events实现按时间梯度调整流量,但手动操作更适合重大更新的风险控制

内容的提问来源于stack exchange,提问作者Salvatore Iovene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 03:01:10