SNS
Component to manage Amazon Simple Notification Service.
How to use
Below are all languages supported by the AWS CDK.
C#
Install the dependency:
dotnet add package StackSpot.Cdk.Sns
Import the construct into your project, for example:
using Amazon.CDK;
using Constructs;
using StackSpot.Cdk.Sns;
namespace MyStack
{
public class MyStack : Stack
{
internal MyStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props)
{
new Sns(this, "MySns", new SnsCreateTopicProps{
DisplayName = "my-topic",
TopicName = "my-topic"
});
}
}
}
F#
Not yet supported.
Go
Not yet supported.
Java
Not yet supported.
JavaScript
Install the dependency:
npm install --save @stackspot/cdk-sns
Import the construct into your project, for example:
const { Stack } = require('aws-cdk-lib');
const { Sns } = require('@stackspot/cdk-sns');
class MyStack extends Stack {
constructor(scope, id, props) {
super(scope, id, props);
new Sns(this, 'MySns', { displayName: 'my-topic', topicName: 'my-topic' });
}
}
module.exports = { MyStack };
Python
Not yet supported.
TypeScript
Install the dependency:
npm install --save @stackspot/cdk-sns
Import the construct into your project, for example:
import { Stack, StackProps } from 'aws-cdk-lib';
import { Construct } from 'constructs';
import { Sns } from '@stackspot/cdk-sns';
export class MyStack extends Stack {
constructor(scope: Construct, id: string, props?: StackProps) {
super(scope, id, props);
new Sns(this, 'MySns', { displayName: 'my-topic', topicName: 'my-topic' });
}
}
Construct Props
Name | Type | Description |
---|---|---|
displayName | string | A developer-defined string that can be used to identify this SNS topic. |
topicName | string | A name for the topic. |
Properties
Name | Type | Description |
---|---|---|
topic | Topic | The topic that was created. |
Methods
Name | Description |
---|---|
addLambdaSubscription(fn) | Adds an AWS Lambda function as a topic subscription. |
addSubscription(subscription) | Adds a generic subscription to the topic. |
static addSubscriptionFromStackTopic(scope, stackName, topicName, subscription) | Adds a generic subscription to the topic from StackManager. |
addLambdaSubscription(fn)
public addLambdaSubscription(fn: IFunction): void
Parameters
- fn IFunction
Adds an AWS Lambda function as a topic subscription.
addSubscription(subscription)
public addSubscription(subscription: ITopicSubscription): void
Parameters
- subscription ITopicSubscription
Adds a generic subscription to the topic.
static addSubscriptionFromStackTopic(scope, stackName, topicName, subscription)
public static addSubscriptionFromStackTopic(scope: Construct, stackName: string, topicName: string, subscription: ITopicSubscription): void
Parameters
- scope Construct
- stackName string
- topicName string
- subscription ITopicSubscription
Adds a generic subscription to the topic from StackManager.
IAM Least privilege
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"lambda:AddPermission",
"lambda:RemovePermission",
"sns:CreateTopic",
"sns:DeleteTopic",
"sns:GetTopicAttributes",
"sns:Subscribe",
"sns:Unsubscribe",
"ssm:DeleteParameter",
"ssm:GetParameters",
"ssm:PutParameter"
],
"Resource": "*"
}
]
}
Development
Prerequisites
- EditorConfig (Optional)
- Git
- Node.js 17
Setup
cd sns-jsii-component
npm install