Как оставить импортированную недвижимость без изменений? - PullRequest
1 голос
/ 27 июня 2019

У меня есть размещенная зона в 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, так как это уменьшит переносимостьmy .tf, но указание местозаполнителя изменило бы саму размещенную зону.

Есть ли способ игнорировать параметры для импортированных ресурсов или указать их как "оставить как есть"?

IМожно добавить переменную и заполнить ее из файла состояния для каждых terraform вызовов, но я надеюсь на что-то более простое.

1 Ответ

0 голосов
/ 27 июня 2019

Когда вы импортируете ресурс, Terraform (пока) не генерирует для вас код Terraform автоматически, вместо этого вы должны написать ресурс и затем проверить план.

Обычно шаблон будет создавать скелетресурс, как вы сделали, импортируйте ресурс и затем заполните все необходимые поля, запустите план, затем настройте конфигурацию ресурса так, чтобы он не вносил никаких нежелательных изменений.

С этого момента Terraform будетвозможность управлять ресурсом в обычном режиме, применяя любые изменения, которые вы вносите в конфигурацию, или возвращая изменения, сделанные вне Terraform, обратно к тому, как они делаются в вашем коде Terraform.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...