Amazon API Gateway HTTP API to AWS Simple Queue Service (SQS) to Lambda

This pattern creates an Amazon API Gateway HTTP API with a send route that send message to a SQS queue. The Amazon API Gateway HTTP API has basic CORS configured. Upon receiving message, SQS will trigger a Lambda function to process the message. The function will only print the message only. The function written in

This pattern creates an Amazon API Gateway HTTP API with a send route that send message to a SQS queue. The Amazon API Gateway HTTP API has basic CORS configured. Upon receiving message, SQS will trigger a Lambda function to process the message. The function will only print the message only. The function written in Python.

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

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-http-api-sqs-lambda-cdk
    
  3. Create virtualenv

    python3 -m venv .venv
    
  4. Activate your virtualenv.

    source .venv/bin/activate
    
  5. Once the virtualenv is activated, you can install the required dependencies.

    pip install -r requirements.txt
    
  6. At this point you can now synthesize the CloudFormation template for this code.

    cdk synth
    

    Useful CDK commands

    • cdk ls list all stacks in the app
    • cdk synth emits the synthesized CloudFormation template
    • cdk deploy deploy this stack to your default AWS account/region
    • cdk diff compare deployed stack with current state
    • cdk docs open CDK documentation
  7. Deploy CDK stack

    cdk deploy
    

How it works

The API Gateway handles the incoming API requests and send the $request.body.MessageBody as a message to SQS queue. A Lambda function will be trigger upon the message arraived.

Testing

Running following cURL command to agaist the HTTP API Endpoint

curl -XPOST https://${HTTP_API_ENDPOOINT}/send -d'{"MessageBody":"hello"}'

Expected result

<?xml version="1.0"?><SendMessageResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/">
    <SendMessageResult>
        <MessageId>xxxxxx</MessageId>
        <MD5OfMessageBody>xxxxxx</MD5OfMessageBody>
    </SendMessageResult>
    <ResponseMetadata>
        <RequestId>xxxx</RequestId>
    </ResponseMetadata>
</SendMessageResponse>

Cleanup

cdk destroy

Nguồn: viblo.asia

Bài viết liên quan

Cấu hình Prisma v7 Với Nest.js Mới nhất

Setup Prisma v7 trong Nest.js Bài viết dành cho ai mới học Nest.js và chọn prisma làm OR

Tấn Công Ứng Dụng Web: Mối Đe Dọa Hàng Đầu – Phần 2

viết lại nội dung này ” Phát hiện các cuộc tấn công Cross Site Scripting (XSS)

AI Chatbot 2025: Xu Hướng Tất Yếu Cho Doanh Nghiệp Dẫn Đầu

Giới thiệu AI chatbots đã trải qua một hành trình đáng kể, từ những công cụ t

Tấn Công Ứng Dụng Web: Mối Đe Dọa Hàng Đầu – Phần 1

Tấn công web là gì? Ứng dụng web là các ứng dụng cung cấp dịch vụ cho người