Bird
Raised Fist0
AWScloud~5 mins

SNS notification types (email, SMS, Lambda) in AWS - Commands & Configuration

Choose your learning style10 modes available
Introduction
SNS lets you send messages to different places automatically. You can send emails, text messages, or trigger small programs called Lambda functions when something happens.
When you want to send an alert email to your team if a server has a problem.
When you want to send a text message to your phone for important updates.
When you want to run a small program automatically after a new file is uploaded.
When you want to notify multiple systems at once about an event.
When you want to connect your app to other AWS services easily.
Config File - sns-subscription.json
sns-subscription.json
{
  "TopicArn": "arn:aws:sns:us-east-1:123456789012:my-topic",
  "Protocol": "email",
  "Endpoint": "example@example.com"
}

This file defines a subscription to an SNS topic.

TopicArn is the unique address of the SNS topic.

Protocol is the type of notification: email, sms, or lambda.

Endpoint is where the message goes: an email address, phone number, or Lambda function ARN.

Commands
Create a new SNS topic named 'my-topic' where messages will be sent.
Terminal
aws sns create-topic --name my-topic
Expected OutputExpected
{ "TopicArn": "arn:aws:sns:us-east-1:123456789012:my-topic" }
→
--name - Sets the name of the SNS topic
Subscribe an email address to the topic so it receives notifications.
Terminal
aws sns subscribe --topic-arn arn:aws:sns:us-east-1:123456789012:my-topic --protocol email --notification-endpoint example@example.com
Expected OutputExpected
{ "SubscriptionArn": "pending confirmation" }
→
--topic-arn - Specifies which topic to subscribe to
→
--protocol - Defines the notification type, here email
→
--notification-endpoint - The email address that will receive messages
Subscribe a phone number to receive SMS text messages from the topic.
Terminal
aws sns subscribe --topic-arn arn:aws:sns:us-east-1:123456789012:my-topic --protocol sms --notification-endpoint +12345678901
Expected OutputExpected
{ "SubscriptionArn": "arn:aws:sns:us-east-1:123456789012:my-topic:2bcfbf39-05c3-41de-beaa-fcfcc21c8f55" }
→
--protocol - Defines the notification type, here SMS
→
--notification-endpoint - The phone number to receive SMS messages
Subscribe a Lambda function to the topic so it runs when a message is sent.
Terminal
aws sns subscribe --topic-arn arn:aws:sns:us-east-1:123456789012:my-topic --protocol lambda --notification-endpoint arn:aws:lambda:us-east-1:123456789012:function:my-function
Expected OutputExpected
{ "SubscriptionArn": "arn:aws:sns:us-east-1:123456789012:my-topic:7c8f3e2a-1234-5678-9abc-def012345678" }
→
--protocol - Defines the notification type, here Lambda
→
--notification-endpoint - The ARN of the Lambda function to invoke
Send a test message to all subscribers of the topic.
Terminal
aws sns publish --topic-arn arn:aws:sns:us-east-1:123456789012:my-topic --message "Hello, this is a test notification!"
Expected OutputExpected
{ "MessageId": "95df01b4-ee2e-5fb6-9b6f-6f8f9f1a1234" }
→
--topic-arn - Specifies the topic to send the message to
→
--message - The content of the notification
Key Concept

If you remember nothing else from this pattern, remember: SNS lets you send the same message to different types of receivers like email, SMS, or Lambda functions automatically.

Common Mistakes
Using the wrong protocol name like 'text' instead of 'sms' when subscribing.
SNS will reject the subscription because the protocol is invalid.
Always use the exact protocol names: 'email', 'sms', or 'lambda'.
Not confirming the email subscription by clicking the link in the confirmation email.
The email address will not receive any messages until confirmed.
Check your email and confirm the subscription to activate it.
Using a phone number without the country code for SMS subscriptions.
SNS requires phone numbers in E.164 format with country code to send SMS.
Always include the country code, e.g., +12345678901.
Summary
Create an SNS topic to group notifications.
Subscribe endpoints like email, SMS, or Lambda functions to the topic.
Publish messages to the topic to notify all subscribers automatically.

Practice

(1/5)
1. Which of the following is NOT a valid protocol for an AWS SNS subscription?
easy
A. email
B. sms
C. lambda
D. ftp

Solution

  1. Step 1: Review SNS supported protocols

    AWS SNS supports protocols like email, sms, and lambda for subscriptions.
  2. Step 2: Identify unsupported protocol

    FTP is not supported as a protocol for SNS subscriptions.
  3. Final Answer:

    ftp -> Option D
  4. Quick Check:

    Supported protocols exclude ftp [OK]
Hint: Remember SNS supports email, sms, lambda but not ftp [OK]
Common Mistakes:
  • Confusing FTP as supported protocol
  • Thinking HTTP is the only protocol
  • Mixing SNS with S3 protocols
2. Which is the correct way to specify an SMS subscription protocol in AWS SNS?
easy
A. Protocol: 'sms', Endpoint: 'user@example.com'
B. Protocol: 'email', Endpoint: '+1234567890'
C. Protocol: 'sms', Endpoint: '+1234567890'
D. Protocol: 'lambda', Endpoint: '+1234567890'

Solution

  1. Step 1: Understand protocol and endpoint types

    For SMS, protocol must be 'sms' and endpoint is a phone number with country code.
  2. Step 2: Match correct protocol and endpoint

    Protocol: 'sms', Endpoint: '+1234567890' correctly uses 'sms' protocol and a phone number endpoint.
  3. Final Answer:

    Protocol: 'sms', Endpoint: '+1234567890' -> Option C
  4. Quick Check:

    SMS needs phone number endpoint [OK]
Hint: SMS protocol requires phone number endpoint format [OK]
Common Mistakes:
  • Using email as protocol for SMS
  • Using email address as SMS endpoint
  • Using lambda protocol with phone number
3. Given this AWS SNS subscription code snippet:
sns.subscribe({
  Protocol: 'lambda',
  Endpoint: 'arn:aws:lambda:us-east-1:123456789012:function:ProcessMessage'
});

What happens when a message is published to this SNS topic?
medium
A. The Lambda function 'ProcessMessage' is invoked with the message payload.
B. The message is sent as an SMS to the Lambda function ARN.
C. The message is sent as an email to the Lambda function.
D. The subscription will fail because Lambda cannot be an endpoint.

Solution

  1. Step 1: Identify protocol and endpoint meaning

    Protocol 'lambda' means SNS invokes the specified Lambda function ARN when a message is published.
  2. Step 2: Understand message delivery behavior

    The Lambda function 'ProcessMessage' is called with the message payload as input.
  3. Final Answer:

    The Lambda function 'ProcessMessage' is invoked with the message payload. -> Option A
  4. Quick Check:

    Lambda protocol triggers function invocation [OK]
Hint: Lambda protocol triggers function call, not email or SMS [OK]
Common Mistakes:
  • Thinking Lambda receives email or SMS
  • Assuming subscription fails
  • Confusing endpoint ARN with phone/email
4. You created an SNS subscription with protocol 'email' but the subscriber never receives messages. What is the most likely cause?
medium
A. The email address was not confirmed by the subscriber.
B. The SNS topic does not support email protocol.
C. The subscription endpoint was set to a phone number.
D. Lambda function is not attached to the subscription.

Solution

  1. Step 1: Understand email subscription confirmation

    Email subscriptions require the recipient to confirm by clicking a link in a confirmation email.
  2. Step 2: Identify common cause of no delivery

    If the email is not confirmed, SNS will not send notifications to that address.
  3. Final Answer:

    The email address was not confirmed by the subscriber. -> Option A
  4. Quick Check:

    Email subscriptions need confirmation [OK]
Hint: Email subscriptions require confirmation before delivery [OK]
Common Mistakes:
  • Assuming SNS does not support email
  • Confusing phone number as email endpoint
  • Expecting Lambda involvement in email subscription
5. You want to send an SMS notification and also trigger a Lambda function whenever a message is published to an SNS topic. How should you configure the subscriptions?
hard
A. Create one subscription with protocol 'email' and endpoint as phone number, and another with protocol 'lambda' and endpoint as Lambda ARN.
B. Create one subscription with protocol 'sms' and endpoint as phone number, and another with protocol 'lambda' and endpoint as Lambda ARN.
C. Create one subscription with protocol 'lambda' and endpoint as phone number, and another with protocol 'sms' and endpoint as Lambda ARN.
D. Create one subscription with protocol 'sms' and endpoint as Lambda ARN, and another with protocol 'lambda' and endpoint as phone number.

Solution

  1. Step 1: Understand protocol and endpoint matching

    SMS protocol requires a phone number endpoint; Lambda protocol requires Lambda function ARN.
  2. Step 2: Configure two subscriptions correctly

    Create one subscription with protocol 'sms' and phone number endpoint, and another with protocol 'lambda' and Lambda ARN endpoint.
  3. Final Answer:

    Create one subscription with protocol 'sms' and endpoint as phone number, and another with protocol 'lambda' and endpoint as Lambda ARN. -> Option B
  4. Quick Check:

    Match protocol to correct endpoint type [OK]
Hint: Match SMS to phone number, Lambda to function ARN [OK]
Common Mistakes:
  • Mixing endpoints and protocols
  • Using email protocol for SMS
  • Assigning Lambda ARN as SMS endpoint
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard