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
62 lines • 6.84 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 secrets_stack_1 = require("../lib/secrets-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)();
const environment = (0, env_1.getEnvironment)(app, 'dev');
const stackName = secrets_stack_1.SecretsStack.getStackName(projectName, environment);
console.log('=========================');
console.log('Secrets Stack Deployment');
console.log('=========================');
console.log(`Project Name: ${projectName}`);
console.log(`Environment: ${environment}`);
console.log(`Stack Name: ${stackName}`);
console.log('=========================');
try {
new secrets_stack_1.SecretsStack(app, stackName, {
projectName,
environment,
env: {
account: (0, env_1.getCdkDefaultAccount)(),
region: (0, env_1.getCdkDefaultRegion)()
},
tags: (0, constants_1.createDefaultTags)(projectName, environment, constants_1.STACK_TYPES.SECRETS, 'secrets-management')
});
console.log(`✅ Successfully created ${stackName}`);
console.log('\nTo deploy this stack:');
console.log(` cdk deploy ${stackName}`);
console.log('\nAfter deployment, use the secret in backend stack:');
console.log(` cdk deploy --context customSecretName=${projectName}-${environment}-custom-secrets`);
}
catch (error) {
console.error('❌ Failed to create SecretsStack:', error instanceof Error ? error.message : String(error));
process.exit(1);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2Jpbi9zZWNyZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsaURBQW1DO0FBQ25DLHdEQUFvRDtBQUNwRCwyQ0FBOEc7QUFDOUcsdURBQXlFO0FBRXpFLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQzFCLE1BQU0sV0FBVyxHQUFHLElBQUEsb0JBQWMsR0FBRSxDQUFDO0FBQ3JDLE1BQU0sV0FBVyxHQUFHLElBQUEsb0JBQWMsRUFBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFL0MsTUFBTSxTQUFTLEdBQUcsNEJBQVksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBRXRFLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztBQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQ3pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDNUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsV0FBVyxFQUFFLENBQUMsQ0FBQztBQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7QUFFekMsSUFBSSxDQUFDO0lBQ0gsSUFBSSw0QkFBWSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUU7UUFDL0IsV0FBVztRQUNYLFdBQVc7UUFDWCxHQUFHLEVBQUU7WUFDSCxPQUFPLEVBQUUsSUFBQSwwQkFBb0IsR0FBRTtZQUMvQixNQUFNLEVBQUUsSUFBQSx5QkFBbUIsR0FBRTtTQUM5QjtRQUNELElBQUksRUFBRSxJQUFBLDZCQUFpQixFQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsdUJBQVcsQ0FBQyxPQUFPLEVBQUUsb0JBQW9CLENBQUM7S0FDN0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNuRCxPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7SUFDcEUsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQ0FBMkMsV0FBVyxJQUFJLFdBQVcsaUJBQWlCLENBQUMsQ0FBQztBQUN0RyxDQUFDO0FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztJQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLEVBQUUsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFNlY3JldHNTdGFjayB9IGZyb20gJy4uL2xpYi9zZWNyZXRzLXN0YWNrJztcbmltcG9ydCB7IGdldFByb2plY3ROYW1lLCBnZXRFbnZpcm9ubWVudCwgZ2V0Q2RrRGVmYXVsdEFjY291bnQsIGdldENka0RlZmF1bHRSZWdpb24gfSBmcm9tICcuLi9saWIvY29uZmlnL2Vudic7XG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0VGFncywgU1RBQ0tfVFlQRVMgfSBmcm9tICcuLi9saWIvY29uZmlnL2NvbnN0YW50cyc7XG5cbmNvbnN0IGFwcCA9IG5ldyBjZGsuQXBwKCk7XG5jb25zdCBwcm9qZWN0TmFtZSA9IGdldFByb2plY3ROYW1lKCk7XG5jb25zdCBlbnZpcm9ubWVudCA9IGdldEVudmlyb25tZW50KGFwcCwgJ2RldicpO1xuXG5jb25zdCBzdGFja05hbWUgPSBTZWNyZXRzU3RhY2suZ2V0U3RhY2tOYW1lKHByb2plY3ROYW1lLCBlbnZpcm9ubWVudCk7XG5cbmNvbnNvbGUubG9nKCc9PT09PT09PT09PT09PT09PT09PT09PT09Jyk7XG5jb25zb2xlLmxvZygnU2VjcmV0cyBTdGFjayBEZXBsb3ltZW50Jyk7XG5jb25zb2xlLmxvZygnPT09PT09PT09PT09PT09PT09PT09PT09PScpO1xuY29uc29sZS5sb2coYFByb2plY3QgTmFtZTogJHtwcm9qZWN0TmFtZX1gKTtcbmNvbnNvbGUubG9nKGBFbnZpcm9ubWVudDogJHtlbnZpcm9ubWVudH1gKTtcbmNvbnNvbGUubG9nKGBTdGFjayBOYW1lOiAke3N0YWNrTmFtZX1gKTtcbmNvbnNvbGUubG9nKCc9PT09PT09PT09PT09PT09PT09PT09PT09Jyk7XG5cbnRyeSB7XG4gIG5ldyBTZWNyZXRzU3RhY2soYXBwLCBzdGFja05hbWUsIHtcbiAgICBwcm9qZWN0TmFtZSxcbiAgICBlbnZpcm9ubWVudCxcbiAgICBlbnY6IHsgXG4gICAgICBhY2NvdW50OiBnZXRDZGtEZWZhdWx0QWNjb3VudCgpLCBcbiAgICAgIHJlZ2lvbjogZ2V0Q2RrRGVmYXVsdFJlZ2lvbigpIFxuICAgIH0sXG4gICAgdGFnczogY3JlYXRlRGVmYXVsdFRhZ3MocHJvamVjdE5hbWUsIGVudmlyb25tZW50LCBTVEFDS19UWVBFUy5TRUNSRVRTLCAnc2VjcmV0cy1tYW5hZ2VtZW50JylcbiAgfSk7XG5cbiAgY29uc29sZS5sb2coYOKchSBTdWNjZXNzZnVsbHkgY3JlYXRlZCAke3N0YWNrTmFtZX1gKTtcbiAgY29uc29sZS5sb2coJ1xcblRvIGRlcGxveSB0aGlzIHN0YWNrOicpO1xuICBjb25zb2xlLmxvZyhgICBjZGsgZGVwbG95ICR7c3RhY2tOYW1lfWApO1xuICBjb25zb2xlLmxvZygnXFxuQWZ0ZXIgZGVwbG95bWVudCwgdXNlIHRoZSBzZWNyZXQgaW4gYmFja2VuZCBzdGFjazonKTtcbiAgY29uc29sZS5sb2coYCAgY2RrIGRlcGxveSAtLWNvbnRleHQgY3VzdG9tU2VjcmV0TmFtZT0ke3Byb2plY3ROYW1lfS0ke2Vudmlyb25tZW50fS1jdXN0b20tc2VjcmV0c2ApO1xufSBjYXRjaCAoZXJyb3IpIHtcbiAgY29uc29sZS5lcnJvcign4p2MIEZhaWxlZCB0byBjcmVhdGUgU2VjcmV0c1N0YWNrOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKSk7XG4gIHByb2Nlc3MuZXhpdCgxKTtcbn1cblxuIl19