CDK Constructs for AWS SNS
Project description
Amazon Simple Notification Service Construct Library
---Add an SNS Topic to your stack:
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
import aws_cdk.aws_sns as sns
topic = sns.Topic(self, "Topic",
display_name="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:
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
import aws_cdk.aws_sns_subscriptions as subs
my_topic = sns.Topic(self, "MyTopic")
my_topic.add_subscription(subs.UrlSubscription("https://foobar.com/"))
Subscribe a queue to the topic:
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
my_topic.add_subscription(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:
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
my_topic = sns.Topic(self, "MyTopic")
fn = lambda.Function(self, "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
# store: attribute must be present
topic.add_subscription(subs.LambdaSubscription(fn,
filter_policy={
"color": sns.SubscriptionFilter.string_filter(
whitelist=["red", "orange"],
match_prefixes=["bl"]
),
"size": sns.SubscriptionFilter.string_filter(
blacklist=["small", "medium"]
),
"price": sns.SubscriptionFilter.numeric_filter(
between={"start": 100, "stop": 200},
greater_than=300
),
"store": sns.SubscriptionFilter.exists_filter()
}
))
CloudWatch Event Rule Target
SNS topics can be used as targets for CloudWatch event rules.
Use the @aws-cdk/aws-events-targets.SnsTopicTarget
:
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
import aws_cdk.aws_events_targets as targets
code_commit_repository.on_commit(targets.SnsTopicTarget(my_topic))
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-1.33.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8be2da92aada7be1f2198afd2bbc6edc3a3bd62681f7481fd17f7102734d3313 |
|
MD5 | 8766d32e007bdaf56e770260bcdcf534 |
|
BLAKE2b-256 | 8dccb196508c201d62fe586cb4a77851279d18d8acf77c29b9b4ff130f462cdf |