使用AWS cdk(typescript)将sqs队列订阅到另一个帐户中的sns主题

时间:2020-01-27 10:03:00

标签: typescript amazon-web-services amazon-sqs amazon-sns aws-cdk

我想使用cdk(打字稿)将sqs队列连接到另一个帐户中的sns主题。下面是我认为应该可以使用的代码(此代码位于堆栈中),但是我在代码下面列出了一些疑问(我尚未部署此,仍然尝试首先学习如何执行此操作)。

    const topic = Topic.fromTopicArn(
      this,
      `${stackName}-topic`,
      `arn:aws:sns:${region}:${accountno}:SubscriptionChanges`
    );

    topic.addSubscription(
      new SqsSubscription(queue, {
        filterPolicy: {
          type: SubscriptionFilter.stringFilter({
            whitelist: [
              'filter1',
            ],
          })
        },
      })
    );
  }
  • 我使用 fromTopicArn 来启动主题构造。如果我不是主题的所有者(主题是在其他帐户中定义的,因此我尝试使用此交叉帐户),是否可以这样做?
  • 有没有一种方法可以创建sqs订阅而不在上面的第一行中创建 topic 变量?

我已经阅读了documentation,并且有示例代码,但仅显示了如何在同一帐户中执行此操作。有任何经验的人吗?

1 个答案:

答案 0 :(得分:3)

因此,经过一些研究,我得到了一些答案。

即使您是该主题的所有者,也可以创建主题结构,并且可以将队列连接到该主题结构,但是主题所有者必须授予您访问权限(或更具体地说,您的帐号)。 / p>