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.17.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce20d3b339d816ac25024b26118901f352cf7849dfea02db9b66f36b44a2dc69 |
|
MD5 | a67324748a7f52e95a03350135957e1d |
|
BLAKE2b-256 | 3d23feee6960ffc65b77c072ea77e6836f96851254c5ccc6dbe6db7bc3bebe12 |
Close
Hashes for aws_solutions_constructs.aws_apigateway_sqs-2.17.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c64aec90678f45c6661bae5423b878670bf6f194de6df0de4a0b487751020e00 |
|
MD5 | 18b510b8906c1c541b4d6dc7e18c35ef |
|
BLAKE2b-256 | 3470e6e7ec7deb708c326996ed3ab9b72d49cb581ad81132784984f002922a02 |