Как я могу пропустить уничтожение ресурсов с помощью Terraform? - PullRequest
0 голосов
/ 03 декабря 2018

Я недавно протестировал и создал пользовательский интерфейс с Cloudfront, S3 и WAF.

Я внес некоторые изменения в модуль Cloudfront и жестко закодировал созданное имя ACL WAF, чтобы каждый раз, когда я выполняю terraform apply, оно былоиспользуя WAF, который я создал.Затем я удалил модуль WAF из своего кода.

Когда я пытаюсь сделать еще один terraform apply, он говорит, что WAF будет уничтожен.Я полагаю, это потому, что я удалил модуль WAF.

Есть ли способ, которым я могу выполнить terraform plan / apply и пропустить уничтожение WAF, который был недавно развернут из предыдущих развертываний?

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

terraform state rm some.resource.to.remove

Управление состоянием Terraform на самом деле работает очень хорошо, я использую его чаще всего при перемещении ресурса, например, когда я ранее модульно что-то, что состоит из отдельных ресурсов.В этом случае Terraform сначала пытается уничтожить старый ресурс и создать новый, поэтому я использую:

terraform state mv aws_lb.my_lb module.some_module.aws_lb.my_lb

0 голосов
/ 03 декабря 2018

Вы можете использовать terraform -target=resource для обновления только определенного ресурса и его зависимостей.Это может быть неуклюжим, но должно позволить вам обойти отсутствующее объявление.

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

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