【发布时间】:2020-01-27 10:03:00
【问题描述】:
我想使用 cdk (typescript) 将 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,并且有示例代码,但它只显示了如何在同一个帐户中执行此操作。有人有这方面的经验吗?
【问题讨论】:
-
我不知道 CDK,但您从另一个 AWS 账户访问资源的方式是使用 STS。您可以在要访问的帐户中创建一个角色,并从您用来访问它的帐户中代入该角色。 docs.aws.amazon.com/IAM/latest/UserGuide/…
-
是的,一般来说,这绝对是一种通过 aws 部署某些东西的方法。这个问题更具体一些,并且与通过 cdk 进行相关,因此文档对很多帮助没有帮助,但无论如何谢谢!
标签: typescript amazon-web-services amazon-sqs amazon-sns aws-cdk