Skip to main content

CDK Constructs for AWS Cloudfront to AWS API Gateway integration.

Project description

aws-cloudfront-apigateway module

---

Stability: Experimental

All classes are under active development and subject to non-backward compatible changes or removal in any future version. These are not subject to the Semantic Versioning model. This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.


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

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

Here is a minimal deployable pattern definition:

const api = require('@aws-cdk/aws-apigateway');
const lambda = require("@aws-cdk/aws-lambda");
const { CloudFrontToApiGateway } = require('@aws-solutions-constructs/aws-cloudfront-apigateway');

const stack = new Stack();

const lambdaProps: lambda.FunctionProps = {
    code: lambda.Code.asset(`${__dirname}/lambda`),
    runtime: lambda.Runtime.NODEJS_12_X,
    handler: 'index.handler'
};

const lambdafunction = new lambda.Function(stack, 'LambdaFunction', lambdaProps);

const apiGatewayProps: api.LambdaRestApiProps = {
        handler: lambdafunction,
        endpointConfiguration: {
            types: [api.EndpointType.REGIONAL]
        },
        defaultMethodOptions: {
            authorizationType: api.AuthorizationType.NONE
        }
};

const apiGateway = new api.LambdaRestApi(scope, 'LambdaRestApi', apiGatewayProps);

new CloudFrontToApiGateway(stack, 'test-cloudfront-apigateway', {
    existingApiGatewayObj: apiGateway
});

Initializer

new CloudFrontToApiGateway(scope: Construct, id: string, props: CloudFrontToApiGatewayProps);

Parameters

Pattern Construct Props

Name Type Description
existingApiGatewayObj api.RestApi The regional API Gateway that will be fronted with the CloudFront
cloudFrontDistributionProps? [`cloudfront.CloudFrontWebDistributionProps any`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.CloudFrontWebDistributionProps.html)
insertHttpSecurityHeaders? boolean Optional user provided props to turn on/off the automatic injection of best practice HTTP security headers in all responses from CloudFront

Pattern Properties

Name Type Description
cloudFrontWebDistribution cloudfront.CloudFrontWebDistribution Returns an instance of cloudfront.CloudFrontWebDistribution created by the construct
apiGateway api.RestApi Returns an instance of the API Gateway REST API created by the pattern.
edgeLambdaFunctionVersion lambda.Version Returns an instance of the edge Lambda function version created by the pattern.
cloudFrontLoggingBucket s3.Bucket Returns an instance of the logging bucket for CloudFront WebDistribution.

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

  • User provided API Gateway object is used as-is
  • Enable X-Ray Tracing

Architecture

Architecture Diagram


© Copyright 2020 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-cloudfront-apigateway-1.63.0.tar.gz.

File metadata

File hashes

Hashes for aws-solutions-constructs.aws-cloudfront-apigateway-1.63.0.tar.gz
Algorithm Hash digest
SHA256 203a132d9a8da6e4275f7c9cb1c8448bed89544481cfe184585310ae92f1f513
MD5 b537b1d089514fb7f76b96c95e34c19b
BLAKE2b-256 57c2ca855e51e902dd8f2e6753a54fb069201369e175fd74b12fb58905f72946

See more details on using hashes here.

File details

Details for the file aws_solutions_constructs.aws_cloudfront_apigateway-1.63.0-py3-none-any.whl.

File metadata

File hashes

Hashes for aws_solutions_constructs.aws_cloudfront_apigateway-1.63.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dd742f112b4a790e67116c3a1271e68dc4cd11d2b71c75934d9639142049b4a0
MD5 4597d562d37377f9ac8d8a73ea5e2e1c
BLAKE2b-256 ad8776a6c3b8491b993a68f36acc2293ad1173c912b429a31905041fabed1270

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