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.

¿Cómo importar un punto de montaje de Databricks usando Terraform?

Quiero importar la infraestructura existente de Databricks a Terraform, pero no puedo importar los montajes existentes. Tengo un montaje al bucket de S3 en AWS que es el siguiente: dbfs:/mnt/copyprod. Según la documentación oficial del proveedor de Databricks, este comando debería funcionar:

$ terraform import databricks_mount.this <nombre_del_montaje>

He creado un bloque de recurso apropiado:

resource "databricks_mount" "copyprod" {
 ...
}

pero cuando intento ejecutar el comando terraform import databricks_mount.copyprod copyprod, que funcionó para otros recursos, siempre obtengo el mismo error:

databricks_mount.copyprod: Importando desde ID "copyprod"...
databricks_mount.copyprod: Importación preparada!
  Preparando databricks_mount para importar
databricks_mount.copyprod: Actualizando estado... [id=copyprod]
╷
│ Error: no se especifica o está vacío el valor de name

¿Qué “valor de name” es este? ¿Dónde debo especificarlo? Según entiendo, no es necesario definir argumentos en el bloque de recurso para que la importación funcione, ya que solo actualiza el archivo .tfstate, pero incluso si lo hago (como definir name, bucket_name, etc.), el error siempre es el mismo. También intenté pasar <nombre_del_montaje> de diferentes formas, pero sin suerte. ¿Cómo puedo hacer que esto funcione?

La conexión a Databricks es correcta, ya que puedo importar otros recursos como clústeres o cuadernos. Estoy utilizando Terraform v1.0.9 y el proveedor de Databricks v0.4.2.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que el atributo name no está especificado o está vacío. El atributo name se refiere al nombre del montaje.

    Para solucionar el problema, debes especificar el nombre del montaje en el comando de importación.

    En tu caso, el comando debería ser:

    terraform import databricks_mount.copyprod dbfs:/mnt/copyprod

    Esto importará el montaje con el nombre dbfs:/mnt/copyprod en Terraform.

    Si el error persiste, puedes intentar definir el atributo name en el bloque de recursos de esta manera:

    resource "databricks_mount" "copyprod" {
      name = "dbfs:/mnt/copyprod"
      ...
    }
    

    Luego, ejecuta el mismo comando de importación como antes:

    terraform import databricks_mount.copyprod dbfs:/mnt/copyprod

    Ten en cuenta que el atributo name debe coincidir con el nombre utilizado en el comando de importación.

Comments are closed.