UNPKG

cdk-internal-gateway

Version:

CDK construct to create to create internal serverless applications.

107 lines 14.3 kB
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.InternalWebsite = void 0; const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti"); const path = require("path"); const aws_cdk_lib_1 = require("aws-cdk-lib"); const aws_s3_1 = require("aws-cdk-lib/aws-s3"); const internal_apigateway_1 = require("./internal-apigateway"); class InternalWebsite extends internal_apigateway_1.InternalApiGateway { constructor(scope, id, props) { super(scope, id, props); const bucket = new aws_cdk_lib_1.aws_s3.Bucket(this, `WebsiteBucket-${id}`, { versioned: true, bucketName: props.bucketName || undefined, publicReadAccess: false, blockPublicAccess: aws_s3_1.BlockPublicAccess.BLOCK_ALL, removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY, websiteIndexDocument: props.websiteIndexDocument || "index.html", autoDeleteObjects: true, }); const enableSourceDeployment = props.enableSourceDeployment ?? true; if (enableSourceDeployment) { new aws_cdk_lib_1.aws_s3_deployment.BucketDeployment(this, `WebsiteDeployment-${id}`, { sources: [aws_cdk_lib_1.aws_s3_deployment.Source.asset(path.normalize(props?.sourcePath))], destinationBucket: bucket, }); } const role = new aws_cdk_lib_1.aws_iam.Role(this, `ApiGatewayReadOnlyRole-${id}`, { assumedBy: new aws_cdk_lib_1.aws_iam.ServicePrincipal("apigateway.amazonaws.com"), }); role.addToPolicy(new aws_cdk_lib_1.aws_iam.PolicyStatement({ resources: [`${bucket.bucketArn}`, `${bucket.bucketArn}/*`], actions: ["s3:GetObject", "s3:GetObjectAcl", "s3:ListBucket"], })); const proxyIntegration = new aws_cdk_lib_1.aws_apigateway.AwsIntegration({ service: "s3", integrationHttpMethod: "GET", path: `${bucket.bucketName}/{proxy}`, options: { credentialsRole: role, requestParameters: { "integration.request.path.proxy": "method.request.path.proxy", }, integrationResponses: [ { statusCode: "200", selectionPattern: "2..", responseParameters: { "method.response.header.Content-Type": "integration.response.header.Content-Type", }, }, { statusCode: "403", selectionPattern: "4..", }, ], }, }); const defaultIntegration = new aws_cdk_lib_1.aws_apigateway.AwsIntegration({ service: "s3", integrationHttpMethod: "GET", path: `${bucket.bucketName}/${props.websiteIndexDocument || "index.html"}`, options: { credentialsRole: role, integrationResponses: [ { statusCode: "200", selectionPattern: "2..", responseParameters: { "method.response.header.Content-Type": "integration.response.header.Content-Type", }, }, { statusCode: "403", selectionPattern: "4..", }, ], }, }); const proxyMethodOptions = { methodResponses: [ { statusCode: "200", responseParameters: { "method.response.header.Content-Type": true, }, }, ], requestParameters: { "method.request.path.proxy": true, }, }; const proxyResource = this.apiGateway.root.addProxy({ anyMethod: false, defaultIntegration: proxyIntegration, defaultMethodOptions: proxyMethodOptions, }); const defaultResource = this.apiGateway.root.resourceForPath("/"); defaultResource.addMethod("ANY", defaultIntegration, proxyMethodOptions); proxyResource.addMethod("ANY", proxyIntegration, proxyMethodOptions); } } exports.InternalWebsite = InternalWebsite; _a = JSII_RTTI_SYMBOL_1; InternalWebsite[_a] = { fqn: "cdk-internal-gateway.InternalWebsite", version: "1.5.1" }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtd2Vic2l0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbnRlcm5hbC13ZWJzaXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDZDQU1xQjtBQUNyQiwrQ0FBdUQ7QUFFdkQsK0RBRytCO0FBK0IvQixNQUFhLGVBQWdCLFNBQVEsd0NBQWtCO0lBQ3JELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxvQkFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxFQUFFO1lBQ3hELFNBQVMsRUFBRSxJQUFJO1lBQ2YsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLElBQUksU0FBUztZQUN6QyxnQkFBZ0IsRUFBRSxLQUFLO1lBQ3ZCLGlCQUFpQixFQUFFLDBCQUFpQixDQUFDLFNBQVM7WUFDOUMsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztZQUNwQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CLElBQUksWUFBWTtZQUNoRSxpQkFBaUIsRUFBRSxJQUFJO1NBQ3hCLENBQUMsQ0FBQztRQUVILE1BQU0sc0JBQXNCLEdBQUcsS0FBSyxDQUFDLHNCQUFzQixJQUFJLElBQUksQ0FBQztRQUVwRSxJQUFJLHNCQUFzQixFQUFFLENBQUM7WUFDM0IsSUFBSSwrQkFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxFQUFFLEVBQUU7Z0JBQzdELE9BQU8sRUFBRSxDQUFDLCtCQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUNuRSxpQkFBaUIsRUFBRSxNQUFNO2FBQzFCLENBQUMsQ0FB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cG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7XG4gIGF3c19hcGlnYXRld2F5IGFzIGFwaWdhdGV3YXksXG4gIGF3c19pYW0gYXMgaWFtLFxuICBhd3NfczMgYXMgczMsXG4gIGF3c19zM19kZXBsb3ltZW50IGFzIHMzZGVwbG95LFxuICBSZW1vdmFsUG9saWN5LFxufSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEJsb2NrUHVibGljQWNjZXNzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEludGVybmFsQXBpR2F0ZXdheSxcbiAgSW50ZXJuYWxBcGlHYXRld2F5UHJvcHMsXG59IGZyb20gXCIuL2ludGVybmFsLWFwaWdhdGV3YXlcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBJbnRlcm5hbFNlcnZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlcm5hbFdlYnNpdGVQcm9wcyBleHRlbmRzIEludGVybmFsQXBpR2F0ZXdheVByb3BzIHtcbiAgLyoqXG4gICAqIEVuYWJsZS9kaXNhYmxlIGF1dG9tYXRpYyBzeW5jIG9mIHRoZSB3ZWJzaXRlYHMgc291cmNlcyB0byB0aGUgUzNidWNrZXRcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlU291cmNlRGVwbG95bWVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBhdGggb2Ygd2Vic2l0ZSBmb2xkZXIgY29udGFpbmluZyB0aGUgd2Vic2l0ZWBzIHNvdXJjZXNcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiBzMyBidWNrZXQgdG8gdXNlIGZvciB0aGUgd2Vic2l0ZSBkZXBsb3ltZW50XG4gICAqL1xuICByZWFkb25seSBidWNrZXROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIGh0bWwgaW5kZXggZG9jdW1lbnQgdXNlZCBmb3IgdGhlIHdlYnNpdGVcbiAgICpcbiAgICogQGRlZmF1bHQgaW5kZXguaHRtbFxuICAgKi9cbiAgcmVhZG9ubHkgd2Vic2l0ZUluZGV4RG9jdW1lbnQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBJbnRlcm5hbFdlYnNpdGUgZXh0ZW5kcyBJbnRlcm5hbEFwaUdhdGV3YXkge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSW50ZXJuYWxXZWJzaXRlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGNvbnN0IGJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgYFdlYnNpdGVCdWNrZXQtJHtpZH1gLCB7XG4gICAgICB2ZXJzaW9uZWQ6IHRydWUsXG4gICAgICBidWNrZXROYW1lOiBwcm9wcy5idWNrZXROYW1lIHx8IHVuZGVmaW5lZCxcbiAgICAgIHB1YmxpY1JlYWRBY2Nlc3M6IGZhbHNlLFxuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IEJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIHdlYnNpdGVJbmRleERvY3VtZW50OiBwcm9wcy53ZWJzaXRlSW5kZXhEb2N1bWVudCB8fCBcImluZGV4Lmh0bWxcIixcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgZW5hYmxlU291cmNlRGVwbG95bWVudCA9IHByb3BzLmVuYWJsZVNvdXJjZURlcGxveW1lbnQgPz8gdHJ1ZTtcblxuICAgIGlmIChlbmFibGVTb3VyY2VEZXBsb3ltZW50KSB7XG4gICAgICBuZXcgczNkZXBsb3kuQnVja2V0RGVwbG95bWVudCh0aGlzLCBgV2Vic2l0ZURlcGxveW1lbnQtJHtpZH1gLCB7XG4gICAgICAgIHNvdXJjZXM6IFtzM2RlcGxveS5Tb3VyY2UuYXNzZXQocGF0aC5ub3JtYWxpemUocHJvcHM/LnNvdXJjZVBhdGgpKV0sXG4gICAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiBidWNrZXQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCByb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsIGBBcGlHYXRld2F5UmVhZE9ubHlSb2xlLSR7aWR9YCwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJhcGlnYXRld2F5LmFtYXpvbmF3cy5jb21cIiksXG4gICAgfSk7XG5cbiAgICByb2xlLmFkZFRvUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICByZXNvdXJjZXM6IFtgJHtidWNrZXQuYnVja2V0QXJufWAsIGAke2J1Y2tldC5idWNrZXRBcm59LypgXSxcbiAgICAgICAgYWN0aW9uczogW1wiczM6R2V0T2JqZWN0XCIsIFwiczM6R2V0T2JqZWN0QWNsXCIsIFwiczM6TGlzdEJ1Y2tldFwiXSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHByb3h5SW50ZWdyYXRpb24gPSBuZXcgYXBpZ2F0ZXdheS5Bd3NJbnRlZ3JhdGlvbih7XG4gICAgICBzZXJ2aWNlOiBcInMzXCIsXG4gICAgICBpbnRlZ3JhdGlvbkh0dHBNZXRob2Q6IFwiR0VUXCIsXG4gICAgICBwYXRoOiBgJHtidWNrZXQuYnVja2V0TmFtZX0ve3Byb3h5fWAsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGNyZWRlbnRpYWxzUm9sZTogcm9sZSxcbiAgICAgICAgcmVxdWVzdFBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBcImludGVncmF0aW9uLnJlcXVlc3QucGF0aC5wcm94eVwiOiBcIm1ldGhvZC5yZXF1ZXN0LnBhdGgucHJveHlcIixcbiAgICAgICAgfSxcbiAgICAgICAgaW50ZWdyYXRpb25SZXNwb25zZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzdGF0dXNDb2RlOiBcIjIwMFwiLFxuICAgICAgICAgICAgc2VsZWN0aW9uUGF0dGVybjogXCIyLi5cIixcbiAgICAgICAgICAgIHJlc3BvbnNlUGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICBcIm1ldGhvZC5yZXNwb25zZS5oZWFkZXIuQ29udGVudC1UeXBlXCI6XG4gICAgICAgICAgICAgICAgXCJpbnRlZ3JhdGlvbi5yZXNwb25zZS5oZWFkZXIuQ29udGVudC1UeXBlXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgc3RhdHVzQ29kZTogXCI0MDNcIixcbiAgICAgICAgICAgIHNlbGVjdGlvblBhdHRlcm46IFwiNC4uXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBkZWZhdWx0SW50ZWdyYXRpb24gPSBuZXcgYXBpZ2F0ZXdheS5Bd3NJbnRlZ3JhdGlvbih7XG4gICAgICBzZXJ2aWNlOiBcInMzXCIsXG4gICAgICBpbnRlZ3JhdGlvbkh0dHBNZXRob2Q6IFwiR0VUXCIsXG4gICAgICBwYXRoOiBgJHtidWNrZXQuYnVja2V0TmFtZX0vJHtcbiAgICAgICAgcHJvcHMud2Vic2l0ZUluZGV4RG9jdW1lbnQgfHwgXCJpbmRleC5odG1sXCJcbiAgICAgIH1gLFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBjcmVkZW50aWFsc1JvbGU6IHJvbGUsXG4gICAgICAgIGludGVncmF0aW9uUmVzcG9uc2VzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgc3RhdHVzQ29kZTogXCIyMDBcIixcbiAgICAgICAgICAgIHNlbGVjdGlvblBhdHRlcm46IFwiMi4uXCIsXG4gICAgICAgICAgICByZXNwb25zZVBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgXCJtZXRob2QucmVzcG9uc2UuaGVhZGVyLkNvbnRlbnQtVHlwZVwiOlxuICAgICAgICAgICAgICAgIFwiaW50ZWdyYXRpb24ucmVzcG9uc2UuaGVhZGVyLkNvbnRlbnQtVHlwZVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHN0YXR1c0NvZGU6IFwiNDAzXCIsXG4gICAgICAgICAgICBzZWxlY3Rpb25QYXR0ZXJuOiBcIjQuLlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcHJveHlNZXRob2RPcHRpb25zID0ge1xuICAgICAgbWV0aG9kUmVzcG9uc2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzdGF0dXNDb2RlOiBcIjIwMFwiLFxuICAgICAgICAgIHJlc3BvbnNlUGFyYW1ldGVyczoge1xuICAgICAgICAgICAgXCJtZXRob2QucmVzcG9uc2UuaGVhZGVyLkNvbnRlbnQtVHlwZVwiOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcmVxdWVzdFBhcmFtZXRlcnM6IHtcbiAgICAgICAgXCJtZXRob2QucmVxdWVzdC5wYXRoLnByb3h5XCI6IHRydWUsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBwcm94eVJlc291cmNlID0gdGhpcy5hcGlHYXRld2F5LnJvb3QuYWRkUHJveHkoe1xuICAgICAgYW55TWV0aG9kOiBmYWxzZSxcbiAgICAgIGRlZmF1bHRJbnRlZ3JhdGlvbjogcHJveHlJbnRlZ3JhdGlvbixcbiAgICAgIGRlZmF1bHRNZXRob2RPcHRpb25zOiBwcm94eU1ldGhvZE9wdGlvbnMsXG4gICAgfSk7XG4gICAgY29uc3QgZGVmYXVsdFJlc291cmNlID0gdGhpcy5hcGlHYXRld2F5LnJvb3QucmVzb3VyY2VGb3JQYXRoKFwiL1wiKTtcblxuICAgIGRlZmF1bHRSZXNvdXJjZS5hZGRNZXRob2QoXCJBTllcIiwgZGVmYXVsdEludGVncmF0aW9uLCBwcm94eU1ldGhvZE9wdGlvbnMpO1xuICAgIHByb3h5UmVzb3VyY2UuYWRkTWV0aG9kKFwiQU5ZXCIsIHByb3h5SW50ZWdyYXRpb24sIHByb3h5TWV0aG9kT3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==