CDKv2 TypeScript跨区域EventBus导入异常:目标总线指向错误区域
跨区域EventBus目标配置问题的解决思路
明确跨区域资源引用方式
CDK v2中跨区域引用EventBus不能直接用本地构造的对象(默认会绑定当前栈区域),需用EventBus.fromEventBusArn手动传入eu-west-1区域总线的完整ARN,确保目标指向正确区域:const targetEventBus = EventBus.fromEventBusArn(this, 'TargetEventBus', `arn:aws:events:eu-west-1:${this.account}:event-bus/listener-event-bus` );固定目标区域,避免动态变量替换
创建us-east-1事件规则的栈需明确指定区域为us-east-1,引用eu-west-1总线时,禁止依赖${AWS::Region}伪参数,必须硬编码目标区域或从配置变量传入,防止CDK自动替换为当前栈区域。修正IAM策略的资源ARN
为us-east-1的事件规则创建IAM角色时,手动指定events:PutEvents权限的资源为eu-west-1总线的ARN,不要使用CDK自动生成的带区域变量的ARN,确保策略权限指向正确区域的资源。配置目标总线的资源策略
确保eu-west-1的listener-event-bus已添加资源策略,允许us-east-1区域的事件规则角色执行events:PutEvents操作,避免跨区域调用时出现权限拒绝。重新生成CloudFormation模板
删除本地cdk.context.json文件,执行cdk synth重新生成模板,检查模板中EventBus的ARN是否已正确指向eu-west-1,确认无误后再执行部署。
内容的提问来源于stack exchange,提问作者MobyDuck736
相关产品推荐
相关产品推荐

