Configuración de repositorios de paquetes predeterminados

Importante

La configuración de repositorios de paquetes de Python predeterminados está disponible con carácter general para cuadernos y trabajos sin servidor. Para las canalizaciones de Lakeflow y para el cómputo clásico creado mediante la interfaz de usuario y la API, está en Public Preview. En el caso de las aplicaciones de Databricks, se encuentra en beta. Los administradores del área de trabajo pueden controlar el acceso a estas características desde la página Versiones preliminares habilitando las siguientes vistas previas:

  • Repositorios de paquetes de Python predeterminados en canalizaciones declarativas de Spark (versión preliminar pública)
  • Repositorios de paquetes de Python predeterminados en clústeres creados a través de la API (versión preliminar pública)
  • Repositorios de paquetes de Python predeterminados en clústeres creados a través de la interfaz de usuario (versión preliminar pública)
  • Habilitación de la configuración del repositorio del área de trabajo para aplicaciones de Databricks (beta)

Los administradores del área de trabajo pueden configurar repositorios de paquetes privados o autenticados dentro de áreas de trabajo como repositorios de paquetes predeterminados para cuadernos, trabajos, canalizaciones de Lakeflow y Aplicaciones de Databricks. Los repositorios de Python se aplican a todas estas cargas de trabajo, pero los registros de npm solo se aplican a Databricks Apps.

Si un área de trabajo está configurada con un repositorio de paquetes predeterminado, los usuarios del área de trabajo pueden instalar paquetes desde repositorios internos sin definir index-url explícitamente ni extra-index-url valores para Python o un registro para npm. Si estos valores se especifican en el código, en un cuaderno o en el archivo de app.yaml una aplicación, tienen prioridad sobre los valores predeterminados del área de trabajo. Consulte Usar repositorios de paquetes predeterminados a nivel del espacio de trabajo para obtener información sobre cómo funciona la precedencia para Databricks Apps.

Esta configuración aprovecha secretos de Databricks para almacenar y administrar de forma segura las direcciones URL y las credenciales del repositorio. Los administradores del área de trabajo pueden configurar la configuración mediante la página de configuración del administrador del área de trabajo o mediante un ámbito secreto predefinido y los comandos secretos de la CLI de Databricks o la API REST.

Configuración de dependencias predeterminadas para un área de trabajo

Los administradores del área de trabajo pueden agregar o quitar los repositorios de paquetes predeterminados mediante la página de configuración del administrador del área de trabajo.

  1. Como administrador del área de trabajo, inicie sesión en el área de trabajo de Databricks.
  2. Haga clic en el nombre de usuario en la barra superior del área de trabajo de Databricks y seleccione Configuración.
  3. Haga clic en la pestaña Proceso.
  4. Junto a los Repositorios de paquetes predeterminados, haga clic en Administrar.
  5. (Opcional) Agregue o quite una dirección URL de índice de Python, direcciones URL de índice adicionales, un certificado SSL personalizado o una configuración del registro npm.
  6. Haga clic en Guardar para guardar los cambios.

Nota:

Las modificaciones o eliminaciones de secretos se aplican de forma diferente en función del tipo de carga de trabajo. En el caso de los cuadernos y trabajos sin servidor, los cambios se aplican después de volver a asociar el recurso de proceso al cuaderno o volver a ejecutar el trabajo. En el caso de los cuadernos y trabajos clásicos, los cambios se aplican después de reiniciar el recurso de proceso. En el caso de las canalizaciones de Lakeflow, los cambios se aplican a las nuevas ejecuciones de canalización. En el caso de las aplicaciones de Databricks, los cambios se aplican la próxima vez que se compila e implementa la aplicación.

Configuración mediante la CLI de secretos o la API REST

Para configurar repositorios de paquetes predeterminados mediante la CLI o la API REST, cree un ámbito de secreto predefinido y configure los permisos de acceso y agregue los secretos del repositorio de paquetes.

Nombre de ámbito de secreto predefinido

Los administradores del área de trabajo pueden establecer direcciones URL de índice pip predeterminadas, direcciones URL de índice adicionales, un certificado SSL y una configuración de npm, junto con tokens de autenticación y secretos, en un ámbito secreto designado en claves predefinidas:

  • Nombre del ámbito del secreto: databricks-package-management
  • Clave secreta para index-url: pip-index-url
  • Clave secreta para direcciones URL de índice extra: pip-extra-index-urls
  • Clave secreta para el contenido de la certificación SSL: pip-cert
  • Clave secreta para la configuración de npm: npm-rc (solo Databricks Apps)

Crear el ámbito del secreto

Se puede crear un ámbito secreto mediante los comandos de secretos de la CLI de Databricks o la API REST . Después de crear el ámbito de secreto, configure listas de control de acceso para conceder a todos los usuarios del área de trabajo acceso de lectura. Esto garantiza que el repositorio permanece seguro y no se puede modificar por parte de usuarios individuales. El ámbito secreto debe usar el nombre de ámbito de secreto predefinido databricks-package-management.

databricks secrets create-scope databricks-package-management
databricks secrets put-acl databricks-package-management admins MANAGE
databricks secrets put-acl databricks-package-management users READ

Añadir secretos del repositorio de paquetes

Agregue detalles del repositorio de paquetes mediante los nombres de clave secreta predefinidos. Los repositorios de Python se aplican a notebooks, trabajos, pipelines de Lakeflow y Databricks Apps, mientras que los registros de paquetes de npm solo se aplican a Databricks Apps.

Python

Agregue los detalles del repositorio de paquetes de Python mediante los nombres de clave secreta predefinidos, con los tres campos que son opcionales.

# Add index URL.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-index-url", "string_value":"<index-url-value>"}'

# Add extra index URLs. If you have multiple extra index URLs, separate them using white space.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-extra-index-urls", "string_value":"<extra-index-url-1 extra-index-url-2>"}'

# Add cert content. If you want to pip configure a custom SSL certificate, put the cert file content here.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-cert", "string_value":"<cert-content>"}'

Nota:

Si el repositorio requiere autenticación, use uno de los siguientes formatos para la dirección URL del índice:

  • Nombre de usuario y contraseña: https://<username>:<password>@<index_url>
  • Token: https://<token>@<index_url>

Node.js

En Databricks Apps, también se puede configurar un registro predeterminado de npm para que las aplicaciones instalen paquetes de Node.js, incluidos los paquetes privados, desde el registro configurado en el espacio de trabajo. Almacene el contenido completo del archivo .npmrc, incluida la URL del registro y cualquier token de autenticación, bajo la clave secreta npm-rc:

databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "npm-rc", "string_value":"registry=https://npm.example.com/\n//npm.example.com/:_authToken=<token>\n"}'

Cuando se compila una aplicación en el área de trabajo, Azure Databricks escribe este contenido en el archivo de .npmrc la aplicación. Para obtener información sobre cómo funciona la precedencia y cómo invalidarla para una aplicación específica, consulte Node.js paquetes.

Modificación o eliminación de secretos del repositorio de paquetes

Para modificar los secretos del repositorio de paquetes, use el put-secret comando . Para eliminar secretos del repositorio de paquetes, use delete-secret como se muestra a continuación:

# delete secret
databricks secrets delete-secret databricks-package-management pip-index-url

databricks secrets delete-secret databricks-package-management pip-extra-index-urls

databricks secrets delete-secret databricks-package-management pip-cert

# delete the npm configuration secret (Databricks Apps only)
databricks secrets delete-secret databricks-package-management npm-rc

# delete scope
databricks secrets delete-scope databricks-package-management