CDK Constructs for AWS API Gateway and Amazon Kinesis Data Streams integration.
Project description
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. |
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. |
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. |
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.
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-kinesisstreams-2.58.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c42562d7d121fe9ea9d02a6fd0dfe1a1024753404bfa1affb3e0b051a08cfc6b |
|
MD5 | a6e2362845ae6d7a77ca1c96411f8e89 |
|
BLAKE2b-256 | 34db2ee4b92822f4e961f235a1bbdead45b2f239a430b62270d75cc2d8828fe9 |
Close
Hashes for aws_solutions_constructs.aws_apigateway_kinesisstreams-2.58.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9048a321eaddaab2ba9a109035e37c7da2d4e736fa1243872a4fcb63d6149e7c |
|
MD5 | d4e06e6bead00e499e4cd34ee546c4e7 |
|
BLAKE2b-256 | 88f0605739e641cd94dfadd749fd4365941a9a82447f47c19f194720f590b6b5 |