Skip to main content

CDK Constructs for AWS S3 to AWS Lambda integration

Project description

aws-s3-lambda module

---

Stability: Stable


Reference Documentation: https://docs.aws.amazon.com/solutions/latest/constructs/
Language Package
Python Logo Python aws_solutions_constructs.aws_s3_lambda
Typescript Logo Typescript @aws-solutions-constructs/aws-s3-lambda
Java Logo Java software.amazon.awsconstructs.services.s3lambda

This AWS Solutions Construct implements an Amazon S3 bucket connected to an AWS Lambda function.

Here is a minimal deployable pattern definition in Typescript:

# Example automatically generated from non-compiling source. May contain errors.
import { S3ToLambdaProps, S3ToLambda } from '@aws-solutions-constructs/aws-s3-lambda';

new S3ToLambda(this, 'test-s3-lambda', {
    lambdaFunctionProps: {
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        runtime: lambda.Runtime.NODEJS_12_X,
        handler: 'index.handler'
    },
});

Initializer

new S3ToLambda(scope: Construct, id: string, props: S3ToLambdaProps);

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 Optional user provided props to override the default props for the Lambda function.
existingBucketObj? s3.Bucket Existing instance of S3 Bucket object. If this is provided, then also providing bucketProps is an error.
bucketProps? s3.BucketProps Optional user provided props to override the default props for the S3 Bucket.
s3EventSourceProps? S3EventSourceProps Optional user provided props to override the default props for S3EventSourceProps
loggingBucketProps? s3.BucketProps Optional user provided props to override the default props for the S3 Logging Bucket.
logS3AccessLogs? boolean Whether to turn on Access Logging for the S3 bucket. Creates an S3 bucket with associated storage costs for the logs. Enabling Access Logging is a best practice. default - true

Pattern Properties

Name Type Description
lambdaFunction lambda.Function Returns an instance of the lambda.Function created by the construct
s3Bucket? s3.Bucket Returns an instance of the s3.Bucket created by the construct
s3LoggingBucket? s3.Bucket Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary bucket.
s3BucketInterface s3.IBucket Returns an instance of s3.IBucket created by the construct

Default settings

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

Amazon S3 Bucket

  • Configure Access logging for S3 Bucket
  • Enable server-side encryption for S3 Bucket using AWS managed KMS Key
  • Enforce encryption of data in transit
  • Turn on the versioning for S3 Bucket
  • Don't allow public access for S3 Bucket
  • Retain the S3 Bucket when deleting the CloudFormation stack
  • Applies Lifecycle rule to move noncurrent object versions to Glacier storage after 90 days

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

  • 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.

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

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file aws-solutions-constructs.aws-s3-lambda-1.136.0.tar.gz.

File metadata

  • Download URL: aws-solutions-constructs.aws-s3-lambda-1.136.0.tar.gz
  • Upload date:
  • Size: 97.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.8.3 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.6.5

File hashes

Hashes for aws-solutions-constructs.aws-s3-lambda-1.136.0.tar.gz
Algorithm Hash digest
SHA256 2a6a221f495983fa7a2a9d01c43d5608ffb786cae99ddd016ae90184f74edf9f
MD5 677f8cdfb377cab6d4f82ae171802e7e
BLAKE2b-256 3042838747dad8774652d5c74578668d4d3c9d8477507b8c9eb51b499cee3fba

See more details on using hashes here.

File details

Details for the file aws_solutions_constructs.aws_s3_lambda-1.136.0-py3-none-any.whl.

File metadata

File hashes

Hashes for aws_solutions_constructs.aws_s3_lambda-1.136.0-py3-none-any.whl
Algorithm Hash digest
SHA256 42f0a542268c13841cb0a2568b463a1c8664e3b23586c811a2ab863f5dc91560
MD5 d41cb3e857b7b8cc12b1ace298c8c125
BLAKE2b-256 c57ff604d4a374253281246ff3cf5c40d494256d73c9270c17a4a1bf20dd259e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page