Spaces:
Running
Running
import * as cdk from 'aws-cdk-lib'; | |
import { Construct } from 'constructs'; | |
import * as ecs from 'aws-cdk-lib/aws-ecs' | |
import { Network, EcrRepository, Web, BackEndCluster, Rds, EcsIAM, Rag} from './construct'; | |
// import * as sqs from 'aws-cdk-lib/aws-sqs'; | |
const errorMessageForBooleanContext = (key: string) => { | |
return `There was an error setting $ {key}. Possible causes are as follows. | |
- Trying to set it with the -c option instead of changing cdk.json | |
- cdk.json is set to a value that is not a boolean (e.g. “true” double quotes are not required) | |
- no items in cdk.json (unset) `; | |
}; | |
export class LangflowAppStack extends cdk.Stack { | |
constructor(scope: Construct, id: string, props?: cdk.StackProps) { | |
super(scope, id, props); | |
// Kendra Enable | |
const ragEnabled: boolean = this.node.tryGetContext('ragEnabled')!; | |
if (typeof ragEnabled !== 'boolean') { | |
throw new Error(errorMessageForBooleanContext('ragEnabled')); | |
} | |
if (ragEnabled) { | |
new Rag(this, 'Rag', { | |
}); | |
} | |
// Arch | |
const arch = ecs.CpuArchitecture.X86_64 | |
// VPC | |
const { vpc, cluster, ecsBackSG, dbSG, backendLogGroup, alb, albTG, albSG} = new Network(this, 'Network') | |
// ECR | |
const { ecrBackEndRepository } = new EcrRepository(this, 'Ecr', { | |
arch:arch | |
}) | |
// RDS | |
// VPCとSGのリソース情報をPropsとして引き渡す | |
const { rdsCluster } = new Rds(this, 'Rds', { vpc, dbSG }) | |
// IAM | |
const { backendTaskRole, backendTaskExecutionRole } = new EcsIAM(this, 'EcsIAM',{ | |
rdsCluster:rdsCluster | |
}) | |
const backendService = new BackEndCluster(this, 'backend', { | |
cluster:cluster, | |
ecsBackSG:ecsBackSG, | |
ecrBackEndRepository:ecrBackEndRepository, | |
backendTaskRole:backendTaskRole, | |
backendTaskExecutionRole:backendTaskExecutionRole, | |
backendLogGroup:backendLogGroup, | |
rdsCluster:rdsCluster, | |
arch:arch, | |
albTG:albTG | |
}) | |
backendService.node.addDependency(rdsCluster); | |
const frontendService = new Web(this, 'frontend',{ | |
cluster:cluster, | |
alb:alb, | |
albSG:albSG | |
}) | |
frontendService.node.addDependency(backendService); | |
} | |
} | |