如何保持进口财产不变?

时间:2019-06-27 12:49:33

标签: terraform

我在main.tf中有一个托管区域:

provider "aws" {
    region = "us-east-1"
}

resource "aws_route53_zone" "zone" {
}

然后我可以导入现有资源,并在其他资源中使用其参数:

terraform import aws_route53_zone.zone <ZoneId>

检查状态文件我看到所有参数都在那里,包括域名。但是当我要apply时,它说找不到name

Error: aws_route53_zone.zone: "name": required field is not set

我不想在.tf文件中指定名称,因为它会降低我的.tf的可移植性,但是指定占位符会更改托管区域本身。

是否可以忽略导入资源的参数或将其指定为“保持原样”?

我可以添加一个变量,并在每次terraform调用中从状态文件中填充该变量,但我希望有一些简单的方法。

1 个答案:

答案 0 :(得分:0)

导入资源时,Terraform不会(尚未)自动为您生成Terraform代码,而是必须编写资源,然后检查计划。

通常情况下,模式是像完成操作一样创建骨架资源,导入资源,然后填写所有必填字段,运行计划,然后调整资源配置,以免进行任何不必要的更改。

从那时起,Terraform将能够正常管理资源,将您对配置所做的任何更改应用到配置中,或将在Terraform之外完成的更改还原为在Terraform代码中完成的更改。

相关问题