编写以Step Function为目标的Event Bridge YAML规则,部署后目标未显示求助
问题分析与解决方法
你的AWS CloudFormation YAML配置存在两处核心错误,导致EventBridge规则部署后Targets为空:
1. 缺失资源类型定义
原配置没有指定Type: AWS::Events::Rule,CloudFormation无法识别这是一个EventBridge规则资源,导致部分配置被系统忽略。
2. Targets格式完全不符合要求
CloudFormation中AWS::Events::Rule的Targets是对象数组结构,每个目标必须包含Id(目标唯一标识)和Arn(目标资源ARN)两个必填字段,你使用的step_function键和logical_id属性都是非法配置项,因此被CloudFormation直接忽略。
修正后的完整配置
TriggerStepFunction: Type: AWS::Events::Rule Properties: EventBusName: events-bus EventPattern: account: - !Ref AWS::AccountId State: ENABLED Targets: - Id: "StepFunctionTarget" Arn: !Ref eventStepFunction # 可选配置:若需传递完整事件内容,添加 InputPath: "$"
关键说明
Type: AWS::Events::Rule:必须明确指定资源类型,这是CloudFormation识别资源的核心依据Targets数组:每个元素是独立的目标对象,Id为自定义的唯一字符串,Arn通过!Ref eventStepFunction引用你模板中定义的Step Function资源ARN(前提是eventStepFunction在同一模板内存在)- 你的EventPattern配置是正确的:
account: [!Ref AWS::AccountId]会匹配该账户下事件总线的所有事件,不会做额外过滤
内容的提问来源于stack exchange,提问作者Anitha
相关产品推荐
相关产品推荐

