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-1.163.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3afc0e386d970fcf4afda504203b7c00418d2168ac64e8159542322cb8a1dd7a |
|
MD5 | 4c8d8b14fdebb3f34875e456a5aaefc4 |
|
BLAKE2b-256 | 400293c3b9a940f17fc48f58d31e491b0af2a1b26a1187f4eb98e562cc61ae0c |
Close
Hashes for aws_solutions_constructs.aws_apigateway_sqs-1.163.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8de0788d2cfba2a147b3f00eccbe2180c586c08978a19e9c82392b764bc01f2d |
|
MD5 | 67e3e22e8b6552bbca20daebd44ad57a |
|
BLAKE2b-256 | cc840d41f493bf0504b4b9d183be49bb4692f1e5a714e07ed16a501b4e4992f1 |