本案例中使用aws来测试
-
AWS中subnet的名字由used01subnet1改为used01subnet1-test
如下图:
tf代码和state file仍是used01subnet1,如下图所示:
tf code:
terraform.tfstate:
此时apply后,状态如下:
运行后的结果:
-
以上情况,将tf code由used01subnet1改为used01subnet1-code,aws console上,由used01subnet1改为used01subnet1-console
如下所示:
code:
console:
此时terraform.tfstate中仍然是used01subnet1。
terraform apply
后:
可见,“三方”不一致,apply后,以code中的状态为准。
- tf code中将subnet2改为subnet3,其他保持不变,如下:
此时,tf会“理解”为将subnet2删除,然后重新建subnet3,如下
此时,如果同时修改terraform.tfstate,将index_key,由subnet2改为subnet3如下:
再运行terraform apply
,如下:
由上图可知,同时更改code和tfstate file之后,对实际资源没有任何影响。