terraform не может уничтожить удаленные объекты ресурсов на aws

#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 работает.