Amazon web services 在AWS云开发工具包(CDK)中传播标记的困难
我们正在使用AWS CDK部署大部分基础设施,包括ECS资源。我有一个创建ECS集群、任务定义和任务的文件。根据,我将使用Tag.add()将标记应用于文件范围内的所有内容,包括所有ECS资源 部署堆栈时,标记应用于集群和任务定义,但不应用于任务。我也没有收到任何错误消息;标记只是默默地不应用于任务。将标签直接应用到任务似乎不是一个受支持的解决方法,所以我被卡住了。有人知道任务标记的解决方案吗 将标签直接应用到任务似乎不是一个受支持的解决方法,所以我被卡住了 我不太熟悉ECS任务,但您是否尝试过直接将标记写入CloudFormation资源构造 发件人: 修改AWS构造背后的AWS云信息资源 如果[sic]构造缺少某个功能,或者您正试图解决某个问题,则可以修改由该构造封装的CFN资源 所有构造都包含相应的CFN资源 访问CFN资源类的基本方法是使用Amazon web services 在AWS云开发工具包(CDK)中传播标记的困难,amazon-web-services,aws-cdk,Amazon Web Services,Aws Cdk,我们正在使用AWS CDK部署大部分基础设施,包括ECS资源。我有一个创建ECS集群、任务定义和任务的文件。根据,我将使用Tag.add()将标记应用于文件范围内的所有内容,包括所有ECS资源 部署堆栈时,标记应用于集群和任务定义,但不应用于任务。我也没有收到任何错误消息;标记只是默默地不应用于任务。将标签直接应用到任务似乎不是一个受支持的解决方法,所以我被卡住了。有人知道任务标记的解决方案吗 将标签直接应用到任务似乎不是一个受支持的解决方法,所以我被卡住了 我不太熟悉ECS任务,但您是否尝试过
construct.node.defaultChild
(Python:default\u child
),将其强制转换为正确的类型(如果需要),并修改其属性
原始覆盖
如果CFN资源中缺少属性,则可以使用原始覆盖绕过所有键入。这也使得删除合成属性成为可能
使用addOverride
方法之一(Python:add\u override
)方法,如下例所示
# Get the AWS CloudFormation resource
cfn_bucket = bucket.node.default_child
# Use dot notation to address inside the resource template fragment
cfn_bucket.add_override("Properties.VersioningConfiguration.Status", "NewStatus")
cfn_bucket.add_deletion_override("Properties.VersioningConfiguration.Status")
# add_property_override is a convenience function, which implies the
# path starts with "Properties."
cfn_bucket.add_property_override("VersioningConfiguration.Status", "NewStatus")
cfn_bucket.add_property_deletion_override("VersioningConfiguration.Status")
将标签直接应用到任务似乎不是一个受支持的解决方法,所以我被卡住了
我不太熟悉ECS任务,但您是否尝试过直接将标记写入CloudFormation资源构造
发件人:
修改AWS构造背后的AWS云信息资源
如果[sic]构造缺少某个功能,或者您正试图解决某个问题,则可以修改由该构造封装的CFN资源
所有构造都包含相应的CFN资源
访问CFN资源类的基本方法是使用construct.node.defaultChild
(Python:default\u child
),将其强制转换为正确的类型(如果需要),并修改其属性
原始覆盖
如果CFN资源中缺少属性,则可以使用原始覆盖绕过所有键入。这也使得删除合成属性成为可能
使用addOverride
方法之一(Python:add\u override
)方法,如下例所示
# Get the AWS CloudFormation resource
cfn_bucket = bucket.node.default_child
# Use dot notation to address inside the resource template fragment
cfn_bucket.add_override("Properties.VersioningConfiguration.Status", "NewStatus")
cfn_bucket.add_deletion_override("Properties.VersioningConfiguration.Status")
# add_property_override is a convenience function, which implies the
# path starts with "Properties."
cfn_bucket.add_property_override("VersioningConfiguration.Status", "NewStatus")
cfn_bucket.add_property_deletion_override("VersioningConfiguration.Status")
如果您正在使用ECS模式构造(例如ApplicationLoadBalancedArgateService),则可以通过添加以下标志来实现这一点:
enable_ecs_managed_tags=True,
propagate_tags=aws_ecs.PropagatedTagSource.TASK_DEFINITION,
在此之后,我的标记从CDK堆栈传播到ECS群集/服务/任务定义,然后传播到基础任务。如果您使用的是ECS模式构造(例如ApplicationLoadBalancedArgateService),您可以通过添加以下标志来实现这一点:
enable_ecs_managed_tags=True,
propagate_tags=aws_ecs.PropagatedTagSource.TASK_DEFINITION,
在这之后,我的标签从CDK堆栈传播到ECS集群/服务/任务定义,然后传播到底层任务。实际上我错过了文档的这一部分。这看起来很有可能奏效。我会试试的,谢谢你指出!事实上,我错过了那部分文档。这看起来很有可能奏效。我会试试的,谢谢你指出!