Amazon web services 在EC2实例终止后使用“创建EC2实例”;更新;来自服务目录产品

Amazon web services 在EC2实例终止后使用“创建EC2实例”;更新;来自服务目录产品,amazon-web-services,amazon-ec2,amazon-cloudformation,Amazon Web Services,Amazon Ec2,Amazon Cloudformation,我使用服务目录产品配置生成了2个EC2实例。出于某些原因,我已经终止了它们,并希望重新生成新的EC2实例(而不是终止的实例)。 因此,我尝试从服务目录中再次更新产品,并希望服务目录能够重新创建它们,因为以前的实例不存在。 产品配置成功,但尚未创建EC2实例 我的产品实际上是一个由一些子堆栈组成的完整堆栈,其中一个子堆栈实际上创建了EC2实例 我们可以设想如下- 完整堆栈 子堆栈-1 子堆栈-2 子堆栈-3 问题是如何在不终止整个堆栈的情况下创建新的EC2实例 有关这些权限的详细信息- 我有两

我使用服务目录产品配置生成了2个EC2实例。出于某些原因,我已经终止了它们,并希望重新生成新的EC2实例(而不是终止的实例)。 因此,我尝试从服务目录中再次更新产品,并希望服务目录能够重新创建它们,因为以前的实例不存在。 产品配置成功,但尚未创建EC2实例

我的产品实际上是一个由一些子堆栈组成的完整堆栈,其中一个子堆栈实际上创建了EC2实例

我们可以设想如下-

完整堆栈

  • 子堆栈-1
  • 子堆栈-2
  • 子堆栈-3
问题是如何在不终止整个堆栈的情况下创建新的EC2实例

有关这些权限的详细信息-
我有两个角色,我已经用来实现这一点。1角色仅用于提供服务目录中的产品。另一个是类似管理员的角色,我可以使用它来终止EC2实例。我只是不想从管理员角色派生EC2,并使用产品来提供它们。

AWS CloudFormation不“知道”在其控制范围之外所做的资源更改。因此,它目前认为EC2实例仍然存在,即使它们已经被终止

如果您有足够的权限使用CloudFormation,您可以:

  • 下载服务目录部署的CloudFormation模板
  • 删除定义EC2实例的部分
  • 通过提供已编辑的模板更新堆栈——这将导致CloudFormation终止实例(已终止的实例)
  • 编辑模板并添加回实例定义,然后使用此模板再次更新堆栈(实际上与最初用于启动堆栈的模板相同)——这将导致部署符合原始规范的新实例

您是说AWS服务目录部署的CloudFormation堆栈仍然存在,但终止的两个实例最初是从该堆栈启动的?您是否有足够的CloudFormation权限修改已部署的堆栈?如果是这样,您可能会从模板中删除这些实例,然后进行更新,然后将它们添加回模板并进行更新。如果无法在CloudFormation中管理堆栈,则需要管理员的帮助。@JohnRotenstein-是的,最初我使用完整的堆栈来获取所有资源。我必须终止从其中一个子堆栈创建的EC2。现在,我再次更新完整堆栈产品以创建新的EC2。我有两个不同角色的权限。1个角色可以从服务目录中配置产品,另一个角色是可以终止EC2实例的管理员角色。但我不想从这个角色手动生成新的EC2实例。希望这能澄清问题。如果你可以在CloudFormation上使用管理员角色,那么上述技术应该有效(从模板中删除、更新、添加回模板、更新)。@JohnRotenstein-是的,同意它应该有效,但事实并非如此。我很确定这与我所使用的角色无关,因为如果我能首先使用相同的角色来运行它,那么理想情况下,我应该能够再次运行它。提供产品的角色足以满足提供产品的要求,因此我只是将角色作为问题的根本原因。还有一个观察结果是,当我终止实例并尝试更新整个堆栈(包括创建EC2的堆栈)时,CF中的资源链接指向终止的实例。@JohnRotenstein-哦,对不起,我想你误解了。我没有改变源代码。当我说“更新”时,我的意思是,服务目录中有一个条款来更新现有产品。我正在使用这个选项来取回资源。希望现在能澄清。