Skip to content

Files

Latest commit

1f55f95 · Aug 10, 2022

History

History
This branch is 3522 commits behind aws-samples/serverless-patterns:main.

apigw-lambda-sns

Integration of Amazon API Gateway REST API with Amazon Lambda and Amazon SNS

The SAM template deploys a API Gateway REST API with Lambda function integration, an SNS topic and the IAM permissions required to run the application. Whenever the REST API is invoked, the Lambda function publishes a message to the SNS topic. The AWS SAM template deploys the resources and the IAM permissions required to run the application.

Learn more about this pattern at Serverless Land Patterns: https://serverlessland.com/patterns/apigw-lambda-sns/.

Important: this application uses various AWS services and there are costs associated with these services after the Free Tier usage - please see the AWS Pricing page for details. You are responsible for any AWS costs incurred. No warranty is implied in this example.

Requirements

Deployment Instructions

  1. Create a new directory, navigate to that directory in a terminal and clone the GitHub repository:

    git clone https://github.com/aws-samples/serverless-patterns
    
  2. Change directory to the pattern directory:

    cd apigw-lambda-sns
    
  3. From the command line, use AWS SAM to deploy the AWS resources for the pattern as specified in the template.yaml file:

    sam deploy --guided
    
  4. During the prompts:

      * Enter a stack name
      * Enter the desired AWS Region
      * Allow SAM CLI to create IAM roles with the required permissions.
    

    Once you have run sam deploy -guided mode once and saved arguments to a configuration file (samconfig.toml), you can use sam deploy in future to use these defaults.

  5. Note the outputs from the SAM deployment process. These contain the resource names and/or ARNs which are used for testing.

Testing

The stack will output the api endpoint. You can use Postman or curl to send a GET request to the API Gateway endpoint.

curl --location --request GET 'https://<api_id>.execute-api.<region>.amazonaws.com/s1'

In order to receive a notification, please make sure to configure subscription in the SNS topic.

Cleanup

  1. Delete the stack
    aws cloudformation delete-stack —stack-name STACK_NAME
    
  2. Confirm the stack has been deleted
    aws cloudformation list-stacks —query "StackSummaries[?contains(StackName,'STACK_NAME')].StackStatus"
    

Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.

SPDX-License-Identifier: MIT-0