CDK Constructs for AWS SNS
Project description
Amazon Simple Notification Service Construct Library
This is a developer preview (public beta) module. Releases might lack important features and might have future breaking changes.
Add an SNS Topic to your stack:
import sns = require('@aws-cdk/aws-sns');
const topic = new sns.Topic(this, 'Topic', {
displayName: 'Customer subscription topic'
});
Subscriptions
Various subscriptions can be added to the topic by calling the
.addSubscription(...)
method on the topic. It accepts a subscription object,
default implementations of which can be found in the
@aws-cdk/aws-sns-subscriptions
package:
Add an HTTPS Subscription to your topic:
import subs = require('@aws-cdk/aws-sns-subscriptions');
const myTopic = new sns.Topic(this, 'MyTopic');
myTopic.addSubscription(new subs.UrlSubscription('https://foobar.com/'));
Subscribe a queue to the topic:
myTopic.addSubscription(new subs.SqsSubscription(queue));
Note that subscriptions of queues in different accounts need to be manually confirmed by reading the initial message from the queue and visiting the link found in it.
Filter policy
A filter policy can be specified when subscribing an endpoint to a topic.
Example with a Lambda subscription:
const myTopic = new sns.Topic(this, 'MyTopic');
const fn = new lambda.Function(this, 'Function', ...);
// Lambda should receive only message matching the following conditions on attributes:
// color: 'red' or 'orange' or begins with 'bl'
// size: anything but 'small' or 'medium'
// price: between 100 and 200 or greater than 300
topic.subscribeLambda(new subs.LambdaSubscription(fn, {
filterPolicy: {
color: sns.SubscriptionFilter.stringFilter({
whitelist: ['red', 'orange'],
matchPrefixes: ['bl']
}),
size: sns.SubscriptionFilter.stringFilter({
blacklist: ['small', 'medium'],
}),
price: sns.SubscriptionFilter.numericFilter({
between: { start: 100, stop: 200 },
greaterThan: 300
})
}
}));
CloudWatch Event Rule Target
SNS topics can be used as targets for CloudWatch event rules.
Use the @aws-cdk/aws-events-targets.SnsTopicTarget
:
import targets = require('@aws-cdk/aws-events-targets');
codeCommitRepository.onCommit(new targets.SnsTopicTarget(myTopic));
This will result in adding a target to the event rule and will also modify the topic resource policy to allow CloudWatch events to publish to the topic.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for aws_cdk.aws_sns-0.38.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2b97fda9f4c1fb5135103b56b463bdaf1a1966686a9a51c9a1dfdab77103d39 |
|
MD5 | a2c9dcef85e8ee5d12babf22b551f2cb |
|
BLAKE2b-256 | ab1713d42427abc13426be5c579abbe7cdcf155876c4c76116a2e4cf3841591d |