@cm-madlabs/cdk-constructs
Version:
AWS CDK Constructs that can be used universally
81 lines • 10.4 kB
JavaScript
"use strict";
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AmplifyConsoleCiCd = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const aws_amplify_1 = require("@aws-cdk/aws-amplify");
const aws_codebuild_1 = require("@aws-cdk/aws-codebuild");
const core_1 = require("@aws-cdk/core");
/**
* Amplify ConsoleのCICDを作成するConstruct ReactなどのSPAをホスティングするために利用する.
*
* @stability stable
*/
class AmplifyConsoleCiCd extends core_1.Construct {
/**
* @stability stable
*/
constructor(scope, id, props) {
super(scope, id);
this.amplify = new aws_amplify_1.App(this, 'App', {
appName: props.amplifyAppName,
buildSpec: aws_codebuild_1.BuildSpec.fromObject({
version: 1,
frontend: {
phases: {
preBuild: {
commands: props.preBuildCommands,
},
build: {
commands: props.buildCommands,
},
postBuild: {
commands: props.postBuildCommands,
},
},
artifacts: {
baseDirectory: props.baseDirectory,
files: ['**/*'],
},
cache: { paths: ['node_modules/**/*'] },
customHeaders: [
{
pattern: '**/*',
headers: [
{
key: 'Strict-Transport-Security',
value: 'max-age=31536000; includeSubDomains',
},
{ key: 'X-Frame-Options', value: 'DENY' },
{ key: 'X-XSS-Protection', value: '1; mode=block' },
{ key: 'X-Content-Type-Options', value: 'nosniff' },
],
},
],
},
}),
basicAuth: props.isBasicAuth ? aws_amplify_1.BasicAuth.fromCredentials(props.basicAuthUserName, core_1.SecretValue.secretsManager(props.basicAuthSecretId)) : undefined,
sourceCodeProvider: new aws_amplify_1.GitHubSourceCodeProvider({
oauthToken: core_1.SecretValue.secretsManager(props.githubTokenSecretId),
owner: props.githubOwner,
repository: props.githubRepo,
}),
autoBranchCreation: {
autoBuild: props.isAutoBuild,
patterns: ['master', 'main', 'feature/deploy*'],
pullRequestPreview: false,
},
customRules: [
{
source: '</^[^.]+$|\\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|ttf|map|json)$)([^.]+$)/>',
target: '/index.html',
status: aws_amplify_1.RedirectStatus.REWRITE,
},
],
});
}
}
exports.AmplifyConsoleCiCd = AmplifyConsoleCiCd;
_a = JSII_RTTI_SYMBOL_1;
AmplifyConsoleCiCd[_a] = { fqn: "@cm-madlabs/cdk-constructs.AmplifyConsoleCiCd", version: "0.0.6" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1wbGlmeS1jb25zb2xlLWNpY2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYW1wbGlmeS1jb25zb2xlLWNpY2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFLOEI7QUFDOUIsMERBRWdDO0FBQ2hDLHdDQUd1Qjs7Ozs7O0FBb0V2QixNQUFhLGtCQUFtQixTQUFRLGdCQUFTOzs7O0lBRy9DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksaUJBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO1lBQ2xDLE9BQU8sRUFBRSxLQUFLLENBQUMsY0FBYztZQUM3QixTQUFTLEVBQUUseUJBQVMsQ0FBQyxVQUFVLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDO2dCQUNWLFFBQVEsRUFBRTtvQkFDUixNQUFNLEVBQUU7d0JBQ04sUUFBUSxFQUFFOzRCQUNSLFFBQVEsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO3lCQUNqQzt3QkFDRCxLQUFLLEVBQUU7NEJBQ0wsUUFBUSxFQUFFLEtBQUssQ0FBQyxhQUFhO3lCQUM5Qjt3QkFDRCxTQUFTLEVBQUU7NEJBQ1QsUUFBUSxFQUFFLEtBQUssQ0FBQyxpQkFBaUI7eUJBQ2xDO3FCQUNGO29CQUNELFNBQVMsRUFBRTt3QkFDVCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7d0JBQ2xDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQztxQkFDaEI7b0JBQ0QsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsbUJBQW1CLENBQUMsRUFBRTtvQkFDdkMsYUFBYSxFQUFFO3dCQUNiOzRCQUNFLE9BQU8sRUFBRSxNQUFNOzRCQUNmLE9BQU8sRUFBRTtnQ0FDUDtvQ0FDRSxHQUFHLEVBQUUsMkJBQTJCO29DQUNoQyxLQUFLLEVBQUUscUNBQXFDO2lDQUM3QztnQ0FDRCxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO2dDQUN6QyxFQUFFLEdBQUcsRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFO2dDQUNuRCxFQUFFLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFOzZCQUNwRDt5QkFDRjtxQkFDRjtpQkFDRjthQUNGLENBQUM7WUFDRixTQUFTLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsdUJBQVMsQ0FBQyxlQUFlLENBQ3RELEtBQUssQ0FBQyxpQkFBa0IsRUFDeEIsa0JBQVcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLGlCQUFrQixDQUFDLENBQ3JELENBQUEsQ0FBQyxDQUFDLFNBQVM7WUFDWixrQkFBa0IsRUFBRSxJQUFJLHNDQUF3QixDQUFDO2dCQUMvQyxVQUFVLEVBQUUsa0JBQVcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDO2dCQUNqRSxLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVc7Z0JBQ3hCLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTthQUM3QixDQUFDO1lBQ0Ysa0JBQWtCLEVBQUU7Z0JBQ2xCLFNBQVMsRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDNUIsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQztnQkFDL0Msa0JBQWtCLEVBQUUsS0FBSzthQUMxQjtZQUNELFdBQVcsRUFBRTtnQkFDWDtvQkFDRSxNQUFNLEVBQUUsZ0ZBQWdGO29CQUN4RixNQUFNLEVBQUUsYUFBYTtvQkFDckIsTUFBTSxFQUFFLDRCQUFjLENBQUMsT0FBTztpQkFDL0I7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBakVILGdEQWtFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFwcCxcbiAgQmFzaWNBdXRoLFxuICBHaXRIdWJTb3VyY2VDb2RlUHJvdmlkZXIsXG4gIFJlZGlyZWN0U3RhdHVzLFxufSBmcm9tICdAYXdzLWNkay9hd3MtYW1wbGlmeSc7XG5pbXBvcnQge1xuICBCdWlsZFNwZWMsXG59IGZyb20gJ0Bhd3MtY2RrL2F3cy1jb2RlYnVpbGQnO1xuaW1wb3J0IHtcbiAgQ29uc3RydWN0LFxuICBTZWNyZXRWYWx1ZSxcbn0gZnJvbSAnQGF3cy1jZGsvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUFtcGxpZnlDb25zb2xlRm9yU3BhUHJvcHMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBhbXBsaWZ5QXBwTmFtZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBpc0Jhc2ljQXV0aDogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGJhc2ljQXV0aFNlY3JldElkPzogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBiYXNpY0F1dGhVc2VyTmFtZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGdpdGh1YlRva2VuU2VjcmV0SWQ6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBnaXRodWJPd25lcjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBnaXRodWJSZXBvOiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBpc0F1dG9CdWlsZDogYm9vbGVhbjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBwcmVCdWlsZENvbW1hbmRzOiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBidWlsZENvbW1hbmRzOiBzdHJpbmdbXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgcG9zdEJ1aWxkQ29tbWFuZHM6IHN0cmluZ1tdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGJhc2VEaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuZXhwb3J0IGNsYXNzIEFtcGxpZnlDb25zb2xlQ2lDZCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBhbXBsaWZ5OiBBcHA7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IElBbXBsaWZ5Q29uc29sZUZvclNwYVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuYW1wbGlmeSA9IG5ldyBBcHAodGhpcywgJ0FwcCcsIHtcbiAgICAgIGFwcE5hbWU6IHByb3BzLmFtcGxpZnlBcHBOYW1lLFxuICAgICAgYnVpbGRTcGVjOiBCdWlsZFNwZWMuZnJvbU9iamVjdCh7XG4gICAgICAgIHZlcnNpb246IDEsXG4gICAgICAgIGZyb250ZW5kOiB7XG4gICAgICAgICAgcGhhc2VzOiB7XG4gICAgICAgICAgICBwcmVCdWlsZDoge1xuICAgICAgICAgICAgICBjb21tYW5kczogcHJvcHMucHJlQnVpbGRDb21tYW5kcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidWlsZDoge1xuICAgICAgICAgICAgICBjb21tYW5kczogcHJvcHMuYnVpbGRDb21tYW5kcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwb3N0QnVpbGQ6IHtcbiAgICAgICAgICAgICAgY29tbWFuZHM6IHByb3BzLnBvc3RCdWlsZENvbW1hbmRzLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGFydGlmYWN0czoge1xuICAgICAgICAgICAgYmFzZURpcmVjdG9yeTogcHJvcHMuYmFzZURpcmVjdG9yeSxcbiAgICAgICAgICAgIGZpbGVzOiBbJyoqLyonXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNhY2hlOiB7IHBhdGhzOiBbJ25vZGVfbW9kdWxlcy8qKi8qJ10gfSxcbiAgICAgICAgICBjdXN0b21IZWFkZXJzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHBhdHRlcm46ICcqKi8qJyxcbiAgICAgICAgICAgICAgaGVhZGVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIGtleTogJ1N0cmljdC1UcmFuc3BvcnQtU2VjdXJpdHknLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6ICdtYXgtYWdlPTMxNTM2MDAwOyBpbmNsdWRlU3ViRG9tYWlucycsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7IGtleTogJ1gtRnJhbWUtT3B0aW9ucycsIHZhbHVlOiAnREVOWScgfSxcbiAgICAgICAgICAgICAgICB7IGtleTogJ1gtWFNTLVByb3RlY3Rpb24nLCB2YWx1ZTogJzE7IG1vZGU9YmxvY2snIH0sXG4gICAgICAgICAgICAgICAgeyBrZXk6ICdYLUNvbnRlbnQtVHlwZS1PcHRpb25zJywgdmFsdWU6ICdub3NuaWZmJyB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBiYXNpY0F1dGg6IHByb3BzLmlzQmFzaWNBdXRoID8gQmFzaWNBdXRoLmZyb21DcmVkZW50aWFscyhcbiAgICAgICAgcHJvcHMuYmFzaWNBdXRoVXNlck5hbWUhLFxuICAgICAgICBTZWNyZXRWYWx1ZS5zZWNyZXRzTWFuYWdlcihwcm9wcy5iYXNpY0F1dGhTZWNyZXRJZCEpLFxuICAgICAgKTogdW5kZWZpbmVkLFxuICAgICAgc291cmNlQ29kZVByb3ZpZGVyOiBuZXcgR2l0SHViU291cmNlQ29kZVByb3ZpZGVyKHtcbiAgICAgICAgb2F1dGhUb2tlbjogU2VjcmV0VmFsdWUuc2VjcmV0c01hbmFnZXIocHJvcHMuZ2l0aHViVG9rZW5TZWNyZXRJZCksXG4gICAgICAgIG93bmVyOiBwcm9wcy5naXRodWJPd25lcixcbiAgICAgICAgcmVwb3NpdG9yeTogcHJvcHMuZ2l0aHViUmVwbyxcbiAgICAgIH0pLFxuICAgICAgYXV0b0JyYW5jaENyZWF0aW9uOiB7XG4gICAgICAgIGF1dG9CdWlsZDogcHJvcHMuaXNBdXRvQnVpbGQsXG4gICAgICAgIHBhdHRlcm5zOiBbJ21hc3RlcicsICdtYWluJywgJ2ZlYXR1cmUvZGVwbG95KiddLFxuICAgICAgICBwdWxsUmVxdWVzdFByZXZpZXc6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIGN1c3RvbVJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzb3VyY2U6ICc8L15bXi5dKyR8XFxcXC4oPyEoY3NzfGdpZnxpY298anBnfGpzfHBuZ3x0eHR8c3ZnfHdvZmZ8dHRmfG1hcHxqc29uKSQpKFteLl0rJCkvPicsXG4gICAgICAgICAgdGFyZ2V0OiAnL2luZGV4Lmh0bWwnLFxuICAgICAgICAgIHN0YXR1czogUmVkaXJlY3RTdGF0dXMuUkVXUklURSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==