Package: aws-solutions-constructs.aws-apigateway-sqs
aws-apigateway-sqs module---Reference Documentation:https://docs.aws.amazon.com/solutions/latest/constructs/LanguagePackagePythonaws_solutions_constructs.aws_apigateway_sqsTypescript@aws-solutions-constructs/aws-apigateway-sqsJavasoftware.amazon.awsconstructs.services.apigatewaysqsOverviewThis AWS Solutions Construct implements an Amazon API Gateway connected to an Amazon SQS queue pattern.Here is a minimal deployable pattern definition:Typescriptimport{Construct}from'constructs';import{Stack,StackProps}from'aws-cdk-lib';import{ApiGatewayToSqs,ApiGatewayToSqsProps}from"@aws-solutions-constructs/aws-apigateway-sqs";newApiGatewayToSqs(this,'ApiGatewayToSqsPattern',{});Pythonfromaws_solutions_constructs.aws_apigateway_sqsimportApiGatewayToSqsfromaws_cdkimportStackfromconstructsimportConstructApiGatewayToSqs(self,'ApiGatewayToSqsPattern')Javaimportsoftware.constructs.Construct;importsoftware.amazon.awscdk.Stack;importsoftware.amazon.awscdk.StackProps;importsoftware.amazon.awsconstructs.services.apigatewaysqs.*;newApiGatewayToSqs(this,"ApiGatewayToSqsPattern",newApiGatewayToSqsProps.Builder().build());Pattern Construct PropsNameTypeDescriptionapiGatewayProps?api.RestApiPropsOptional user-provided props to override the default props for the API Gateway.queueProps?sqs.QueuePropsOptional user-provided props to override the default props for the queue.deployDeadLetterQueue?booleanWhether to deploy a secondary queue to be used as a dead letter queue. Defaults totrue.maxReceiveCountnumberThe number of times a message can be unsuccessfully dequeued before being moved to the dead-letter queue.allowCreateOperation?booleanWhether to deploy an API Gateway Method for POST HTTP operations on the queue (i.e. sqs:SendMessage).createRequestTemplate?stringAPI Gateway Request Template for the create method for the defaultapplication/jsoncontent-type. This property is required if theallowCreateOperationproperty is set to true.additionalCreateRequestTemplates?{ [contentType: string]: string; }Optional Create Request Templates for content-types other thanapplication/json. Use thecreateRequestTemplateproperty to set the request template for theapplication/jsoncontent-type. This property can only be specified if theallowCreateOperationproperty is set to true.createIntegrationResponses?api.IntegrationResponses[]Optional, custom API Gateway Integration Response for the create method. This property can only be specified if theallowCreateOperationproperty is set to true.allowReadOperation?booleanWhether to deploy an API Gateway Method for GET HTTP operations on the queue (i.e. sqs:ReceiveMessage).readRequestTemplate?stringAPI Gateway Request Template for the read method for the defaultapplication/jsoncontent-type.additionalReadRequestTemplates?{ [contentType: string]: string; }Optional Read Request Templates for content-types other thanapplication/json. Use thereadRequestTemplateproperty to set the request template for theapplication/jsoncontent-type.readIntegrationResponses?api.IntegrationResponses[]Optional, custom API Gateway Integration Response for the read method.allowDeleteOperation?booleanWhether to deploy an API Gateway Method for HTTP DELETE operations on the queue (i.e. sqs:DeleteMessage).deleteRequestTemplate?stringAPI Gateway Request Template for THE delete method for the defaultapplication/jsoncontent-type. This property can only be specified if theallowDeleteOperationproperty is set to true.additionalDeleteRequestTemplates?{ [contentType: string]: string; }Optional Delete request templates for content-types other thanapplication/json. Use thedeleteRequestTemplateproperty to set the request template for theapplication/jsoncontent-type. This property can only be specified if theallowDeleteOperationproperty is set to true.deleteIntegrationResponses?api.IntegrationResponses[]Optional, custom API Gateway Integration Response for the delete method. This property can only be specified if theallowDeleteOperationproperty is set to true.logGroupProps?logs.LogGroupPropsUser provided props to override the default props for for the CloudWatchLogs LogGroup.enableEncryptionWithCustomerManagedKey?booleanIf no key is provided, this flag determines whether the queue is encrypted with a new CMK or an AWS managed key. This flag is ignored if any of the following are defined: queueProps.encryptionMasterKey, encryptionKey or encryptionKeyProps.encryptionKey?kms.KeyAn optional, imported encryption key to encrypt the SQS Queue with.encryptionKeyProps?kms.KeyPropsOptional user provided properties to override the default properties for the KMS encryption key used to encrypt the SQS queue with.Pattern PropertiesNameTypeDescriptionapiGatewayapi.RestApiReturns an instance of the API Gateway REST API created by the pattern.apiGatewayRoleiam.RoleReturns an instance of the iam.Role created by the construct for API Gateway.apiGatewayCloudWatchRole?iam.RoleReturns an instance of the iam.Role created by the construct for API Gateway for CloudWatch access.apiGatewayLogGrouplogs.LogGroupReturns an instance of the LogGroup created by the construct for API Gateway access logging to CloudWatch.sqsQueuesqs.QueueReturns an instance of the SQS queue created by the pattern.deadLetterQueue?sqs.DeadLetterQueueReturns an instance of the DeadLetterQueue created by the pattern.Sample API UsageMethodRequest PathRequest BodyQueue ActionDescriptionGET/sqs::ReceiveMessageRetrieves a message from the queue.POST/{ "data": "Hello World!" }sqs::SendMessageDelivers a message to the queue.DELETE/message?receiptHandle=[value]sqs::DeleteMessageDeletes a specified message from the queueAPI Gateway Request/Response Template Properties OverviewThis construct allows you to implement four DynamoDB API operations, CREATE/READ/DELETE (corresponding the HTTP POST/GET/DELETE requests respectively). They are completely independent and each follows the same pattern:SettingallowCreateOperationto true will implement theapplication/jsoncontent-type with default request and response templatesThe request template forapplication/jsonrequests can be customized using thecreateRequestTemplateprop valueAdditionalrequest templates can be specified using theadditionalCreateRequestTemplatesprop value. Note - these DO NOT replace theapplication/jsoncontent-typeCustomized integration responses can be specified for any content type in thecreateIntegrationResponsesprop value.Supplying any of these values without setting allowCreateOperation to true will result in an error. This pattern is the same for all four API operations.Default settingsOut of the box implementation of the Construct without any override will set the following defaults:Amazon API GatewayDeploy an edge-optimized API endpointEnable CloudWatch logging for API GatewayConfigure least privilege access IAM role for API GatewaySet the default authorizationType for all API methods to IAMEnable X-Ray TracingAmazon SQS QueueDeploy SQS dead-letter queue for the source SQS QueueEnable server-side encryption for source SQS Queue using AWS Managed KMS KeyEnforce encryption of data in transitArchitecture© Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.