In my AWS CDK/ Typescript project I have 1 main stack i.e. aws-microservices-stack.ts
rest all typescript files are just constructs extended in aws-microservices-stack.ts

But when I run cdk deploy I get error
Since this app includes more than a single stack, specify which stacks to use (wildcards are supported) or specify
--allStacks: AwsMicroservicesStack · AwsMicroservicesStack/Database · AwsMicroservicesStack/Microservices · AwsMicroservicesStack/ApiGateway
How can I mark aws-microservices-stack.ts so that deploy command picks up only that stack
aws-microservices-stack.ts
import { Stack, StackProps } from 'aws-cdk-lib';;
import { Construct } from 'constructs';
import { SwnApiGateway } from './apigateway';
import { SwnDatabase } from './database';
import { SwnMicroServices } from './microservices';
export class AwsMicroservicesStack extends Stack {
constructor(scope: Construct, id: string, props?: StackProps) {
super(scope, id, props);
const database = new SwnDatabase(this, 'Database');
....
}
}
database.ts
import { RemovalPolicy, Stack } from 'aws-cdk-lib';
import { AttributeType, BillingMode, ITable, Table } from 'aws-cdk-lib/aws-dynamodb';
import { Construct } from 'constructs';
export class SwnDatabase extends Stack {
public readonly productTable: ITable;
constructor(scope: Construct, id: string) {
super(scope, id);
// DynamoDb Table
const productTable = new Table(this, 'product', {
partitionKey: {
name: 'id',
type: AttributeType.STRING
},
tableName: 'product',
removalPolicy: RemovalPolicy.DESTROY,
billingMode: BillingMode.PAY_PER_REQUEST
});
this.productTable = productTable;
}
}
You can't "mark" it for deployment, you need to specify which stack to deploy with:
cdk deploy $yourstackname
The names of the declares stacks are listed by
cdk ls
Here you can read more about cdk stacks handling.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With