更新依赖堆栈

问题描述 投票:0回答:1

我有一个名为stack-layer的堆栈,它导出一个Lambda层的ARN,另一个堆栈叫做stack-lambda,它包含一个Lambda,它引用了Lambda层。

当我尝试更新stack-layer时,我收到一个错误:Export layer-arn cannot be deleted as it is in use by stack-lambda,这完全可以理解。但是,我不知道如何从这里继续更新。

有没有办法更新这种依赖堆栈?亚马逊的walkthrough似乎根本没有涉及这个话题。

amazon-cloudformation
1个回答
1
投票

Fn::ImportValue文档中所述,无法修改引用的输出确实是预期的行为:

Note

以下限制适用于交叉堆栈引用:

[...]

  • 您无法修改或删除另一个堆栈引用的输出值。

为了在更新输出时解决此问题,您可以使用第二个临时输出值来处理转换:

  1. 更新stack-layer以添加包含新值的第二个输出(例如,layer-arn-2);
  2. 更新stack-lambda,将"Fn::ImportValue": "layer-arn"引用更改为引用layer-arn-2
  3. 更新stack-layer以删除现在未使用的layer-arn输出。 (或者交替地:更新stack-layer以将layer-arn设置为与layer-arn-2相同的值;更新stack-lambda以引用layer-arn;然后最终更新stack-layer以移除layer-arn-2输出。

这有点乏味,但应该有效。

© www.soinside.com 2019 - 2024. All rights reserved.