Terraform – State管理命令行
使用state命令行来更改state,避免直接改tfstate文件,如果直接手动更改tfstate文件就有可能会搞坏文件。

- List , 使用list能够查看你所有创建的资源

2. Pull, 如果你选择把state文件存在远端的话,那么使用pull就能够从远端把state拉到本地来
把state存在远端的文章: https://www.pangzai.win/terraform-backend%e8%bf%9c%e7%ab%af%e5%ad%98%e5%82%a8tfstate%e5%92%8cstate-locking/
terraform state pull
3. Push, 把本地的state文件手动的上传到远端
terraform state push
3. Show, 使用show命令行可以查看已创建资源的详情
terraform state show [你的资源]

4. Rm , 如果你想通过console来手动更改的你资源,不想再使用terraform来管理的话,但是又不想删除资源的话就能使用这个命令
terraform state rm [你的资源]

注意: 删除state了之后,记得一并的把资源从tf文件当中去除,否则当你执行terraform apply的时候,terraform从state当中读不到这个资源,那么terraform就会当做是需要创建的新资源,进行重新创建了。
5. MV , 如果你想更改以下的main名字,改去main2的话,就需要执行这个命令,如果你直接从tf文件更改的话,那么terraform就会删除然后再重新创建,这样的话就非常麻烦了,所以必须使用这个命令行
terraform state mv aws_vpc.main aws_vpc.main2

注意: 执行mv了之后,记得一并的把资源从tf文件的资源名改去你要的名字,否则当你执行terraform apply的时候,terraform从state当中读不到这个资源,那么terraform就会当做是需要创建的新资源,进行重新创建,然后把原本state file存在但是tf文件不存在的资源给删除了。
6. Replace Provider, 使用这个命令是把原本有provider给切换到其他的provider
terraform state replace-provider [旧provider] [新provider]
