terraform tfstate не обновляется из удаленного сегмента s3

Я развернул инфраструктуру AWS, используя код tf на моей локальной машине, где на моей машине хранился файл terraform.tfstate. Теперь я хочу, чтобы другие разработчики ссылались на тот же файл состояния, и, следовательно, я скопировал код в github repo, добавил state.tf и скопировал terraform.tfstate с моей локальной машины в префикс корзины s3, на который указывает мой файл состояния. Кроме того, в репо вносятся изменения, вместо одного большого файла TF я разделил его на три файла - state.tf, vpc.tf и dynamicodb.tf.

мой файл state.tf:

terraform {
  backend "s3" {
   bucket = "testing-d-tf-state"
   key    = "aws-xyz/terraform.tfstate"
   region = "us-west-2"
  }
}

однако, когда мой разработчик запускает код на своей машине, он получает

План: 26 добавить, 0 изменить, 25 уничтожить.

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

1 ответ

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

После того, как вы это сделали, есть несколько вещей, которые вы должны сделать, чтобы убедиться, что это работает:

  1. Войдите в консоль AWS и подтвердите, что теперь есть terraform.tfstate файл в правильном ведре и месте.
  2. переместить местный terraform.tfstate файл (не удаляйте его на всякий случай), затем запустите что-то вроде terraform state list это запросит файл состояния. Если это работает, то ваша конфигурация удаленного состояния работает.
Другие вопросы по тегам