CDK constructs for defining an interaction between an AWS Lambda function and an Amazon S3 bucket.
Project description
aws-apigateway-sqs module
---Reference Documentation: | https://docs.aws.amazon.com/solutions/latest/constructs/ |
---|
Language | Package |
---|---|
Python | aws_solutions_constructs.aws_apigateway_sqs |
Typescript | @aws-solutions-constructs/aws-apigateway-sqs |
Java | software.amazon.awsconstructs.services.apigatewaysqs |
Overview
This AWS Solutions Construct implements an Amazon API Gateway connected to an Amazon SQS queue pattern.
Here is a minimal deployable pattern definition:
Typescript
import { Construct } from 'constructs';
import { Stack, StackProps } from 'aws-cdk-lib';
import { ApiGatewayToSqs, ApiGatewayToSqsProps } from "@aws-solutions-constructs/aws-apigateway-sqs";
new ApiGatewayToSqs(this, 'ApiGatewayToSqsPattern', {});
Python
from aws_solutions_constructs.aws_apigateway_sqs import ApiGatewayToSqs
from aws_cdk import Stack
from constructs import Construct
ApiGatewayToSqs(self, 'ApiGatewayToSqsPattern')
Java
import software.constructs.Construct;
import software.amazon.awscdk.Stack;
import software.amazon.awscdk.StackProps;
import software.amazon.awsconstructs.services.apigatewaysqs.*;
new ApiGatewayToSqs(this, "ApiGatewayToSqsPattern", new ApiGatewayToSqsProps.Builder()
.build());
Pattern Construct Props
Name | Type | Description |
---|---|---|
apiGatewayProps? | api.RestApiProps |
Optional user-provided props to override the default props for the API Gateway. |
queueProps? | sqs.QueueProps |
Optional user-provided props to override the default props for the queue. |
deployDeadLetterQueue? | boolean |
Whether to deploy a secondary queue to be used as a dead letter queue. Defaults to true . |
maxReceiveCount | number |
The number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue. |
allowCreateOperation? | boolean |
Whether to deploy an API Gateway Method for Create operations on the queue (i.e. sqs:SendMessage). |
createRequestTemplate? | string |
Override the default API Gateway Request template for Create method, if allowCreateOperation set to true. |
allowReadOperation? | boolean |
Whether to deploy an API Gateway Method for Read operations on the queue (i.e. sqs:ReceiveMessage). |
readRequestTemplate? | string |
Override the default API Gateway Request template for Read method, if allowReadOperation set to true. |
allowDeleteOperation? | boolean |
Whether to deploy an API Gateway Method for Delete operations on the queue (i.e. sqs:DeleteMessage). |
deleteRequestTemplate? | string |
Override the default API Gateway Request template for Delete method, if allowDeleteOperation set to true. |
logGroupProps? | logs.LogGroupProps |
User provided props to override the default props for for the CloudWatchLogs LogGroup. |
Pattern Properties
Name | Type | Description |
---|---|---|
apiGateway | api.RestApi |
Returns an instance of the API Gateway REST API created by the pattern. |
apiGatewayRole | iam.Role |
Returns an instance of the iam.Role created by the construct for API Gateway. |
apiGatewayCloudWatchRole? | iam.Role |
Returns an instance of the iam.Role created by the construct for API Gateway for CloudWatch access. |
apiGatewayLogGroup | logs.LogGroup |
Returns an instance of the LogGroup created by the construct for API Gateway access logging to CloudWatch. |
sqsQueue | sqs.Queue |
Returns an instance of the SQS queue created by the pattern. |
deadLetterQueue? | sqs.DeadLetterQueue |
Returns an instance of the DeadLetterQueue created by the pattern. |
Sample API Usage
Method | Request Path | Request Body | Queue Action | Description |
---|---|---|---|---|
GET | / |
sqs::ReceiveMessage |
Retrieves a message from the queue. | |
POST | / |
{ "data": "Hello World!" } |
sqs::SendMessage |
Delivers a message to the queue. |
DELETE | /message?receiptHandle=[value] |
sqs::DeleteMessage |
Deletes a specified message from the queue |
Default settings
Out of the box implementation of the Construct without any override will set the following defaults:
Amazon API Gateway
- Deploy an edge-optimized API endpoint
- Enable CloudWatch logging for API Gateway
- Configure least privilege access IAM role for API Gateway
- Set the default authorizationType for all API methods to IAM
- Enable X-Ray Tracing
Amazon SQS Queue
- Deploy SQS dead-letter queue for the source SQS Queue
- Enable server-side encryption for source SQS Queue using AWS Managed KMS Key
- Enforce encryption of data in transit
Architecture
© Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for aws-solutions-constructs.aws-apigateway-sqs-2.14.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb723bf6478c47df84f910641372a2637c743fd2a4635fa115b3106d361de94c |
|
MD5 | 48785a1d56efad2d364039d880ca77e7 |
|
BLAKE2b-256 | bb26fd521aa758787a15f5fa20603512d706fb4189fdbcc6fa993731f231af32 |
Close
Hashes for aws_solutions_constructs.aws_apigateway_sqs-2.14.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50f0cb468d7c3cefd0f7ecbd72ad3f6b9ce983a0f94bc9ac76b76526b93cfd63 |
|
MD5 | d337238086a2a7c8baa208412b002765 |
|
BLAKE2b-256 | 2ce2ac99121a5f8fa13fcdefa351dbf8c79eb7fd1be9013a2dd3de32fd6efa08 |