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

9 Mẹo lập trình Web “ẩn mình” giúp tiết kiệm hàng giờ đồng hồ

Hầu hết các lập trình viên (kể cả những người giỏi) đều tốn thời gian x

Can GPT-4o Generate Images? All You Need to Know about GPT-4o-image

OpenAI‘s GPT-4o, introduced on March 25, 2025, has revolutionized the way we create visual con

Khi nào nên dùng main, section, article, header, footer, và aside trong HTML5

HTML5 đã giới thiệu các thẻ ngữ nghĩa giúp cấu trúc nội dung web một cách có

So sánh Webhook và API: Khi nào nên sử dụng?

Trong lĩnh vực công nghệ thông tin và phát triển phần mềm, Webhook và API là hai th