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
67 lines • 7.94 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 network_stack_1 = require("../lib/network-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)();
// 環境変数またはコンテキストから環境を取得(デフォルトはdev)
const environment = (0, env_1.getEnvironment)(app);
const costLevel = (0, env_1.getCostLevel)(app);
const stackName = (0, constants_1.createStackName)(projectName, environment, constants_1.STACK_TYPES.NETWORK);
// バリデーション
(0, env_1.validateCostLevel)(costLevel);
console.log(`Project Name: ${projectName}`);
console.log(`Environment: ${environment}`);
console.log(`Cost Level: ${costLevel}`);
console.log(`Stack Name: ${stackName}`);
try {
// NetworkStackを作成
new network_stack_1.NetworkStack(app, stackName, {
projectName,
costLevel: costLevel,
environment: environment,
/* 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.NETWORK, costLevel)
});
console.log(`Successfully created ${stackName} with cost level: ${costLevel}`);
}
catch (error) {
console.error('Failed to create NetworkStack:', error.message);
process.exit(1);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2Jpbi9uZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsaURBQW1DO0FBQ25DLHdEQUFvRDtBQUNwRCwyQ0FBK0k7QUFDL0ksdURBQTBGO0FBRTFGLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzFCLE1BQU0sV0FBVyxHQUFHLElBQUEsb0JBQWMsR0FBRSxDQUFDO0FBRXJDLGtDQUFrQztBQUNsQyxNQUFNLFdBQVcsR0FBRyxJQUFBLG9CQUFjLEVBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEMsTUFBTSxTQUFTLEdBQUcsSUFBQSxrQkFBWSxFQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLE1BQU0sU0FBUyxHQUFHLElBQUEsMkJBQWUsRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLHVCQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFakYsVUFBVTtBQUNWLElBQUEsdUJBQWlCLEVBQUMsU0FBUyxDQUFDLENBQUM7QUFFN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0FBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0FBRXhDLElBQUksQ0FBQztJQUNILGtCQUFrQjtJQUNsQixJQUFJLDRCQUFZLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRTtRQUMvQixXQUFXO1FBQ1gsU0FBUyxFQUFFLFNBQXlEO1FBQ3BFLFdBQVcsRUFBRSxXQUFXO1FBQ3hCOzt5RUFFaUU7UUFFakU7MkVBQ21FO1FBQ25FLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFBLDBCQUFvQixHQUFFLEVBQUUsTUFBTSxFQUFFLElBQUEseUJBQW1CLEdBQUUsRUFBRTtRQUV2RTswQ0FDa0M7UUFDbEMseURBQXlEO1FBRXpELDhGQUE4RjtRQUM5RixJQUFJLEVBQUUsSUFBQSw2QkFBaUIsRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLHVCQUFXLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQztLQUNsRixDQUFDLENBQUM7SUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixTQUFTLHFCQUFxQixTQUFTLEVBQUUsQ0FBQyxDQUFDO0FBQ2pGLENBQUM7QUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO0lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsRUFBRyxLQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IE5ldHdvcmtTdGFjayB9IGZyb20gJy4uL2xpYi9uZXR3b3JrLXN0YWNrJztcbmltcG9ydCB7IGdldFByb2plY3ROYW1lLCBnZXRFbnZpcm9ubWVudCwgZ2V0Q29zdExldmVsLCBnZXRDZGtEZWZhdWx0QWNjb3VudCwgZ2V0Q2RrRGVmYXVsdFJlZ2lvbiwgdmFsaWRhdGVDb3N0TGV2ZWwgfSBmcm9tICcuLi9saWIvY29uZmlnL2Vudic7XG5pbXBvcnQgeyBTVEFDS19UWVBFUywgY3JlYXRlU3RhY2tOYW1lLCBjcmVhdGVEZWZhdWx0VGFncyB9IGZyb20gJy4uL2xpYi9jb25maWcvY29uc3RhbnRzJztcblxuY29uc3QgYXBwID0gbmV3IGNkay5BcHAoKTtcbmNvbnN0IHByb2plY3ROYW1lID0gZ2V0UHJvamVjdE5hbWUoKTtcblxuLy8g55Kw5aKD5aSJ5pWw44G+44Gf44Gv44Kz44Oz44OG44Kt44K544OI44GL44KJ55Kw5aKD44KS5Y+W5b6X77yI44OH44OV44Kp44Or44OI44GvZGV277yJXG5jb25zdCBlbnZpcm9ubWVudCA9IGdldEVudmlyb25tZW50KGFwcCk7XG5jb25zdCBjb3N0TGV2ZWwgPSBnZXRDb3N0TGV2ZWwoYXBwKTtcbmNvbnN0IHN0YWNrTmFtZSA9IGNyZWF0ZVN0YWNrTmFtZShwcm9qZWN0TmFtZSwgZW52aXJvbm1lbnQsIFNUQUNLX1RZUEVTLk5FVFdPUkspO1xuXG4vLyDjg5Djg6rjg4fjg7zjgrfjg6fjg7NcbnZhbGlkYXRlQ29zdExldmVsKGNvc3RMZXZlbCk7XG5cbmNvbnNvbGUubG9nKGBQcm9qZWN0IE5hbWU6ICR7cHJvamVjdE5hbWV9YCk7XG5jb25zb2xlLmxvZyhgRW52aXJvbm1lbnQ6ICR7ZW52aXJvbm1lbnR9YCk7XG5jb25zb2xlLmxvZyhgQ29zdCBMZXZlbDogJHtjb3N0TGV2ZWx9YCk7XG5jb25zb2xlLmxvZyhgU3RhY2sgTmFtZTogJHtzdGFja05hbWV9YCk7XG5cbnRyeSB7XG4gIC8vIE5ldHdvcmtTdGFja+OCkuS9nOaIkFxuICBuZXcgTmV0d29ya1N0YWNrKGFwcCwgc3RhY2tOYW1lLCB7XG4gICAgcHJvamVjdE5hbWUsXG4gICAgY29zdExldmVsOiBjb3N0TGV2ZWwgYXMgJ21pbmltYWwnIHwgJ3N0YW5kYXJkJyB8ICdoaWdoLWF2YWlsYWJpbGl0eScsXG4gICAgZW52aXJvbm1lbnQ6IGVudmlyb25tZW50LFxuICAgIC8qIElmIHlvdSBkb24ndCBzcGVjaWZ5ICdlbnYnLCB0aGlzIHN0YWNrIHdpbGwgYmUgZW52aXJvbm1lbnQtYWdub3N0aWMuXG4gICAgICogQWNjb3VudC9SZWdpb24tZGVwZW5kZW50IGZlYXR1cmVzIGFuZCBjb250ZXh0IGxvb2t1cHMgd2lsbCBub3Qgd29yayxcbiAgICAgKiBidXQgYSBzaW5nbGUgc3ludGhlc2l6ZWQgdGVtcGxhdGUgY2FuIGJlIGRlcGxveWVkIGFueXdoZXJlLiAqL1xuXG4gICAgLyogVW5jb21tZW50IHRoZSBuZXh0IGxpbmUgdG8gc3BlY2lhbGl6ZSB0aGlzIHN0YWNrIGZvciB0aGUgQVdTIEFjY291bnRcbiAgICAgKiBhbmQgUmVnaW9uIHRoYXQgYXJlIGltcGxpZWQgYnkgdGhlIGN1cnJlbnQgQ0xJIGNvbmZpZ3VyYXRpb24uICovXG4gICAgZW52OiB7IGFjY291bnQ6IGdldENka0RlZmF1bHRBY2NvdW50KCksIHJlZ2lvbjogZ2V0Q2RrRGVmYXVsdFJlZ2lvbigpIH0sXG5cbiAgICAvKiBVbmNvbW1lbnQgdGhlIG5leHQgbGluZSBpZiB5b3Uga25vdyBleGFjdGx5IHdoYXQgQWNjb3VudCBhbmQgUmVnaW9uIHlvdVxuICAgICAqIHdhbnQgdG8gZGVwbG95IHRoZSBzdGFjayB0by4gKi9cbiAgICAvLyBlbnY6IHsgYWNjb3VudDogJzEyMzQ1Njc4OTAxMicsIHJlZ2lvbjogJ3VzLWVhc3QtMScgfSxcblxuICAgIC8qIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9sYXRlc3QvZ3VpZGUvZW52aXJvbm1lbnRzLmh0bWwgKi9cbiAgICB0YWdzOiBjcmVhdGVEZWZhdWx0VGFncyhwcm9qZWN0TmFtZSwgZW52aXJvbm1lbnQsIFNUQUNLX1RZUEVTLk5FVFdPUkssIGNvc3RMZXZlbClcbiAgfSk7XG5cbiAgY29uc29sZS5sb2coYFN1Y2Nlc3NmdWxseSBjcmVhdGVkICR7c3RhY2tOYW1lfSB3aXRoIGNvc3QgbGV2ZWw6ICR7Y29zdExldmVsfWApO1xufSBjYXRjaCAoZXJyb3IpIHtcbiAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGNyZWF0ZSBOZXR3b3JrU3RhY2s6JywgKGVycm9yIGFzIEVycm9yKS5tZXNzYWdlKTtcbiAgcHJvY2Vzcy5leGl0KDEpO1xufSAiXX0=