简体   繁体   English

是否可以在 AWS CDK 构造上添加多个标签?

[英]Is it possible to add multiple tags on a AWS CDK construct?

In python I am doing something like this to add tags to all resources of a construct: core.Tag.add(construct, 'Key', 'Value')在 python 我正在做这样的事情来为构造的所有资源添加标签: core.Tag.add(construct, 'Key', 'Value')

My question is, does the CDK support adding multiple tags in one command or do I have to iterate to add them one pair at a time.我的问题是,CDK 是否支持在一个命令中添加多个标签,或者我是否必须迭代以一次添加一对。 Something like this:像这样的东西:

tags = {'Key1': 'Value1', 'Key2': 'Value2'}
for key, value in tags.items():
    core.Tag.add(construct, key, value)

I couldn't find anything in the documentation...我在文档中找不到任何东西...

You are correct.你是对的。 There is currently no way in CDK to add multiple tags using 1 method. CDK 中目前无法使用 1 方法添加多个标签。 But you can try to figure out a way to manipulate aws_cdk.core.TagManager directly.但是您可以尝试找出一种直接操作 aws_cdk.core.TagManager 的方法。 I don't recommend this because the Python CDK uses JSII to interact with the actual CDK written in TypeScript.我不推荐这样做,因为 Python CDK 使用 JSII 与用 TypeScript 编写的实际 CDK 进行交互。 Here's what core.Tag.add looks like这是 core.Tag.add 的样子

    @jsii.member(jsii_name="add")
    @classmethod
    def add(cls, scope: "Construct", key: str, value: str, *, apply_to_launched_instances: typing.Optional[bool]=None, exclude_resource_types: typing.Optional[typing.List[str]]=None, include_resource_types: typing.Optional[typing.List[str]]=None, priority: typing.Optional[jsii.Number]=None) -> None:
        """add tags to the node of a construct and all its the taggable children.

        :param scope: -
        :param key: -
        :param value: -
        :param props: -
        :param apply_to_launched_instances: Whether the tag should be applied to instances in an AutoScalingGroup. Default: true
        :param exclude_resource_types: An array of Resource Types that will not receive this tag. An empty array will allow this tag to be applied to all resources. A non-empty array will apply this tag only if the Resource type is not in this array. Default: []
        :param include_resource_types: An array of Resource Types that will receive this tag. An empty array will match any Resource. A non-empty array will apply this tag only to Resource types that are included in this array. Default: []
        :param priority: Priority of the tag operation. Higher or equal priority tags will take precedence. Setting priority will enable the user to control tags when they need to not follow the default precedence pattern of last applied and closest to the construct in the tree. Default: Default priorities: - 100 for {@link SetTag} - 200 for {@link RemoveTag} - 50 for tags added directly to CloudFormation resources
        """
        props = TagProps(apply_to_launched_instances=apply_to_launched_instances, exclude_resource_types=exclude_resource_types, include_resource_types=include_resource_types, priority=priority)

        return jsii.sinvoke(cls, "add", [scope, key, value, props])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM