awssolutionsconstructsawscloudfrontapigatewaylambda

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: 11 Imported by: 0

README

aws-cloudfront-apigateway-lambda module



Reference Documentation: https://docs.aws.amazon.com/solutions/latest/constructs/
Language Package
Python Logo Python aws_solutions_constructs.aws_cloudfront_apigateway_lambda
Typescript Logo Typescript @aws-solutions-constructs/aws-cloudfront-apigateway-lambda
Java Logo Java software.amazon.awsconstructs.services.cloudfrontapigatewaylambda

This AWS Solutions Construct implements an AWS CloudFront fronting an Amazon API Gateway Lambda backed REST API.

Here is a minimal deployable pattern definition in Typescript:

import { CloudFrontToApiGatewayToLambda } from '@aws-solutions-constructs/aws-cloudfront-apigateway-lambda';

new CloudFrontToApiGatewayToLambda(this, 'test-cloudfront-apigateway-lambda', {
    lambdaFunctionProps: {
        code: lambda.Code.fromAsset(`${__dirname}/lambda`),
        runtime: lambda.Runtime.NODEJS_14_X,
        handler: 'index.handler'
    }
});

Initializer

new CloudFrontToApiGatewayToLambda(scope: Construct, id: string, props: CloudFrontToApiGatewayToLambdaProps);

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.
apiGatewayProps? api.LambdaRestApiProps Optional user provided props to override the default props for API Gateway
cloudFrontDistributionProps? cloudfront.DistributionProps Optional user provided props to override the default props for CloudFront Distribution
insertHttpSecurityHeaders? boolean Optional user provided props to turn on/off the automatic injection of best practice HTTP security headers in all responses from CloudFront
logGroupProps? logs.LogGroupProps Optional user provided props to override the default props for for the CloudWatchLogs LogGroup.
cloudFrontLoggingBucketProps? s3.BucketProps Optional user provided props to override the default props for the CloudFront Logging Bucket.

Pattern Properties

Name Type Description
cloudFrontWebDistribution cloudfront.CloudFrontWebDistribution Returns an instance of cloudfront.CloudFrontWebDistribution created by the construct
cloudFrontFunction? cloudfront.Function Returns an instance of the Cloudfront function created by the pattern.
cloudFrontLoggingBucket s3.Bucket Returns an instance of the logging bucket for CloudFront WebDistribution.
apiGateway api.RestApi Returns an instance of the API Gateway REST API created by the pattern.
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.
lambdaFunction lambda.Function Returns an instance of the Lambda function created by the pattern.

Default settings

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

Amazon CloudFront
  • Configure Access logging for CloudFront WebDistribution
  • Enable automatic injection of best practice HTTP security headers in all responses from CloudFront WebDistribution
Amazon API Gateway
  • Deploy a regional 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 NONE
  • Enable X-Ray Tracing
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.

Documentation

Overview

CDK Constructs for AWS Cloudfront to AWS API Gateway to AWS Lambda integration.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CloudFrontToApiGatewayToLambda_IsConstruct

func CloudFrontToApiGatewayToLambda_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 NewCloudFrontToApiGatewayToLambda_Override

func NewCloudFrontToApiGatewayToLambda_Override(c CloudFrontToApiGatewayToLambda, scope constructs.Construct, id *string, props *CloudFrontToApiGatewayToLambdaProps)

Types

type CloudFrontToApiGatewayToLambda

type CloudFrontToApiGatewayToLambda interface {
	constructs.Construct
	ApiGateway() awsapigateway.RestApi
	ApiGatewayCloudWatchRole() awsiam.Role
	ApiGatewayLogGroup() awslogs.LogGroup
	CloudFrontFunction() awscloudfront.Function
	CloudFrontLoggingBucket() awss3.Bucket
	CloudFrontWebDistribution() awscloudfront.Distribution
	LambdaFunction() awslambda.Function
	Node() constructs.Node
	ToString() *string
}

func NewCloudFrontToApiGatewayToLambda

func NewCloudFrontToApiGatewayToLambda(scope constructs.Construct, id *string, props *CloudFrontToApiGatewayToLambdaProps) CloudFrontToApiGatewayToLambda

type CloudFrontToApiGatewayToLambdaProps

type CloudFrontToApiGatewayToLambdaProps struct {
	// Optional user provided props to override the default props for the API Gateway.
	ApiGatewayProps interface{} `json:"apiGatewayProps"`
	// Optional user provided props to override the default props.
	CloudFrontDistributionProps interface{} `json:"cloudFrontDistributionProps"`
	// Optional user provided props to override the default props for the CloudFront Logging Bucket.
	CloudFrontLoggingBucketProps *awss3.BucketProps `json:"cloudFrontLoggingBucketProps"`
	// Existing instance of Lambda Function object, providing both this and `lambdaFunctionProps` will cause an error.
	ExistingLambdaObj awslambda.Function `json:"existingLambdaObj"`
	// Optional user provided props to turn on/off the automatic injection of best practice HTTP security headers in all responses from cloudfront.
	InsertHttpSecurityHeaders *bool `json:"insertHttpSecurityHeaders"`
	// Optional user provided props to override the default props for the Lambda function.
	LambdaFunctionProps *awslambda.FunctionProps `json:"lambdaFunctionProps"`
	// Optional user provided props to override the default props for the CloudWatchLogs LogGroup.
	LogGroupProps *awslogs.LogGroupProps `json:"logGroupProps"`
}

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