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

如何通过GitHub发布标签触发AWS CodePipeline并匹配ECR镜像版本标签

ECR动态版本标签触发CodePipeline实现方案

方案1:通过Amazon EventBridge规则自动触发(推荐)

无需修改现有GitHub Action逻辑,完全通过AWS原生服务实现触发逻辑:

  • 首先确认你的CodePipeline源阶段已开启参数化配置,将ECR源的镜像标签字段设置为变量引用:#{SourceVariables.ImageTag}
  • 进入Amazon EventBridge控制台创建新规则,事件模式选择自定义模式,填入匹配规则:
{
  "source": ["aws.ecr"],
  "detail-type": ["ECR Image Action"],
  "detail": {
    "action-type": ["PUSH"],
    "result": ["SUCCESS"],
    "repository-name": ["替换为你的ECR仓库名称"],
    "image-tag": [{"prefix": ""}]
  }
}

如需过滤仅触发语义化版本标签,可在image-tag字段添加匹配规则,比如填"1."即可仅匹配1.0、1.1等开头的版本标签,排除latest等其他标签。

  • 规则目标选择你的CodePipeline,配置输入转换器,将事件返回的镜像标签值传递给Pipeline的ImageTag参数。
  • 给EventBridge的执行角色添加codepipeline:StartPipelineExecution权限,确保有权限触发Pipeline运行。

方案2:修改GitHub Action直接触发

适合需要在GitHub侧管控触发逻辑的场景:

  • 先将CodePipeline源阶段的ECR镜像标签配置为Pipeline变量,变量名设为ImageTag。
  • 在你现有的推送ECR的GitHub Action工作流中,新增一步触发Pipeline的逻辑,在镜像推送成功后执行AWS CLI命令:
aws codepipeline start-pipeline-execution --name 替换为你的Pipeline名称 --variables name=ImageTag,value=${{ github.ref_name }}

其中${{ github.ref_name }}就是你触发Action的GitHub发布标签值,也就是你要设置的镜像版本号。

  • 确保GitHub Action使用的AWS凭证拥有codepipeline:StartPipelineExecution权限。

注意事项

两种方案都需要先确认你的CodePipeline支持变量传递,2020年之后创建的CodePipeline默认支持该功能,更早创建的Pipeline需要手动升级版本。
如果需要在后续部署阶段使用该版本号,可直接通过#{SourceVariables.ImageTag}全局引用该变量,无需额外存储。

内容的提问来源于stack exchange,提问作者Sachin Chougule

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 04:33:01