awssolutionsconstructsawskinesisstreamslambda

package module
v2.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 1, 2022 License: Apache-2.0 Imports: 9 Imported by: 0

README

aws-kinesisstreams-lambda module



Reference Documentation: https://docs.aws.amazon.com/solutions/latest/constructs/
Language Package
Python Logo Python aws_solutions_constructs.aws-kinesis-streams-lambda
Typescript Logo Typescript @aws-solutions-constructs/aws-kinesisstreams-lambda
Java Logo Java software.amazon.awsconstructs.services.kinesisstreamslambda

This AWS Solutions Construct deploys a Kinesis Stream and Lambda function with the appropriate resources/properties for interaction and security.

Here is a minimal deployable pattern definition in Typescript:

const { KinesisStreamsToLambda } from '@aws-solutions-constructs/aws-kinesisstreams-lambda';

new KinesisStreamsToLambda(this, 'KinesisToLambdaPattern', {
    kinesisEventSourceProps: {
        startingPosition: lambda.StartingPosition.TRIM_HORIZON,
        batchSize: 1
    },
    lambdaFunctionProps: {
        runtime: lambda.Runtime.NODEJS_14_X,
        handler: 'index.handler',
        code: lambda.Code.fromAsset(`${__dirname}/lambda`)
    }
});

Initializer

new KinesisStreamsToLambda(scope: Construct, id: string, props: KinesisStreamsToLambdaProps);

Parameters

Pattern Construct Props

Name Type Description
existingLambdaObj? lambda.Function Existing instance of Lambda Function object, providing both this and lambdaFunctionProps will cause an error.
lambdaFunctionProps? lambda.FunctionProps User provided props to override the default props for the Lambda function.
kinesisStreamProps? kinesis.StreamProps Optional user-provided props to override the default props for the Kinesis stream.
existingStreamObj? kinesis.Stream Existing instance of Kinesis Stream, providing both this and kinesisStreamProps will cause an error.
kinesisEventSourceProps? aws-lambda-event-sources.KinesisEventSourceProps Optional user-provided props to override the default props for the Lambda event source mapping.
createCloudWatchAlarms boolean Whether to create recommended CloudWatch alarms

Pattern Properties

Name Type Description
kinesisStream kinesis.Stream Returns an instance of the Kinesis stream created by the pattern.
lambdaFunction lambda.Function Returns an instance of the Lambda function created by the pattern.
kinesisStreamRole iam.Role Returns an instance of the iam.Role created by the construct for Kinesis stream.
cloudwatchAlarms? cloudwatch.Alarm[] Returns a list of cloudwatch.Alarm created by the construct

Default settings

Out of the box implementation of the Construct without any override will set the following defaults:

Amazon Kinesis Stream
  • Configure least privilege access IAM role for Kinesis Stream
  • Enable server-side encryption for Kinesis Stream using AWS Managed KMS Key
  • Deploy best practices CloudWatch Alarms for the Kinesis Stream
AWS Lambda Function
  • Configure limited privilege access IAM role for Lambda function
  • Enable reusing connections with Keep-Alive for NodeJs Lambda function
  • Enable X-Ray Tracing
  • Enable Failure-Handling features like enable bisect on function Error, set defaults for Maximum Record Age (24 hours) & Maximum Retry Attempts (500) and deploy SQS dead-letter queue as destination on failure
  • Set Environment Variables
    • AWS_NODEJS_CONNECTION_REUSE_ENABLED (for Node 10.x and higher functions)

Architecture

Architecture Diagram


© Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.

Documentation

Overview

CDK constructs for defining an interaction between an Amazon Kinesis Data Stream and an AWS Lambda function.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func KinesisStreamsToLambda_IsConstruct

func KinesisStreamsToLambda_IsConstruct(x interface{}) *bool

Checks if `x` is a construct.

Returns: true if `x` is an object created from a class which extends `Construct`. Deprecated: use `x instanceof Construct` instead

func NewKinesisStreamsToLambda_Override

func NewKinesisStreamsToLambda_Override(k KinesisStreamsToLambda, scope constructs.Construct, id *string, props *KinesisStreamsToLambdaProps)

Types

type KinesisStreamsToLambda

type KinesisStreamsToLambda interface {
	constructs.Construct
	CloudwatchAlarms() *[]awscloudwatch.Alarm
	KinesisStream() awskinesis.Stream
	LambdaFunction() awslambda.Function
	Node() constructs.Node
	ToString() *string
}

func NewKinesisStreamsToLambda

func NewKinesisStreamsToLambda(scope constructs.Construct, id *string, props *KinesisStreamsToLambdaProps) KinesisStreamsToLambda

type KinesisStreamsToLambdaProps

type KinesisStreamsToLambdaProps struct {
	// Whether to create recommended CloudWatch alarms.
	CreateCloudWatchAlarms *bool `json:"createCloudWatchAlarms"`
	// Whether to deploy a SQS dead letter queue when a data record reaches the Maximum Retry Attempts or Maximum Record Age, its metadata like shard ID and stream ARN will be sent to an SQS queue.
	DeploySqsDlqQueue *bool `json:"deploySqsDlqQueue"`
	// Existing instance of Lambda Function object, providing both this and `lambdaFunctionProps` will cause an error.
	ExistingLambdaObj awslambda.Function `json:"existingLambdaObj"`
	// Existing instance of Kinesis Stream, providing both this and `kinesisStreamProps` will cause an error.
	ExistingStreamObj awskinesis.Stream `json:"existingStreamObj"`
	// Optional user-provided props to override the default props for the Lambda event source mapping.
	KinesisEventSourceProps interface{} `json:"kinesisEventSourceProps"`
	// Optional user-provided props to override the default props for the Kinesis stream.
	KinesisStreamProps *awskinesis.StreamProps `json:"kinesisStreamProps"`
	// User provided props to override the default props for the Lambda function.
	LambdaFunctionProps *awslambda.FunctionProps `json:"lambdaFunctionProps"`
	// Optional user provided properties for the SQS dead letter queue.
	SqsDlqQueueProps *awssqs.QueueProps `json:"sqsDlqQueueProps"`
}

The properties for the KinesisStreamsToLambda class.

Directories

Path Synopsis
Package jsii contains the functionaility needed for jsii packages to initialize their dependencies and themselves.
Package jsii contains the functionaility needed for jsii packages to initialize their dependencies and themselves.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL