我试图更改资源名称,但这不起作用。
therraform是一个“所需状态”系统,这意味着您的配置必须描述
terraform apply
由于您已经运行了一个计划/应用程序,因此您现在已经存在了配置中描述的所有对象,因此Terraform别无其他。如果您希望Terraform在不修改已经创建的内容的情况下创建一个额外的EC2实例,则需要修改配置以告诉Terraform应该有
TwoEC2实例,然后再次计划/再次应用。
获得所需结果的最直接方法是编写另一个无需删除或修改现有One
。然后,您将使用一个声明两个EC2实例的配置,Terraform会注意到其中一个已经存在,因此只会提议创建新的。如果您希望您需要经常更改EC2实例的数量,那么还有其他一些选择:
您可以使用特殊的论点告诉Terraform,您打算您的一个资源块声明动态决定的实例数。例如,如果将
count
添加到现有块中,则Terraform应该注意到当前只有一个实例,因此建议创建第二个实例。
在某些情况下,最好让AWS本身管理多个实例,而不是直接使用Autsoscaling群体直接管理Terraform。在这种情况下,而不是告诉Terraform管理单个EC2实例,而是告诉Terraform配置一个称为“自动升级组”的远程AWS对象,然后使用远程AWS服务ITSFESS使用该对象根据您指定的规则来创建多个EC2实例。
当您水平缩放时,这种方法特别有用。因为您可以配置EC2以确保始终有一定数量的相同实例数量,并且其中一个可以失败或降级,那么自动启动系统将自动更换它,而无需重新运行Terraform。这是AWS本身提供的服务,而不是Terraform功能,但是您可以使用Terraform进行配置。