首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS cdk如何在TypeScript中标记资源?

AWS cdk如何在TypeScript中标记资源?
EN

Stack Overflow用户
提问于 2020-09-09 18:37:46
回答 1查看 1.8K关注 0票数 4

我有一个cdk项目,在其中我创建了一个DynamoDB表,并向其添加标签,如下所示:

代码语言:javascript
复制
import * as core from "@aws-cdk/core";
import * as dynamodb from "@aws-cdk/aws-dynamodb";
import { Tag } from "@aws-cdk/core";

export class DynamoDbTable extends core.Construct {
    constructor(scope: core.Construct, id: string) {
        super(scope, id);
        function addTags(resource : any) {
            Tag.add(resource, "Key", "value");
        }
        const table = new dynamodb.Table(this, "abcd", {
            partitionKey: { name: "name", type: dynamodb.AttributeType.STRING },
            stream: dynamodb.StreamViewType.NEW_AND_OLD_IMAGES,
            tableName: 'tableName',
            billingMode: dynamodb.BillingMode.PAY_PER_REQUEST,
        });
        addTags(table)
    }
}

上面的代码可以很好地将标签添加到表中,但是这个标签方法现在已经被弃用了,here,那么我如何替换这个标签方法呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-09 18:43:10

您可以标记一个构造,而CDK应该递归地添加标记。您不需要包含嵌入的addTags函数。例如,要在代码中使用较新的非弃用方法,您可以使用this来引用您正在处理的构造,并执行以下操作:

代码语言:javascript
复制
import { Tag } from "@aws-cdk/core";

export class DynamoDbTable extends core.Construct {
    constructor(scope: core.Construct, id: string) {
        super(scope, id);
        
        const table = new dynamodb.Table(this, "abcd", {
            partitionKey: { name: "name", type: dynamodb.AttributeType.STRING },
            stream: dynamodb.StreamViewType.NEW_AND_OLD_IMAGES,
            tableName: 'tableName',
            billingMode: dynamodb.BillingMode.PAY_PER_REQUEST,
        });

        Tags.of(this).add('Foo', 'Bar');
    }
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63809869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档