To Nha Notes | March 29, 2023, 9 p.m.
import * as lambda from 'aws-cdk-lib/aws-lambda';
import {NodejsFunction} from 'aws-cdk-lib/aws-lambda-nodejs';
import * as sns from 'aws-cdk-lib/aws-sns';
import * as subs from 'aws-cdk-lib/aws-sns-subscriptions';
import * as sqs from 'aws-cdk-lib/aws-sqs';
import * as cdk from 'aws-cdk-lib';
import * as path from 'path';
export class CdkStarterStack extends cdk.Stack {
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// 👇 create sns topic
const topic = new sns.Topic(this, 'sns-topic', {
displayName: 'My SNS topic',
});
// 👇 create lambda function
const myLambda = new NodejsFunction(this, 'my-lambda', {
memorySize: 1024,
timeout: cdk.Duration.seconds(5),
runtime: lambda.Runtime.NODEJS_16_X,
handler: 'main',
entry: path.join(__dirname, `/../src/my-lambda/index.ts`),
});
// 👇 subscribe Lambda to SNS topic
topic.addSubscription(new subs.LambdaSubscription(myLambda));
new cdk.CfnOutput(this, 'snsTopicArn', {
value: topic.topicArn,
description: 'The arn of the SNS topic',
})
}
}
https://bobbyhadz.com/blog/aws-cdk-sns
https://github.com/bobbyhadz/aws-cdk-sns
https://docs.aws.amazon.com/solutions/latest/constructs/aws-sns-lambda.html
https://dev.to/aws-builders/how-to-trigger-an-aws-lambda-from-sns-4c3a