@aws-solutions-constructs/aws-cloudfront-apigateway
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.0-rc.1 • Public • Published

    aws-cloudfront-apigateway module


    Stability: Stable

    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 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
    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
    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.

    Install

    npm i @aws-solutions-constructs/aws-cloudfront-apigateway

    DownloadsWeekly Downloads

    411

    Version

    2.0.0-rc.1

    License

    Apache-2.0

    Unpacked Size

    1.22 MB

    Total Files

    16

    Last publish

    Collaborators

    • aws-solutions-constructs-team