gpt4 book ai didi

amazon-web-services - AWS cdk 如何在 TypeScript 中标记资源?

转载 作者:行者123 更新时间:2023-12-04 02:31:49 24 4
gpt4 key购买 nike

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

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那么我该如何替换这种标记方法呢?

最佳答案

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

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');
}
}

关于amazon-web-services - AWS cdk 如何在 TypeScript 中标记资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63809869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com