0.1.0 • Published 2 years ago

@stackspot/cdk-sns v0.1.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 years ago

SNS

aws-cdk jsii npm-version nuget-version npm-downloads nuget-downloads license

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

NameTypeDescription
displayNamestringA developer-defined string that can be used to identify this SNS topic.
topicNamestringA name for the topic.

Properties

NameTypeDescription
topicTopicThe topic that was created.

Methods

NameDescription
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

Adds an AWS Lambda function as a topic subscription.

addSubscription(subscription)

public addSubscription(subscription: ITopicSubscription): void

Parameters

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

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

Setup

cd sns-jsii-component
npm install