引用 CDK 中已存在的 SNS 主题?
Referencing SNS Topic that already exists in CDK?
我有一个 SNS 主题已经存在于我们的 AWS 环境中。我不想创建新的 SNS 主题,而是想简单地引用已经存在的主题并向其发布消息。
现在,我有以下内容:
const topic = new sns.Topic(this, 'AggregateSNS', {
contentBasedDeduplication: false,
displayName: 'Customer subscription topic',
fifo: true,
topicName: 'MySNSTopic',
//how to reference existing topics?
});
我的理解是这将创建一个新的 SNS 主题,但正如我上面所说,我想引用一个现有的 SNS 主题。
我如何在 CDK 中引用现有的 SNS 主题?
你得到一个read-only reference to an existing SNS topic with the static fromTopicArn方法。这样做的一个常见原因是将现有主题添加为事件源。
const topic = sns.Topic.fromTopicArn(this, 'MyTopic', <topic-arn>);
func.addEventSource(new sources.SnsEventSource(topic));
如果您需要使用 publish API from your CDK app (to send a notification upon certain deploy lifecycle events, for instance), you would use a custom resource. The AwsCustomResource 构造,可以轻松地将 SDK 调用作为部署过程的一部分。
我有一个 SNS 主题已经存在于我们的 AWS 环境中。我不想创建新的 SNS 主题,而是想简单地引用已经存在的主题并向其发布消息。
现在,我有以下内容:
const topic = new sns.Topic(this, 'AggregateSNS', {
contentBasedDeduplication: false,
displayName: 'Customer subscription topic',
fifo: true,
topicName: 'MySNSTopic',
//how to reference existing topics?
});
我的理解是这将创建一个新的 SNS 主题,但正如我上面所说,我想引用一个现有的 SNS 主题。 我如何在 CDK 中引用现有的 SNS 主题?
你得到一个read-only reference to an existing SNS topic with the static fromTopicArn方法。这样做的一个常见原因是将现有主题添加为事件源。
const topic = sns.Topic.fromTopicArn(this, 'MyTopic', <topic-arn>);
func.addEventSource(new sources.SnsEventSource(topic));
如果您需要使用 publish API from your CDK app (to send a notification upon certain deploy lifecycle events, for instance), you would use a custom resource. The AwsCustomResource 构造,可以轻松地将 SDK 调用作为部署过程的一部分。