UNPKG

automation-deploy-template-iac

Version:

AWS CDK Infrastructure as Code templates for deploying full-stack applications with FastAPI backend, Vue.js frontend, and automated deployment

72 lines 9.21 kB
#!/usr/bin/env node "use strict"; 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 (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); const cdk = __importStar(require("aws-cdk-lib")); const database_stack_1 = require("../lib/database-stack"); const env_1 = require("../lib/config/env"); const constants_1 = require("../lib/config/constants"); const app = new cdk.App(); const projectName = (0, env_1.getProjectName)(); // Context から設定を取得 const environment = (0, env_1.getEnvironment)(app, 'dev'); const minCapacity = parseFloat(app.node.tryGetContext('minCapacity') || '0.5'); const maxCapacity = parseFloat(app.node.tryGetContext('maxCapacity') || '2'); const autoPauseMinutes = parseInt(app.node.tryGetContext('autoPauseMinutes') || '60'); const stackName = (0, constants_1.createStackName)(projectName, environment, constants_1.STACK_TYPES.DATABASE); console.log('========================='); console.log(`Project Name: ${projectName}`); console.log(`Environment: ${environment}`); console.log(`Stack Name: ${stackName}`); console.log(`Min Capacity: ${minCapacity} ACU`); console.log(`Max Capacity: ${maxCapacity} ACU`); console.log(`Auto Pause: ${autoPauseMinutes} minutes`); try { // DatabaseStackを作成 new database_stack_1.DatabaseStack(app, stackName, { projectName, environment: environment, minCapacity, maxCapacity, autoPauseMinutes, /* If you don't specify 'env', this stack will be environment-agnostic. * Account/Region-dependent features and context lookups will not work, * but a single synthesized template can be deployed anywhere. */ /* Uncomment the next line to specialize this stack for the AWS Account * and Region that are implied by the current CLI configuration. */ env: { account: (0, env_1.getCdkDefaultAccount)(), region: (0, env_1.getCdkDefaultRegion)() }, /* Uncomment the next line if you know exactly what Account and Region you * want to deploy the stack to. */ // env: { account: '123456789012', region: 'us-east-1' }, /* For more information, see https://docs.aws.amazon.com/cdk/latest/guide/environments.html */ tags: (0, constants_1.createDefaultTags)(projectName, environment, constants_1.STACK_TYPES.DATABASE, 'database') }); console.log(`Successfully created ${stackName} with capacity: ${minCapacity}-${maxCapacity} ACU`); } catch (error) { console.error('Failed to create DatabaseStack:', error instanceof Error ? error.message : String(error)); process.exit(1); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9iaW4vZGF0YWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxpREFBbUM7QUFDbkMsMERBQXNEO0FBQ3RELDJDQUE4RztBQUM5Ryx1REFBMEY7QUFFMUYsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBQSxvQkFBYyxHQUFFLENBQUM7QUFFckMsa0JBQWtCO0FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUEsb0JBQWMsRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDL0MsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDO0FBQy9FLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztBQUM3RSxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO0FBRXRGLE1BQU0sU0FBUyxHQUFHLElBQUEsMkJBQWUsRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLHVCQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFbEYsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDNUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixXQUFXLE1BQU0sQ0FBQyxDQUFDO0FBQ2hELE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLFdBQVcsTUFBTSxDQUFDLENBQUM7QUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLGdCQUFnQixVQUFVLENBQUMsQ0FBQztBQUV2RCxJQUFJLENBQUM7SUFDSCxtQkFBbUI7SUFDbkIsSUFBSSw4QkFBYSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUU7UUFDaEMsV0FBVztRQUNYLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLFdBQVc7UUFDWCxXQUFXO1FBQ1gsZ0JBQWdCO1FBQ2hCOzt5RUFFaUU7UUFFakU7MkVBQ21FO1FBQ25FLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFBLDBCQUFvQixHQUFFLEVBQUUsTUFBTSxFQUFFLElBQUEseUJBQW1CLEdBQUUsRUFBRTtRQUV2RTswQ0FDa0M7UUFDbEMseURBQXlEO1FBRXpELDhGQUE4RjtRQUM5RixJQUFJLEVBQUUsSUFBQSw2QkFBaUIsRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLHVCQUFXLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQztLQUNwRixDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixTQUFTLG1CQUFtQixXQUFXLElBQUksV0FBVyxNQUFNLENBQUMsQ0FBQztBQUNwRyxDQUFDO0FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztJQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLEVBQUUsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IERhdGFiYXNlU3RhY2sgfSBmcm9tICcuLi9saWIvZGF0YWJhc2Utc3RhY2snO1xuaW1wb3J0IHsgZ2V0UHJvamVjdE5hbWUsIGdldEVudmlyb25tZW50LCBnZXRDZGtEZWZhdWx0QWNjb3VudCwgZ2V0Q2RrRGVmYXVsdFJlZ2lvbiB9IGZyb20gJy4uL2xpYi9jb25maWcvZW52JztcbmltcG9ydCB7IFNUQUNLX1RZUEVTLCBjcmVhdGVTdGFja05hbWUsIGNyZWF0ZURlZmF1bHRUYWdzIH0gZnJvbSAnLi4vbGliL2NvbmZpZy9jb25zdGFudHMnO1xuXG5jb25zdCBhcHAgPSBuZXcgY2RrLkFwcCgpO1xuY29uc3QgcHJvamVjdE5hbWUgPSBnZXRQcm9qZWN0TmFtZSgpO1xuXG4vLyBDb250ZXh0IOOBi+OCieioreWumuOCkuWPluW+l1xuY29uc3QgZW52aXJvbm1lbnQgPSBnZXRFbnZpcm9ubWVudChhcHAsICdkZXYnKTtcbmNvbnN0IG1pbkNhcGFjaXR5ID0gcGFyc2VGbG9hdChhcHAubm9kZS50cnlHZXRDb250ZXh0KCdtaW5DYXBhY2l0eScpIHx8ICcwLjUnKTtcbmNvbnN0IG1heENhcGFjaXR5ID0gcGFyc2VGbG9hdChhcHAubm9kZS50cnlHZXRDb250ZXh0KCdtYXhDYXBhY2l0eScpIHx8ICcyJyk7XG5jb25zdCBhdXRvUGF1c2VNaW51dGVzID0gcGFyc2VJbnQoYXBwLm5vZGUudHJ5R2V0Q29udGV4dCgnYXV0b1BhdXNlTWludXRlcycpIHx8ICc2MCcpO1xuXG5jb25zdCBzdGFja05hbWUgPSBjcmVhdGVTdGFja05hbWUocHJvamVjdE5hbWUsIGVudmlyb25tZW50LCBTVEFDS19UWVBFUy5EQVRBQkFTRSk7XG5cbmNvbnNvbGUubG9nKCc9PT09PT09PT09PT09PT09PT09PT09PT09Jyk7XG5jb25zb2xlLmxvZyhgUHJvamVjdCBOYW1lOiAke3Byb2plY3ROYW1lfWApO1xuY29uc29sZS5sb2coYEVudmlyb25tZW50OiAke2Vudmlyb25tZW50fWApO1xuY29uc29sZS5sb2coYFN0YWNrIE5hbWU6ICR7c3RhY2tOYW1lfWApO1xuY29uc29sZS5sb2coYE1pbiBDYXBhY2l0eTogJHttaW5DYXBhY2l0eX0gQUNVYCk7XG5jb25zb2xlLmxvZyhgTWF4IENhcGFjaXR5OiAke21heENhcGFjaXR5fSBBQ1VgKTtcbmNvbnNvbGUubG9nKGBBdXRvIFBhdXNlOiAke2F1dG9QYXVzZU1pbnV0ZXN9IG1pbnV0ZXNgKTtcblxudHJ5IHtcbiAgLy8gRGF0YWJhc2VTdGFja+OCkuS9nOaIkFxuICBuZXcgRGF0YWJhc2VTdGFjayhhcHAsIHN0YWNrTmFtZSwge1xuICAgIHByb2plY3ROYW1lLFxuICAgIGVudmlyb25tZW50OiBlbnZpcm9ubWVudCxcbiAgICBtaW5DYXBhY2l0eSxcbiAgICBtYXhDYXBhY2l0eSxcbiAgICBhdXRvUGF1c2VNaW51dGVzLFxuICAgIC8qIElmIHlvdSBkb24ndCBzcGVjaWZ5ICdlbnYnLCB0aGlzIHN0YWNrIHdpbGwgYmUgZW52aXJvbm1lbnQtYWdub3N0aWMuXG4gICAgICogQWNjb3VudC9SZWdpb24tZGVwZW5kZW50IGZlYXR1cmVzIGFuZCBjb250ZXh0IGxvb2t1cHMgd2lsbCBub3Qgd29yayxcbiAgICAgKiBidXQgYSBzaW5nbGUgc3ludGhlc2l6ZWQgdGVtcGxhdGUgY2FuIGJlIGRlcGxveWVkIGFueXdoZXJlLiAqL1xuXG4gICAgLyogVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgdG8gc3BlY2lhbGl6ZSB0aGlzIHN0YWNrIGZvciB0aGUgQVdTIEFjY291bnRcbiAgICAgKiBhbmQgUmVnaW9uIHRoYXQgYXJlIGltcGxpZWQgYnkgdGhlIGN1cnJlbnQgQ0xJIGNvbmZpZ3VyYXRpb24uICovXG4gICAgZW52OiB7IGFjY291bnQ6IGdldENka0RlZmF1bHRBY2NvdW50KCksIHJlZ2lvbjogZ2V0Q2RrRGVmYXVsdFJlZ2lvbigpIH0sXG5cbiAgICAvKiBVbmNvbW1lbnQgdGhlIG5leHQgbGluZSBpZiB5b3Uga25vdyBleGFjdGx5IHdoYXQgQWNjb3VudCBhbmQgUmVnaW9uIHlvdVxuICAgICAqIHdhbnQgdG8gZGVwbG95IHRoZSBzdGFjayB0by4gKi9cbiAgICAvLyBlbnY6IHsgYWNjb3VudDogJzEyMzQ1Njc4OTAxMicsIHJlZ2lvbjogJ3VzLWVhc3QtMScgfSxcblxuICAgIC8qIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9sYXRlc3QvZ3VpZGUvZW52aXJvbm1lbnRzLmh0bWwgKi9cbiAgICB0YWdzOiBjcmVhdGVEZWZhdWx0VGFncyhwcm9qZWN0TmFtZSwgZW52aXJvbm1lbnQsIFNUQUNLX1RZUEVTLkRBVEFCQVNFLCAnZGF0YWJhc2UnKVxuICB9KTtcblxuICBjb25zb2xlLmxvZyhgU3VjY2Vzc2Z1bGx5IGNyZWF0ZWQgJHtzdGFja05hbWV9IHdpdGggY2FwYWNpdHk6ICR7bWluQ2FwYWNpdHl9LSR7bWF4Q2FwYWNpdHl9IEFDVWApO1xufSBjYXRjaCAoZXJyb3IpIHtcbiAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBEYXRhYmFzZVN0YWNrOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKSk7XG4gIHByb2Nlc3MuZXhpdCgxKTtcbn1cbiJdfQ==