如何通过EventBridge匹配任意版本Batch作业定义触发Step Functions?
解决Batch作业任意版本触发Step Function的EventBridge配置问题
问题原因
你当前的事件模式用数组包含带*的ARN,EventBridge会把它当作精确字符串匹配,而非通配符匹配,因此只有完全匹配的ARN(带具体版本号)才会触发,带*的模式无法生效。
解决方案:使用EventBridge的prefix匹配操作符
修改事件模式,针对jobDefinition字段使用prefix匹配,指定到作业定义版本号之前的固定前缀部分,即可匹配该作业定义的所有版本。
修改后的事件模式如下:
{ "source": ["aws.batch"], "detail-type": ["Batch Job State Change"], "detail": { "jobDefinition": { "prefix": "arn:aws:batch:us-east-2:123456789012:job-definition/my-job-definition:" }, "status": ["SUCCEEDED"] } }
验证逻辑
Batch作业触发的事件中,jobDefinition字段格式为arn:aws:batch:区域:账号ID:job-definition/作业名:版本号,用prefix匹配到:版本号之前的部分,就能覆盖该作业定义的所有版本(包括数字版本号和latest别名)。
额外扩展
如果需要同时匹配多个作业定义的所有版本,可将prefix规则放在数组中,示例如下:
"detail": { "jobDefinition": [ {"prefix": "arn:aws:batch:us-east-2:123456789012:job-definition/job1:"}, {"prefix": "arn:aws:batch:us-east-2:123456789012:job-definition/job2:"} ], "status": ["SUCCEEDED"] }
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

