2017-06-05 46 views
0

我们有一个Cloudformation堆栈,我们导出由堆栈创建的ARN并将其导入到同一个堆栈中。当我们尝试删除堆栈时,它会尝试首先删除输出,并实现输出正在使用并且不会删除堆栈。删除导出变量并帮助删除循环依赖

我们正在寻找关于如何重新部署堆栈或编辑堆栈的指导,以便我们可以移除依赖关系。

我们尝试在配置编辑器中编辑堆栈,但更改未被保存,并且在尝试删除堆栈时仍然出现相同的错误。

"UserPoolArn":{ 
    "Description":"The ARN for Cognito User Pool", 
    "Value":{ 
     "Fn::GetAtt":[ 
      "userPool", 
      "Arn" 
     ] 
    }, 
    "Export":{ 
     "Name":"organization:XX:UsersPoolArn" 
    } 

Import within the same cf stack 
     "Environment":{ 
      "Variables":{ 

       "USER_POOL":{ 
       "Fn::ImportValue":"organization:XX:UsersPoolArn" 
       } 
      } 
     } 
    } 

我们如何才能消除有问题的输出键/值?

回答

0

我的第一个尝试就是用任何值取代ImportValue行。既然你的目标是删除堆栈,我并不真正担心硬编码的价值。用硬编码更新堆栈,一旦堆栈达到更新完成状态,您应该能够删除堆栈,因为循环依赖已被删除。

在一个堆栈中,Ref是比ImportValue更好的选择。我很确定堆栈不能用这个配置创建,因为在启动之前验证堆栈时导入的值不会出现,所以我猜这是有人在堆栈更新之后做的更新被创建。