Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Terraform 如何将资源移动到新的tf文件和状态而不销毁和重新创建?_Terraform - Fatal编程技术网

Terraform 如何将资源移动到新的tf文件和状态而不销毁和重新创建?

Terraform 如何将资源移动到新的tf文件和状态而不销毁和重新创建?,terraform,Terraform,我的tf文件中有一个资源(aws_iam_role.derp)正在使用以下状态: terraform { backend "s3" { bucket = "mybucket" region = "us-east-1" key = "aaaaaa" } } 我想把它移到另一个状态文件(名为“bbbbbb”) 我不想移动此tf文件中的所有其他资源 如何将此资源移动到另一个状态文件?我创建了一个新的tf文件(在另一个文件夹中),并指定了一个新状态: terraform

我的tf文件中有一个资源(aws_iam_role.derp)正在使用以下状态:

terraform {
  backend "s3" {
    bucket = "mybucket"
    region = "us-east-1"
    key = "aaaaaa"
  }
}
我想把它移到另一个状态文件(名为“bbbbbb”)

我不想移动此tf文件中的所有其他资源

如何将此资源移动到另一个状态文件?我创建了一个新的tf文件(在另一个文件夹中),并指定了一个新状态:

terraform {
  backend "s3" {
    bucket = "mybucket"
    region = "us-east-1"
    key = "bbbbb"
  }
}
当我运行terraform应用terraform时,请将其视为新资源


我想将此资源移动到新tf文件,而不必销毁和重新创建它。

我不确定这是唯一的方法,但我通常会使用“terraform state rm”从当前状态文件中删除资源的状态,然后将资源定义移动到新文件夹,在将资源导入到新状态文件之后,我不确定这是唯一的方法,但我通常会使用“terraform state rm”从当前状态文件中删除资源的状态,然后将资源定义移动到新文件夹,然后将资源导入到新状态文件中

  • 您可以在新的tfstate文件中导入资源
  • 将相关代码移动到新的tf文件
  • 从旧tf文件中删除已移动的代码 你能做的是

  • 您可以在新的tfstate文件中导入资源
  • 将相关代码移动到新的tf文件
  • 从旧tf文件中删除已移动的代码 您可以使用从状态文件中删除资源。
    您可以使用将资源导入状态文件

    请确保按照其他说明相应地重构代码,以便不会破坏/重新创建资源。

    您可以使用从状态文件中删除资源。
    您可以使用将资源导入状态文件

    确保按照前面提到的重构代码,这样就不会破坏/重新创建资源