@scloud/cdk-patterns
Version:
Serverless CDK patterns for common infrastructure needs
70 lines • 5.87 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.RedirectDomain = void 0;
const route53patterns = __importStar(require("aws-cdk-lib/aws-route53-patterns"));
const aws_certificatemanager_1 = require("aws-cdk-lib/aws-certificatemanager");
/**
* Creates a redirect from one domain (including www. subdomain) to another.
*
* For example you could redirect from example.com to example.org:
* - example.com -> example.org
* - www.example.com -> example.org
*
* To redirect www.example.com to example.com, use RedirectWww because
* these redirects are implemented in a different zone (example.org)
*
* @param zone The Route53 hosted zone of the source domain to redirect from
* @param targetDomain The target domain to redirect to
*/
class RedirectDomain extends route53patterns.HttpsRedirect {
constructor(scope, id, zone, targetDomain) {
super(scope, `${id}Redirect`, {
targetDomain,
recordNames: [zone.zoneName, `www.${zone.zoneName}`],
zone,
certificate: new aws_certificatemanager_1.DnsValidatedCertificate(scope, `${id}Certificate`, {
domainName: zone.zoneName,
subjectAlternativeNames: [`www.${zone.zoneName}`],
hostedZone: zone,
// this is required for Cloudfront certificates:
// https://docs.aws.amazon.com/cdk/api/v1/docs/aws-cloudfront-readme.html
region: 'us-east-1',
}),
});
}
}
exports.RedirectDomain = RedirectDomain;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVkaXJlY3REb21haW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUmVkaXJlY3REb21haW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsa0ZBQW9FO0FBQ3BFLCtFQUE2RTtBQUU3RTs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFhLGNBQWUsU0FBUSxlQUFlLENBQUMsYUFBYTtJQUMvRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLElBQXlCLEVBQUUsWUFBb0I7UUFDdkYsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFO1lBQzVCLFlBQVk7WUFDWixXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3BELElBQUk7WUFDSixXQUFXLEVBQUUsSUFBSSxnREFBdUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLGFBQWEsRUFBRTtnQkFDbEUsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUN6Qix1QkFBdUIsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNqRCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsZ0RBQWdEO2dCQUNoRCx5RUFBeUU7Z0JBQ3pFLE1BQU0sRUFBRSxXQUFXO2FBQ3BCLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFoQkQsd0NBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcm91dGU1MyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1Myc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCAqIGFzIHJvdXRlNTNwYXR0ZXJucyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My1wYXR0ZXJucyc7XG5pbXBvcnQgeyBEbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXInO1xuXG4vKipcbiAqIENyZWF0ZXMgYSByZWRpcmVjdCBmcm9tIG9uZSBkb21haW4gKGluY2x1ZGluZyB3d3cuIHN1YmRvbWFpbikgdG8gYW5vdGhlci5cbiAqXG4gKiBGb3IgZXhhbXBsZSB5b3UgY291bGQgcmVkaXJlY3QgZnJvbSBleGFtcGxlLmNvbSB0byBleGFtcGxlLm9yZzpcbiAqIC0gZXhhbXBsZS5jb20gLT4gZXhhbXBsZS5vcmdcbiAqIC0gd3d3LmV4YW1wbGUuY29tIC0+IGV4YW1wbGUub3JnXG4gKlxuICogVG8gcmVkaXJlY3Qgd3d3LmV4YW1wbGUuY29tIHRvIGV4YW1wbGUuY29tLCB1c2UgUmVkaXJlY3RXd3cgYmVjYXVzZVxuICogdGhlc2UgcmVkaXJlY3RzIGFyZSBpbXBsZW1lbnRlZCBpbiBhIGRpZmZlcmVudCB6b25lIChleGFtcGxlLm9yZylcbiAqXG4gKiBAcGFyYW0gem9uZSBUaGUgUm91dGU1MyBob3N0ZWQgem9uZSBvZiB0aGUgc291cmNlIGRvbWFpbiB0byByZWRpcmVjdCBmcm9tXG4gKiBAcGFyYW0gdGFyZ2V0RG9tYWluIFRoZSB0YXJnZXQgZG9tYWluIHRvIHJlZGlyZWN0IHRvXG4gKi9cbmV4cG9ydCBjbGFzcyBSZWRpcmVjdERvbWFpbiBleHRlbmRzIHJvdXRlNTNwYXR0ZXJucy5IdHRwc1JlZGlyZWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgem9uZTogcm91dGU1My5JSG9zdGVkWm9uZSwgdGFyZ2V0RG9tYWluOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgYCR7aWR9UmVkaXJlY3RgLCB7XG4gICAgICB0YXJnZXREb21haW4sXG4gICAgICByZWNvcmROYW1lczogW3pvbmUuem9uZU5hbWUsIGB3d3cuJHt6b25lLnpvbmVOYW1lfWBdLFxuICAgICAgem9uZSxcbiAgICAgIGNlcnRpZmljYXRlOiBuZXcgRG5zVmFsaWRhdGVkQ2VydGlmaWNhdGUoc2NvcGUsIGAke2lkfUNlcnRpZmljYXRlYCwge1xuICAgICAgICBkb21haW5OYW1lOiB6b25lLnpvbmVOYW1lLFxuICAgICAgICBzdWJqZWN0QWx0ZXJuYXRpdmVOYW1lczogW2B3d3cuJHt6b25lLnpvbmVOYW1lfWBdLFxuICAgICAgICBob3N0ZWRab25lOiB6b25lLFxuICAgICAgICAvLyB0aGlzIGlzIHJlcXVpcmVkIGZvciBDbG91ZGZyb250IGNlcnRpZmljYXRlczpcbiAgICAgICAgLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9hcGkvdjEvZG9jcy9hd3MtY2xvdWRmcm9udC1yZWFkbWUuaHRtbFxuICAgICAgICByZWdpb246ICd1cy1lYXN0LTEnLFxuICAgICAgfSksXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==