【发布时间】:2020-09-25 15:29:55
【问题描述】:
我有 2 个使用服务目录产品配置生成的 EC2 实例。由于某些原因,我已经终止了它们并希望重新生成新的 EC2 实例(不是终止的实例)。 因此,我尝试从服务目录再次更新产品,并希望服务目录能够重新创建它们,因为早期的实例不存在。 产品配置成功,但未创建 EC2 实例。
我的产品实际上是一个包含一些子堆栈的完整堆栈,其中一个子堆栈实际上创建了 EC2 实例。
我们可以设想如下 -
全栈
- 子栈 1
- 子栈 2
- 子栈 3
问题是如何在不终止整个堆栈的情况下创建新的 EC2 实例。
有关这些权限的更多信息 -
我有两个角色用来实现这一目标。 1 个角色仅用于从服务目录供应产品。其他类似管理员的角色,我可以使用它来终止 EC2 实例。我只是不想从管理员角色中生成 EC2 并使用产品来配置它们。
【问题讨论】:
-
所以你是说AWS Service Catalog部署的CloudFormation堆栈仍然存在,但是被终止的两个实例最初是从这个堆栈启动的?您是否有足够的 CloudFormation 权限来修改已部署的堆栈?如果是这样,您可能会从模板中删除这些实例,更新,然后将它们添加回模板并更新。如果您无法在 CloudFormation 中管理堆栈,则需要管理员的帮助才能执行此操作。
-
@JohnRotenstein - 是的,最初我使用完整堆栈来获取所有资源。我不得不终止从其中一个子堆栈创建的 EC2。现在,我再次更新全栈产品以创建新的 EC2。我有权使用 2 个不同的角色这样做。 1 个角色可以从服务目录配置产品,另一个是可以终止 EC2 实例的管理员角色。但我不想从这个角色手动生成新的 EC2 实例。希望这可以澄清。
-
如果您可以在 CloudFormation 上使用管理员角色,那么上述技术应该可以工作(从模板中删除、更新、添加回模板、更新)。
-
@JohnRotenstein - 是的,同意它应该有效,但事实并非如此。我很确定它与我正在使用的角色无关,因为如果我可以使用相同的角色让它首先运行,那么理想情况下我应该能够再次这样做。供应产品的角色足以满足供应产品的要求,因此我只是将角色作为问题的根本原因。另一个观察结果是,当我终止实例并尝试更新完整堆栈(包括创建 EC2 的堆栈)时,CF 中的资源链接指向终止的实例。
-
@JohnRotenstein - 哦,对不起,我想你误会了。我没有更改源代码。当我说“更新”时,我的意思是服务目录中有一个更新现有产品的规定。我正在使用该选项来取回资源。希望它现在澄清。
标签: amazon-web-services amazon-ec2 amazon-cloudformation