gpt4 book ai didi

amazon-web-services - 云形成 : Deleting an entire nested stack

转载 作者:行者123 更新时间:2023-12-03 07:42:39 26 4
gpt4 key购买 nike

我有一个由 3 个嵌套堆栈组成的 CloudFormation 堆栈:

Resources:
ParamsSetup:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: a-params.yaml
ResourcePrep:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: b-prep.yaml
Services:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: c-service.yaml

我意识到 ResourcePrep 嵌套堆栈是不必要的,因此我将该堆栈中唯一重要的资源移动到 Services 堆栈中,并从我的主模板中删除了该堆栈:

Resources:
ParamsSetup:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: a-params.yaml
Services:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: c-service.yaml

现在我遇到了问题。 CloudFormation 更新失败,因为 Services 中的资源已属于 ResourcePrep,但 ResourcePrep 不应再存在。

我原以为 CloudFormation 会足够聪明,能够删除已删除的堆栈,但事实并非如此。删除的堆栈仍然存在,我不知道如何摆脱它。我读过的所有内容都表明您永远不应该手动删除嵌套堆栈。

最佳答案

这里有几个选项,但没有一个像您希望的那样特别优雅。

  1. 删除堆栈并保留您想要注释掉(或删除)以供 cloudformation 更新/重建的资源。成功更新并删除堆栈后,重新添加您想要的资源/取消注释。
  2. 如果资源需要持久化,请向资源添加删除保留参数,运行更新,然后删除整个堆栈。更新完成后,重新添加/重新关联现有资源与您选择的堆栈。
  3. 在您选择的堆栈中使用不同的名称创建相同的资源,并删除奇怪的堆栈。

关于amazon-web-services - 云形成 : Deleting an entire nested stack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62563420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com