繁体   English   中英

当目标位于依赖于目标组堆栈的单独堆栈中时,如何删除 CDK 中的目标组目标

[英]How can I delete the target group targets in CDK while the targets is in a separate stack that depends on the target group stack

我们有一个问题,从目标组中删除 ECS 服务目标,然后通过 CDK 删除不再需要的目标组,因为 CDK 会抱怨它仍在被 ecs_service 堆栈中的 ECS 使用。 我们在一个堆栈ecs_load_balancer中有我们的目标组,在不同的堆栈ecs_service中有我们的 ECS 服务。 ecs_service栈依赖于ecs_load_balancer

当我们打破依赖时: props.targetGroup.addTarget(this.service); 在 ecs_service 堆栈中。 CDK 将尝试删除目标组的 output 并修改目标组资源(正如我在查看 bb cdk diff 时所看到的)。 虽然 CDK 首先部署 ecs_load_balancer 堆栈,但 CDK 会认为此资源目标组仍在使用中,并在尝试删除/修改目标组时抛出错误:

Export Personal-Dev-us-east-1-ACSCalling-EcsLoadBalancer:ExportsOutputRefLoadBalancerListenerTargetGroupGroup27D2B0EED93AD008 cannot be deleted as it is in use by Personal-Dev-us-east-1-ACSCalling-EcsService and Personal-Dev-us-east-1-ACSCalling-OnePod-EcsService

我们可以在 AWS 控制台的目标组中删除 ECS 目标。 但由于这个交叉堆栈引用问题,不能通过 CDK。

我尝试手动添加在 ecs_load_balancer 中删除的 Output。 但是我仍然无法摆脱这个仍然会导致部署失败的更改,因为它无法修改:

[~] AWS::ElasticLoadBalancingV2::TargetGroup LoadBalancer/Listener/TargetGroupGroup LoadBalancerListenerTargetGroupGroup27D2B0EE replace
 └─ [-] TargetType (requires replacement)
     └─ ip 

我们无法找到解决 CDK 错误的方法。 我们怎样才能删除这个我们不再需要的目标群体?

从消费者中移除时强制导出值。 在另一个部署中,删除资源及其从生产者的强制导出。 参考CDK 文档

暂无
暂无

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

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