#amazon-web-services #terraform0.14.7
Вопрос:
Я использую aws и создаю ресурсы с использованием terraform. Я внес изменения в ресурс aws_lauch_configuration
и применил usign terraform.
Код Tf-это
resource "aws_launch_configuration" "app" {
name_prefix = var.ecs_launch_configuration_name_prefix
security_groups = [
aws_security_group.instance_sg.id,
]
key_name = aws_key_pair.deployer.key_name
image_id = var.ecs_launch_configuration_image_id
instance_type = var.ecs_launch_configuration_instance_type
iam_instance_profile = aws_iam_instance_profile.app.name
associate_public_ip_address = false
user_data = data.template_file.user_data.rendered
lifecycle {
create_before_destroy = true
}
}
Terraform показывает, что сначала он создаст этот ресурс, а затем уничтожит его, так как create_before_destroy имеет значение true.
Таким образом, после создания ресурса teraform не удается удалить более старый. Поэтому я удалил это вручную с консоли aws, а затем снова запустил сценарий terraform.
Теперь это показывает, что свергнутый объект будет уничтожен.
# aws_launch_configuration.app (deposed object e9636964) will be destroyed
- resource "aws_launch_configuration" "app" {
- arn = "arn:aws:autoscaling:ap-south-1:989263488711:launchConfiguration:5c662048-79b0-4158-861a-df6f86d0641e:launchConfigurationName/staging-launch-config-20210723120615775100000001" -> null
- associate_public_ip_address = false -> null
- ebs_optimized = false -> null
- enable_monitoring = true -> null
- iam_instance_profile = "staging-ecs-instance-profile" -> null
- id = "staging-launch-config-20210723120615775100000001" -> null
- image_id = "ami-070ea05cb21034fd4" -> null
- instance_type = "t3.micro" -> null
- key_name = "deployer_key" -> null
- name = "staging-launch-config-20210723120615775100000001" -> null
- name_prefix = "staging-launch-config-" -> null
- security_groups = [
- "sg-0efdc5b4e5e0d5381",
] -> null
- user_data = "62fa54f43cbd35da831f418a9b62474d81b16795" -> null
- vpc_classic_link_security_groups = [] -> null
}
После применения terraform он выдает ошибку как error deleting Autoscaling Launch Configuration (staging-launch-config-20210723120615775100000001): ValidationError: Launch configuration name not found - Launch configuration staging-launch-config-20210723120615775100000001 not found status code: 400, request id: 12e7aa05-f3b1-4d75-a5a5-2093df3e5838
Я понимаю, что эта ошибка будет выдана, так как ресурс не существует на aws (удален вручную). Я пытался terraform apply -refresh=true
, но это не сработало. Пожалуйста, помогите мне устранить эту ошибку.
Комментарии:
1. Что произойдет, если ты побежишь
terraform state rm aws_launch_configuration.app["e9636964"]
? Затем запуститеterraform plan
еще раз после этого, чтобы узнать, по-прежнему ли он планирует удалить этот ресурс. Прежде чем даже сделать это, вы, возможно, захотите проверить файл состояния, чтобы узнать, как terraform идентифицирует/отслеживает удаленный ресурс.2. После выполнения команды
terraform state rm aws_launch_configuration.app["e9636964"]
terraform все еще пытается удалить ресурс. Затем я создал тот же ресурс вручную на aws, после чего terraform работает.