Terraform: Как включить удаление вычислительной среды пакетной службы? - PullRequest
0 голосов
/ 08 мая 2020

Я создал инфраструктуру с использованием Terraform, включая очередь заданий пакетной службы, вычислительную среду и определение задания.

После внесения изменений в Terraform я запустил terraform apply и получил следующую ошибку:

Error: error deleting Batch Compute Environment (data-load): : Cannot delete, found existing JobQueue relationship
    status code: 400, request id: 25449415-9c36-4748-95e6-925647bd716a

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

1 Ответ

2 голосов
/ 08 мая 2020

Когда ресурс воссоздается в Terraform, он по умолчанию будет удален и создан по порядку. Таким образом, если compute_environment_name вы изменяете и применяете только, вычислительная среда, от которой зависит очередь заданий, временно не существует, поэтому вы будете d ie следующим образом. Ошибка: Ошибка применения плана:


1 error(s) occurred:

* aws_batch_compute_environment.sample (destroy): 1 error(s) occurred:

* aws_batch_compute_environment.sample: error deleting Batch Compute Environment (sample): : Cannot delete, found existing JobQueue relationship

Следовательно, compute_environment_namechange create_before_destroy = trueи явно укажите жизненный цикл.


resource "aws_batch_compute_environment" "sample" {
  compute_environment_name = "sample-v2"
                     ...
    instance_type = [
      "m5",
    ]
                     ...
  lifecycle {
    create_before_destroy = true
  }
}

...