Я попытался запустить экземпляр ec2 , используя входные параметры для переменных в команде terraform apply . Это создает экземпляр успешно. Однако, когда я пытаюсь удалить экземпляр, используя terraform destory , он выполняется, но ничего не удаляется.
Итак, у меня есть переменная региона со значением по умолчанию. Когда я передаю другой регион в этой переменной, используя входные параметры, экземпляр запускается просто нормально в предоставленной области, но я не могу завершить его с помощью уничтожения terraform.
main.tf
variable "region" {
default = "us-west-1"
}
variable "ami" {
type = "map"
default = {
us-east-2 = "ami-02e680c4540db351e"
us-west-1 = "ami-011b6930a81cd6aaf"
}
}
provider "aws" {
region = "${var.region}"
}
resource "aws_instance" "web" {
ami = "${lookup(var.ami,var.region)}"
instance_type = "t2.micro"
tags {
Name = "naxi"
}
}
Терраформ применяется:
terraform apply -var region=us-east-2
Вывод терраформного уничтожения:
aws_instance.web: Refreshing state... (ID: i-05ca0514f61dcaf16)
Do you really want to destroy all resources?
Terraform will destroy all your managed infrastructure, as shown above.
There is no undo. Only 'yes' will be accepted to confirm.
Enter a value: yes
Destroy complete! Resources: 0 destroyed.
Хотя он способен искать идентификатор экземпляра в правильной области, я предполагаю, что он пытается завершить экземпляр из области по умолчанию, а не из той, которую я указал в качестве параметра.
Можно ли указать параметр -var region=something
с помощью terraform destroy
?
Уничтожение работает должным образом, если я использую значения по умолчанию, а не входные параметры.
EDIT ---
Как только я дам команду: terraform destroy -varfile=variables.tfvars
, вся связанная с экземпляром информация из файла terraform.tfstate
будет удалена, а все предыдущее содержимое этого файла будет сохранено как резервная копия в terraform.tfstate.backup
. Но все равно экземпляр не удаляется.