@aws-solutions-constructs/aws-apigateway-kinesisstreams v2.85.2
aws-apigateway-kinesisstreams module
| Reference Documentation: | https://docs.aws.amazon.com/solutions/latest/constructs/ |
|---|
| Language | Package |
|---|---|
Python | aws_solutions_constructs.aws_apigateway_kinesisstreams |
Typescript | @aws-solutions-constructs/aws-apigateway-kinesisstreams |
Java | software.amazon.awsconstructs.services.apigatewaykinesisstreams |
Overview
This AWS Solutions Construct implements an Amazon API Gateway connected to an Amazon Kinesis Data Stream pattern.
Here is a minimal deployable pattern definition:
Typescript
import { Construct } from 'constructs';
import { Stack, StackProps } from 'aws-cdk-lib';
import { ApiGatewayToKinesisStreams, ApiGatewayToKinesisStreamsProps } from '@aws-solutions-constructs/aws-apigateway-kinesisstreams';
new ApiGatewayToKinesisStreams(this, 'test-apigw-kinesis', {});Python
from aws_solutions_constructs.aws_apigateway_kinesisstreams import ApiGatewayToKinesisStreams
from aws_cdk import Stack
from constructs import Construct
ApiGatewayToKinesisStreams(self, 'test-apigw-kinesis')Java
import software.constructs.Construct;
import software.amazon.awscdk.Stack;
import software.amazon.awscdk.StackProps;
import software.amazon.awsconstructs.services.apigatewaykinesisstreams.*;
new ApiGatewayToKinesisStreams(this, "test-apigw-kinesis", new ApiGatewayToKinesisStreamsProps.Builder()
.build());Pattern Construct Props
| Name | Type | Description |
|---|---|---|
| apiGatewayProps? | api.RestApiProps | Optional user-provided props to override the default props for the API Gateway. |
| putRecordRequestTemplate? | string | API Gateway request template for the PutRecord action. If not provided, a default one will be used. |
| createUsagePlan? | boolean | Whether to create a Usage Plan attached to the API. Must be true if apiGatewayProps.defaultMethodOptions.apiKeyRequired is true. @default - true (to match legacy behavior) |
| additionalPutRecordRequestTemplates? | { [contentType: string]: string; } | Optional PutRecord Request Templates for content-types other than application/json. Use the putRecordRequestTemplate property to set the request template for the application/json content-type. |
| putRecordRequestModel? | api.ModelOptions | API Gateway request model for the PutRecord action. If not provided, a default one will be created. |
| putRecordIntegrationResponses? | api.IntegrationResponses[] | Optional, custom API Gateway Integration Response for the PutRecord action. |
| putRecordMethodResponses? | api.MethodResponses[] | Optional, custom API Gateway Method Responses for the putRecord action. default: { statusCode: "200", responseParameters: { "method.response.header.Content-Type": true }},{ statusCode: "500", responseParameters: { "method.response.header.Content-Type": true } } |
| putRecordsRequestTemplate? | string | API Gateway request template for the PutRecords action. If not provided, a default one will be used. |
| additionalPutRecordsRequestTemplates? | { [contentType: string]: string; } | Optional PutRecords Request Templates for content-types other than application/json. Use the putRecordsRequestTemplate property to set the request template for the application/json content-type. |
| putRecordsRequestModel? | api.ModelOptions | API Gateway request model for the PutRecords action. If not provided, a default one will be created. |
| putRecordsIntegrationResponses? | api.IntegrationResponses[] | Optional, custom API Gateway Integration Response for the PutRecords action. |
| putRecordsMethodResponses? | api.MethodResponses[] | Optional, custom API Gateway Method Responses for the putRecords action. default: { statusCode: "200", responseParameters: { "method.response.header.Content-Type": true }},{ statusCode: "500", responseParameters: { "method.response.header.Content-Type": true } } |
| existingStreamObj? | kinesis.Stream | Existing instance of Kinesis Stream, providing both this and kinesisStreamProps will cause an error. |
| kinesisStreamProps? | kinesis.StreamProps | Optional user-provided props to override the default props for the Kinesis stream. |
| logGroupProps? | logs.LogGroupProps | User provided props to override the default props for for the CloudWatchLogs LogGroup. |
| createCloudWatchAlarms | boolean | Whether to create recommended CloudWatch alarms for Kinesis Data Stream. Default value is set to true |
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. |
| kinesisStream | kinesis.Stream | Returns an instance of the Kinesis stream created or used by the pattern. |
| cloudwatchAlarms? | cloudwatch.Alarm[] | Returns an array of recommended CloudWatch Alarms created by the construct for Kinesis Data stream |
Sample API Usage
| Method | Request Path | Request Body | Stream Action | Description |
|---|---|---|---|---|
| POST | /record | { "data": "Hello World!", "partitionKey": "pk001" } | kinesis:PutRecord | Writes a single data record into the stream. |
| POST | /records | { "records": [{ "data": "abc", "partitionKey": "pk001" }, { "data": "xyz", "partitionKey": "pk001" }] } | kinesis:PutRecords | Writes multiple data records into the stream in a single call. |
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
- Validate request body before passing data to Kinesis
Amazon Kinesis Data Stream
- Configure least privilege access IAM role for Kinesis Stream
- Enable server-side encryption for Kinesis Stream using AWS Managed KMS Key
Architecture

© Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
11 months ago
12 months ago
12 months ago
11 months ago
1 year ago
12 months ago
12 months ago
1 year ago
12 months ago
1 year ago
1 year ago
1 year ago
10 months ago
10 months ago
10 months ago
11 months ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
3 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
3 years ago
4 years ago
4 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
Python
Typescript
Java