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 in Typescript:

import * as api from '@aws-cdk/aws-apigateway';
import * as lambda from "@aws-cdk/aws-lambda";
import { CloudFrontToApiGateway } from '@aws-solutions-constructs/aws-cloudfront-apigateway';

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

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

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

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

new CloudFrontToApiGateway(this, '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.68.0.tar.gz.

File metadata

File hashes

Hashes for aws-solutions-constructs.aws-cloudfront-apigateway-1.68.0.tar.gz
Algorithm Hash digest
SHA256 9e23992112640e1c096ceb341f114b894e5c356625b8d08e6487fae915ed8ca8
MD5 60ad47d60a5f6e6757ce56b448ddf2e5
BLAKE2b-256 9c30d6731ac51b2d04fe43b765af9b20755688e77abf43cc20b3caf03e05b698

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aws_solutions_constructs.aws_cloudfront_apigateway-1.68.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e417c3c39f86036b1f9af15a466843232d5352834730380cb460b89f77a1dd3d
MD5 f1014d3254602b552ca821c4c9f7dfa2
BLAKE2b-256 0d991df19953f460d0bbb11cb5d4e5d3415d9962c99b57b2f87a1f9bed866fd3

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