Brett Gullan
06/23/2021, 2:18 AMthdxr
06/23/2021, 2:22 AMthdxr
06/23/2021, 2:23 AMBrett Gullan
06/23/2021, 2:25 AMthdxr
06/23/2021, 2:34 AMthdxr
06/23/2021, 2:35 AMBrett Gullan
06/23/2021, 2:36 AMBrett Gullan
06/23/2021, 2:36 AMthdxr
06/23/2021, 2:37 AMscope.local
which returns true when in debug modeBrett Gullan
06/23/2021, 2:39 AMthdxr
06/23/2021, 2:40 AMexport class Stack extends sst.Stack {
constructor(scope: <http://sst.App|sst.App>, id: string, props?: StackProps) {
super(scope, id, props)
const network = Network(this, scope)
const prisma = Prisma(this, scope)
const database = Database(this, scope, { network, prisma })
Api(this, { network, prisma, database })
}
}
thdxr
06/23/2021, 2:40 AMexport function Api(stack: sst.Stack, props: Props) {
const router = new sst.Function(stack, "router", {
vpc: props.network.vpc,
vpcSubnets: props.network.vpc && {
subnetType: ec2.SubnetType.PRIVATE,
},
layers: [...props.prisma.layers],
runtime: lambda.Runtime.NODEJS_14_X,
handler: `src/functions/router.handler`,
environment: props.database.env,
bundle: {
externalModules: props.prisma.externalModules,
},
})
thdxr
06/23/2021, 2:40 AMexport function Network(stack: sst.Stack, scope: <http://sst.App|sst.App>) {
if (scope.local)
return {
vpc: undefined,
}
thdxr
06/23/2021, 2:40 AMundefined
in local devBrett Gullan
06/23/2021, 2:41 AMFrank
Frank
Brett Gullan
06/23/2021, 4:42 AMthis.vpc = new Vpc(this, 'CustomVPC', {
cidr: '10.0.0.0/16',
natGateways: 0,
maxAzs: 2,
subnetConfiguration: [
{
name: 'publicSubnet',
subnetType: SubnetType.PUBLIC,
cidrMask: 24,
},
{
name: 'isolatedSubnet',
subnetType: SubnetType.ISOLATED,
cidrMask: 24,
},
],
})
Frank