我正在阅读 Terraform 的文档,发现这两个命令:
$ terraform import aws_instance.foo i-abcd1234
Run Code Online (Sandbox Code Playgroud)
$ terraform import module.foo.aws_instance.bar i-abcd1234
Run Code Online (Sandbox Code Playgroud)
所以我想知道当你执行这两个命令时 terraform 状态的实际差异是什么。
提前致谢!
运行terrafom importTerraform 时,您要导入的资源将在您的配置中定义。
对于第一种情况,$ terraform import aws_instance.foo i-abcd1234您至少需要定义:
# main.tf
resource "aws_instance" "foo" {
}
Run Code Online (Sandbox Code Playgroud)
Terraform 将使用 AWS 的详细信息更新状态文件。
在第二个中,$ terraform import module.foo.aws_instance.bar i-abcd1234Terraform 期望包含资源“aws_instance bar”的模块“foo”存在。检查何时创建模块以及如何组合它们。例如
# modules/foo
resource "aws_instance" "bar" {
}
# main.tf
module "consul_cluster" {
source = "./modules/aws-consul-cluster"
}
Run Code Online (Sandbox Code Playgroud)
如果您检查状态文件,您会发现导入的资源的嵌套方式不同。
| 归档时间: |
|
| 查看次数: |
3398 次 |
| 最近记录: |