What is @aws-sdk/client-sns?
@aws-sdk/client-sns is an AWS SDK for JavaScript package that allows you to interact with the Amazon Simple Notification Service (SNS). SNS is a fully managed messaging service that enables you to decouple and scale microservices, distributed systems, and serverless applications. With this package, you can publish messages to SNS topics, manage topics and subscriptions, and more.
What are @aws-sdk/client-sns's main functionalities?
Publish a Message
This feature allows you to publish a message to an SNS topic. The code sample demonstrates how to create an SNS client, define the message and topic ARN, and send the message using the PublishCommand.
const { SNSClient, PublishCommand } = require('@aws-sdk/client-sns');
const client = new SNSClient({ region: 'us-east-1' });
const params = {
Message: 'Hello, world!',
TopicArn: 'arn:aws:sns:us-east-1:123456789012:MyTopic'
};
const run = async () => {
try {
const data = await client.send(new PublishCommand(params));
console.log('Message sent:', data);
} catch (err) {
console.error('Error:', err);
}
};
run();
Create a Topic
This feature allows you to create a new SNS topic. The code sample demonstrates how to create an SNS client, define the topic name, and create the topic using the CreateTopicCommand.
const { SNSClient, CreateTopicCommand } = require('@aws-sdk/client-sns');
const client = new SNSClient({ region: 'us-east-1' });
const params = {
Name: 'MyNewTopic'
};
const run = async () => {
try {
const data = await client.send(new CreateTopicCommand(params));
console.log('Topic ARN:', data.TopicArn);
} catch (err) {
console.error('Error:', err);
}
};
run();
Subscribe to a Topic
This feature allows you to subscribe an endpoint to an SNS topic. The code sample demonstrates how to create an SNS client, define the subscription parameters (protocol, topic ARN, and endpoint), and create the subscription using the SubscribeCommand.
const { SNSClient, SubscribeCommand } = require('@aws-sdk/client-sns');
const client = new SNSClient({ region: 'us-east-1' });
const params = {
Protocol: 'email',
TopicArn: 'arn:aws:sns:us-east-1:123456789012:MyTopic',
Endpoint: 'example@example.com'
};
const run = async () => {
try {
const data = await client.send(new SubscribeCommand(params));
console.log('Subscription ARN:', data.SubscriptionArn);
} catch (err) {
console.error('Error:', err);
}
};
run();
Other packages similar to @aws-sdk/client-sns
aws-sdk
The aws-sdk package is the official AWS SDK for JavaScript, which includes support for SNS along with many other AWS services. It provides a comprehensive set of features for interacting with AWS services, but it is larger in size compared to the modular @aws-sdk/client-sns package.
aws-sns-publish
The aws-sns-publish package is another lightweight utility specifically for publishing messages to SNS topics. It is easy to use and has fewer dependencies, but it does not offer the full range of SNS management features available in @aws-sdk/client-sns.