Это предполагаемое поведение терраформы.Он отслеживает состояние и модуль.Если он видит какие-либо изменения, требующие принудительного воссоздания от провайдера, он уничтожает старое и создает новое.
Если вы хотите сохранить старое, также создайте новое, одну вещь, которую я могу предложитьпоскольку для поддержания состояния tfstate вы используете динамические блоки S3 и ведро S3, вам нужно изменить key
в вашем блоке terraform, а затем вручную поддерживать версии всех лямбда-слоев, которые вы создали.В будущем, если вы хотите уничтожить какую-либо версию, просто используйте ключ, который вы использовали для создания этого лямбда-слоя, и запустите terraform destroy
.
Так пример: первый раз, когда вы используете это:
terraform {
backend "s3" {
bucket = "tfstate-dev-tm"
region = "eu-central-1"
key = "service/lambda/layers/lambda_common_layer_v1.tfstate"
dynamodb_table = "terraform_locks"
}
}
Затем во второй раз, когда вы захотите создать новый лямбда-слой, измените терраформу на:
terraform {
backend "s3" {
bucket = "tfstate-dev-tm"
region = "eu-central-1"
key = "service/lambda/layers/lambda_common_layer_v2.tfstate"
dynamodb_table = "terraform_locks"
}
}
Теперь он создаст новый лямбда-слой.Как только вы захотите удалить свой старый лямбда-слой, вы можете сделать это снова:
terraform {
backend "s3" {
bucket = "tfstate-dev-tm"
region = "eu-central-1"
key = "service/lambda/layers/lambda_common_layer_v1.tfstate"
dynamodb_table = "terraform_locks"
}
}
и запустить terraform destroy
, и он удалит ваш старый лямбда-слой.
Только проблема с этим Iсмотрите, если вы измените ваш основной модуль, который фактически обеспечивает ваш ресурс, то это может создать проблему, когда вы фактически уничтожаете старую версию лямбда-слоя.Если возможно, вы можете попробовать скопировать terraform и назначить версию фактическому файлу terraform, а не внутреннему ключу terraform, чтобы впоследствии можно было без проблем уничтожить этот ответ, как если бы вы имели исходную версию файла terraform, с помощью которой он был фактически создан.Надеюсь, это поможет.