首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将IEventBus转换为EventBus for Rule.addTarget() -将事件从EventBus发送到同一帐户中的事件总线

将IEventBus转换为EventBus for Rule.addTarget() -将事件从EventBus发送到同一帐户中的事件总线
EN

Stack Overflow用户
提问于 2021-07-27 15:40:04
回答 1查看 316关注 0票数 1

我正在尝试设置一个规则,以便使用CDK将事件从一个事件总线发送到同一个帐户中的另一个事件总线。

我遇到的问题是,Rule()只接受实现IRuleTarget的东西。

创建一个新的事件总线将返回实现EventBus的IRuleTarget类。但是查找一个EventBus返回不实现IRuleTarget的IEventBus。

有什么方法可以查找我的事件总线并将它作为目标应用到规则中吗?

代码语言:javascript
复制
// Define EventBus1
const eventBus1 = new EventBus(this, 'eventBus1', {
  eventBusName: 'eventBus1Name',
});

// Look up my Event Bus in the other account, this method returns an IEventBus
const iEventBus2 = EventBus.fromEventBusArn(this, 'eventBus2', 'eventBus2Arn');

// My bad attempt to convert it, this didn't seem to work
const eventBus2 = EventBus.bind(iEventBus2);

// Create Rule to send event from eventBus1 to eventBus2
const eventBus1ToEventBus2Rule = new Rule(this, 'eventBus1ToEventBus2Rule', {
  eventBus: eventBus1,
  eventPattern: {
    'detailType': ['eventDetailType'],
  },
});

// Fails with in error I'll copy in below
eventBus1ToEventBus2Rule.addTarget(eventBus2);

错误:解析错误:为"CfnRuleProps“目标提供的属性不正确:元素0:为"TargetProperty”arn提供的属性不正确,但缺少。

这是使用1.115.0版本的aws。一切都是通过EventBridge构建的。

EN

回答 1

Stack Overflow用户

发布于 2021-07-27 16:50:51

fromEventBusArnEventBus类中。EventBus扩展(继承) BaseEventBus,它实现了IEventBus,因此可以在需要IEventBus的任何地方使用。因此,我认为您可以简单地将fromEventBusArn的返回值转换为EventBus

而不是这样:

代码语言:javascript
复制
const iEventBus2 = EventBus.fromEventBusArn(this, 'eventBus2', 'eventBus2Arn');
const eventBus2 = EventBus.bind(iEventBus2);

这样做:

代码语言:javascript
复制
const eventBus = EventBus.fromEventBusArn(this, 'eventBus2', 'eventBus2Arn') as EventBus;

但是,所产生的变量eventBus不能像您所做的那样传递给eventBus1ToEventBus2Rule.addTarget(),因为它在下面的错误中失败了,我不太确定它最初是如何工作的.

代码语言:javascript
复制
Argument of type 'EventBus' is not assignable to parameter of type 'IRuleTarget'.
  Property 'bind' is missing in type 'EventBus' but required in type 'IRuleTarget'.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68547901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档