typescript - Hur prenumererar man en SQS-kö på ett SNS-ämne med AWS CDK?
Jag skapar först en kö:
const notificationQueue: sqs.IQueue = new sqs.Queue(this, `${domain}-notificationsQueue`, {
queueName: `${domain}-notificationsQueue.fifo`,
fifo: true,
contentBasedDeduplication: false
});
Nu behöver jag prenumerera på den här kön till ett SNS-ämne (något liknande detta men jag behöver skicka in ett IGrantable-objekt - vilket jag inte vet hur man gör)
queue.grantConsumeMessages(grantee: iam.IGrantable)
Så hur skapar jag ett IGrantable-objekt som refererar till ett specifikt SNS-ämne?
Svar #1
Vi kan använda @aws-cdk/aws-sns-subscriptions
vi kan importera dessa:
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";
använd addSubscription-metoden på Sns.
const myTopic = new sns.Topic(this, "MyTopic");
const myQueue = new sqs.Queue(this, "MyQueue");
myTopic.addSubscription(new subscriptions.SqsSubscription(myQueue));
