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

如何在EventPattern的taskDefinitionArn中用通配符替换任务定义修订号

解决ECS任务定义任意修订号的EventBridge事件匹配问题

你遇到的问题是因为EventBridge(原CloudWatch Events)的事件模式不支持在字符串值中使用*作为通配符,直接写*会被当作字面量处理,自然匹配不到实际的任务定义ARN。以下是两种可行的解决方案:

方案一:使用前缀匹配(Prefix)

利用任务定义ARN的固定前缀特性,匹配所有以指定前缀开头的ARN,覆盖任意修订号:

{
  "detail-type": [
    "ECS Task State Change"
  ],
  "source": [
    "aws.ecs"
  ],
  "detail": {
    "taskDefinitionArn": [
      {
        "prefix": "arn:aws:ecs:us-east-1:*********:task-definition/test-definition-task:"
      }
    ],
    "stoppedReason": [
      "Essential container in task exited"
    ],
    "lastStatus": [
      "STOPPED"
    ]
  }
}

这个配置会匹配所有以arn:aws:ecs:us-east-1:*********:task-definition/test-definition-task:开头的任务定义ARN,不管后面的修订号是多少。

方案二:直接匹配任务定义家族(推荐)

ECS任务状态变更事件的detail字段中,自带taskDefinitionFamily(任务定义家族名)和taskDefinitionRevision(修订号)字段,直接匹配家族名就能覆盖该家族下的所有修订号,逻辑更清晰:

{
  "detail-type": [
    "ECS Task State Change"
  ],
  "source": [
    "aws.ecs"
  ],
  "detail": {
    "taskDefinitionFamily": [
      "test-definition-task"
    ],
    "stoppedReason": [
      "Essential container in task exited"
    ],
    "lastStatus": [
      "STOPPED"
    ]
  }
}

这种方式不需要拼接ARN,直接通过任务家族名匹配,更简洁也更不易出错。

内容的提问来源于stack exchange,提问作者gcpdev-guy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 18:27:46