aws-cloudfront-apigateway-lambda
Language | Package |
---|---|
Python |
aws_solutions_constructs.aws_cloudfront_apigateway_lambda
|
Typescript |
@aws-solutions-constructs/aws-cloudfront-apigateway-lambda
|
Java |
software.amazon.awsconstructs.services.cloudfrontapigatewaylambda
|
Overview
This AWS Solutions Construct implements an AWS CloudFront fronting an Amazon API Gateway Lambda backed REST API.
Here is a minimal deployable pattern definition:
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
|
User provided props to override the default props for
the API Gateway. As of release 2.48.0, clients must
include this property with
defaultMethodOptions: { authorizationType: string }
specified. See Issue1043 in the github repo
https://github.com/awslabs/aws-solutions-constructs/issues/1043
|
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 |
responseHeadersPolicyProps? |
cloudfront.ResponseHeadersPolicyProps
|
Optional user provided configuration that cloudfront applies to all http responses. |
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.Distribution
|
Returns an instance of cloudfront.Distribution 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 Distribution. |
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 Distribution
-
Enable automatic injection of best practice HTTP security headers in all responses from CloudFront Distribution
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
GitHub
To view the code for this pattern, create/view issues and pull requests, and more: | |
---|---|
|
@aws-solutions-constructs/aws-cloudfront-apigateway-lambda |