Subscription
The Subscription resource lets you manage AWS SNS Subscriptions for receiving messages from SNS topics. Subscriptions can be configured with various protocols to deliver messages to endpoints.
Minimal Example
Section titled “Minimal Example”Create a basic SNS subscription to an existing topic with essential properties.
import AWS from "alchemy/aws/control";
const snsSubscription = await AWS.SNS.Subscription("mySnsSubscription", { TopicArn: "arn:aws:sns:us-east-1:123456789012:MyTopic", Protocol: "email", Endpoint: "user@example.com"});
Advanced Configuration
Section titled “Advanced Configuration”Configure an SNS subscription with additional options such as message filtering and delivery policies.
const advancedSnsSubscription = await AWS.SNS.Subscription("advancedSnsSubscription", { TopicArn: "arn:aws:sns:us-east-1:123456789012:MyTopic", Protocol: "https", Endpoint: "https://example.com/notifications", FilterPolicy: { eventType: ["order_placed", "order_shipped"] }, DeliveryPolicy: { healthyRetryPolicy: { numRetries: 3, minDelayTarget: 20, maxDelayTarget: 20, numNoDelayRetries: 0, numMinDelayRetries: 0, backoffFunction: "linear" } }});
Raw Message Delivery
Section titled “Raw Message Delivery”Create a subscription that delivers raw messages without JSON formatting.
const rawMessageSnsSubscription = await AWS.SNS.Subscription("rawMessageSubscription", { TopicArn: "arn:aws:sns:us-east-1:123456789012:MyTopic", Protocol: "sqs", Endpoint: "arn:aws:sqs:us-east-1:123456789012:MyQueue", RawMessageDelivery: true});
Replay Policy
Section titled “Replay Policy”Configure a subscription with a replay policy for message retention and replay capabilities.
const replayPolicySnsSubscription = await AWS.SNS.Subscription("replayPolicySubscription", { TopicArn: "arn:aws:sns:us-east-1:123456789012:MyTopic", Protocol: "lambda", Endpoint: "arn:aws:lambda:us-east-1:123456789012:function:myFunction", ReplayPolicy: { maxReplayDuration: "PT1H", // ISO 8601 duration format maxReplayMessages: 100 }});