How to add a tag to an AWS-CDK construct
According to aws-cdk doc you can add a tag to all constructs/ressources. Tags will inherits to constructs within same "tree". That's pretty cool.
Example using aws-cdk based on java:
MyStack stack = new MyStack(app, "nameOfStack");
Tag.add(stack, "tag_foo", "tag_foo");
AWS-Doc CDK Tagging
AWS CDK Reference: Tag
Tags can be applied to any construct. Tags are inherited, based on the scope. If you tag construct A, and A contains construct B, construct B inherits the tag.
Example from aws-cdk doc:
import { App, Stack, Tag } from require('@aws-cdk/core');
const app = new App();
const theBestStack = new Stack(app, 'MarketingSystem');
// Add a tag to all constructs in the stack
Tag.add(theBestStack, 'StackType', 'TheBest');
The above answers use the deprecated syntax.
Newer version of tagging the whole App:
const app = new cdk.App();
new SomeStack(app, 'SomeStack');
Tags.of(app).add("app", "my-app-name-here");
You could also tag individual stacks only:
const app = new cdk.App();
const stack = new SomeStack(app, 'SomeStack');
Tags.of(stack).add("stack-name", "SomeStack");
Or individual Constructs:
const usersTable = new dynamodb.Table(this, 'Users');
Tags.of(usersTable).add("owner", "team-andromeda");
Tags will apply to sub-Constructs hierarchically.
You can add tags to your CDK v2 app in Python
, like so:
import aws_cdk as cdk
app = cdk.App()
cdk.Tags.of(app).add("TEAM", "TeamA") # add tags to the entire app (all resources created by this app)
lambda_stack = LambdaStack(app, 'lambda-stack')
cdk.Tags.of(lambda_stack).add("TEAM", "TeamA") # add tags to the entire stack (all resources of this stack)
...or to a construct:
lambda_role = iam.Role(self,
assumed_by=iam.ServicePrincipal(service='lambda.amazonaws.com'),
role_name='lambda-role'
)
cdk.Tags.of(lambda_role).add("TEAM", "TeamA") # add tags to this construct (add tags to just this role)