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
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 (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==