在python中,我正在执行类似的操作以将标记添加到构造的所有资源中:
core.Tag.add(construct, 'Key', 'Value')
我的问题是,CDK是否支持在一个命令中添加多个标签,还是我必须迭代一次将它们添加一对。像这样:
tags = {'Key1': 'Value1', 'Key2': 'Value2'}
for key, value in tags.items():
core.Tag.add(construct, key, value)
我在文档中找不到任何东西...
答案 0 :(得分:1)
您是正确的。 CDK当前无法使用1种方法添加多个标签。但是您可以尝试找出一种直接操作aws_cdk.core.TagManager的方法。我不建议这样做,因为Python CDK使用JSII与用TypeScript编写的实际CDK进行交互。这就是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])