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.

module.db es una lista de objetos, solo conocida después de aplicar.

rds.tf: -

module "db" {
  count       = var.environment == "dev" || var.environment == "qa" ? 1 : 0
  source      = "../rds"
  identifier  = var.db_name
  engine      = var.rds_engine
  engine_version = var.rds_engine_version
}

output.tf: -

output "rds_instance_endpoint" {
  description = "El punto de conexión de la conexión"
  value       = module.db[0].db_instance_endpoint
}

ERROR: -

Error: Atributo no soportado
  en la línea 28 de outputs.tf, en output "rds_instance_endpoint":
  28:   value       = module.db.db_instance_endpoint
  module.db es una lista de objetos, conocida solo después de aplicar

No se pueden acceder a los atributos en una lista de objetos. ¿Quiso acceder al atributo "db_instance_endpoint" para un elemento específico de la lista o para todos los elementos de la lista?

Obtengo el error anterior mientras declaro la count en el módulo rds.tf. Si elimino la count, funciona bien, no estoy seguro de qué es este error.
Tags:  ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que el objeto module.db es una lista de objetos y estás intentando acceder al atributo db_instance_endpoint en todos los elementos de la lista, lo cual no es compatible. Para solucionar esto, necesitas acceder al atributo de un elemento específico de la lista, dependiendo del valor de la variable count. Una forma de hacer esto es utilizando la función element para obtener el primer elemento de la lista, de la siguiente manera:

    output "rds_instance_endpoint" {
      description = "El punto de conexión de la conexión"
      value       = module.db[0].db_instance_endpoint
    }
    

    Esto asume que cuando count es 1, hay exactamente un objeto en la lista module.db. Si pudiera haber varios objetos, necesitarías usar un índice diferente o encontrar otra forma de acceder al objeto correcto.

Comments are closed.