![](/img/trans.png)
[英]How can I delete and recreate a CDK Stack (Cloudformation) using a lambda?
[英]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.