我首先创建一个队列:
const notificationQueue: sqs.IQueue = new sqs.Queue(this, `${domain}-notificationsQueue`, {
queueName: `${domain}-notificationsQueue.fifo`,
fifo: true,
contentBasedDeduplication: false
});
现在我需要将此队列订阅到一个 SNS 主题(类似这样,但我需要传入一个 IGrantable 对象 - 我不知道该怎么做)
queue.grantConsumeMessages(grantee: iam.IGrantable)
那么如何创建一个引用特定 SNS 主题的 IGrantable 对象?
答案 0 :(得分:0)
我们可以使用@aws-cdk/aws-sns-subscriptions
我们可以导入这些:
import * as subscriptions from "@aws-cdk/aws-sns-subscriptions";
import * as sns from "@aws-cdk/aws-sns";
import * as sqs from "@aws-cdk/aws-sqs";
在 Sns 上使用 addSubscription
方法。
const myTopic = new sns.Topic(this, "MyTopic");
const myQueue = new sqs.Queue(this, "MyQueue");
myTopic.addSubscription(new subscriptions.SqsSubscription(myQueue));