es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Terraform: Cómo ignorar “Error: Su consulta no devolvió resultados” para la fuente de datos “aws_instances”

Estoy usando Terraform 0.14.4 para mantener diferentes cuentas de AWS. Tengo un archivo .tf y múltiples archivos de estado, uno para cada cuenta.

Utilizo un origen de datos para encontrar todas las instancias EC2 que tienen cierta etiqueta adjunta a ella:

data "aws_instances" "all_instances" {
  instance_tags = {
    Monitoring = "MONITOR"
  }
  instance_state_names = ["running", "pending", "stopped", "stopping"]
}

Este origen de datos se utiliza para generar algunas métricas de CloudWatch para ciertas instancias.

Tengo instancias con esa etiqueta en todas las cuentas menos en una. Ejecutar terraform plan en esa cuenta me da este error:

Error: Your query returned no results. Please change your search criteria and try again.
  on main.tf line 6, in data "aws_instances" "all_instances":
   6: data "aws_instances" "all_instances" {

Me gustaría ignorar que el origen de datos no encuentre ninguna instancia en esta cuenta en particular, y continuar con todos los demás recursos mantenidos en mi script.

¿Cómo logro esto?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para lograr esto, puede utilizar el argumento ignore_error en el bloque data de Terraform. Este argumento indica a Terraform que ignore cualquier error que se produzca al recuperar datos del proveedor subyacente y continúe con el resto del plan de ejecución.

    Aquí hay un ejemplo de cómo puede modificar su bloque de datos para hacer uso de este argumento:

    data "aws_instances" "all_instances" {
      ignore_errors = true
      instance_tags = {
        Monitoring = "MONITOR"
      }
    
      instance_state_names = ["running", "pending", "stopped", "stopping"]
    }
    

    Con esta modificación, Terraform continuará aplicando el resto de los recursos en su archivo .tf incluso si no hay instancias que cumplan con los criterios dados en la cuenta de AWS que se está objetivo.

Comments are closed.