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.DistributionProps any`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.DistributionProps.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.
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.

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 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-cloudfront-apigateway-1.122.0.tar.gz.

File metadata

File hashes

Hashes for aws-solutions-constructs.aws-cloudfront-apigateway-1.122.0.tar.gz
Algorithm Hash digest
SHA256 0292e64a1e4930e6d6381524af030222d6e938c34405faf2d75ec54d2b559163
MD5 c8ef4ae16cf1c6cac1da9d5eb8798900
BLAKE2b-256 37e75b88f09d4ff7a31f992a4fb416f9d4184fb074212ffd3f1dbb8130c4f511

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aws_solutions_constructs.aws_cloudfront_apigateway-1.122.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b05d099a436e6cef46aabe8adccbe8833b3032bd97d757fe1a92c00b7cff492
MD5 bc6079e975e947f794342162b4737eeb
BLAKE2b-256 9975e530961083c75a0a7aef0162a73979c80f78c8135584a909a5d61a9e6717

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