如何将标签添加到AWS-CDK构造

Sma*_* Ma 1 aws-cdk

如何将标签添加到特定于AWS-CDK的构造中,或者如何向堆栈中创建的所有资源添加更好的标签定义?

Dzh*_*eyt 17

上面的答案使用了不推荐使用的语法。

标记整个应用程序的较新版本:

const app = new cdk.App();
new SomeStack(app, 'SomeStack');
Tags.of(app).add("app", "my-app-name-here");
Run Code Online (Sandbox Code Playgroud)

您还可以仅标记单个堆栈:

const app = new cdk.App();
const stack = new SomeStack(app, 'SomeStack');
Tags.of(stack).add("stack-name", "SomeStack");
Run Code Online (Sandbox Code Playgroud)

或单独的构造:

const usersTable = new dynamodb.Table(this, 'Users');
Tags.of(usersTable).add("owner", "team-andromeda");
Run Code Online (Sandbox Code Playgroud)

标签将分层应用于子结构。


Sma*_* Ma 5

根据aws-cdk doc,您可以将标记添加到所有构造/资源。标签将继承到同一“树”中的构造。太酷了。

使用基于Java的aws-cdk的示例:

MyStack stack = new MyStack(app, "nameOfStack");
stack.apply(new Tag("tag_foo", "value_bar"));
Run Code Online (Sandbox Code Playgroud)

AWS-Doc CDK标记

标签可以应用于任何构造。标签是根据作用域继承的。如果标记构造A,并且A包含构造B,则构造B继承该标签。Tag API支持:

来自aws-cdk doc的示例:

import cdk = require('@aws-cdk/cdk');
const app = new cdk.App();
const theBestStack = new cdk.Stack(app, 'MarketingSystem');
theBestStack.node.apply(new cdk.Tag('StackType', 'TheBest'));
Run Code Online (Sandbox Code Playgroud)