Configurare i repository di pacchetti predefiniti

Importante

La configurazione dei repository di pacchetti Python predefiniti per le app Databricks è in fase Beta. La configurazione dei repository predefiniti dei pacchetti Maven avviene in Anteprima Privata. Contatta il team dell'account Databricks per richiedere l'accesso. Tutte le altre funzionalità sono generalmente disponibili. Gli amministratori dello spazio di lavoro possono controllare l'accesso a queste funzionalità dalla pagina delle anteprime utilizzando le seguenti impostazioni:

  • Repository di pacchetti Maven predefiniti (Anteprima privata)
  • Abilita la configurazione della repo del workspace per le app Databricks (Beta)
  • Repository di pacchetti Python predefiniti nelle pipeline dichiarative di Spark (Generalmente disponibili)
  • Repository di pacchetti Python predefiniti in cluster creati tramite API (Generalmente disponibile)
  • Repository di pacchetti Python predefiniti in cluster creati tramite interfaccia utente (Generalmente disponibili)

Gli amministratori dell'area di lavoro possono configurare repository di pacchetti privati o autenticati all'interno di aree di lavoro come repository di pacchetti predefiniti per notebook, processi, pipeline Lakeflow e App Databricks. I repository Python si applicano a tutti questi carichi di lavoro. I repository Maven si applicano all'installazione di librerie con scopo cluster su Databricks Runtime 18.3 e superiori, mentre i registri npm si applicano solo alle app Databricks.

Se un'area di lavoro è configurata con un repository di pacchetti predefinito, gli utenti dell'area di lavoro possono installare pacchetti da repository interni senza definire esplicitamente i index-urlvaloriextra-index-url per Python o un registro npm. Se questi valori vengono specificati nel codice, in un notebook o nel file di app.yaml un'app, hanno la precedenza sulle impostazioni predefinite dell'area di lavoro. Consulta Usare i repository di pacchetti predefiniti a livello di area di lavoro per informazioni su come funziona la precedenza per Databricks Apps.

Questa configurazione sfrutta segreti di Databricks per archiviare e gestire in modo sicuro GLI URL e le credenziali del repository. Gli amministratori dell'area di lavoro possono configurare la configurazione usando la pagina delle impostazioni di amministrazione dell'area di lavoro o usando un ambito segreto predefinito e i comandi segreti dell'interfaccia della riga di comando di Databricks o l'API REST.

Configurare le dipendenze predefinite per un'area di lavoro

Gli amministratori dell'area di lavoro possono aggiungere o rimuovere i repository di pacchetti predefiniti usando la pagina delle impostazioni di amministrazione dell'area di lavoro.

  1. Come amministratore dell'area di lavoro, accedere all'area di lavoro di Databricks.
  2. Fare clic sul nome utente nella barra superiore dell'area di lavoro Databricks e selezionare Impostazioni.
  3. Fare clic sulla scheda calcolo.
  4. Accanto a Repository dei pacchetti predefiniti, fare clic su Gestisci.
  5. (Facoltativo) Aggiungere o rimuovere un URL di indice Python, URL di indice aggiuntivi, un certificato SSL personalizzato o una configurazione del Registro di sistema npm.
  6. Fare clic su Salva per salvare le modifiche.

Nota

Le modifiche o le eliminazioni ai segreti vengono applicate in modo diverso a seconda del tipo di carico di lavoro. Per i notebook e i processi serverless, le modifiche vengono applicate dopo aver ricollegato la risorsa di calcolo al notebook o rieseguire il processo. Per i notebook e i processi classici, le modifiche vengono applicate dopo il riavvio della risorsa di calcolo. Per le pipeline di Lakeflow, le modifiche vengono applicate alle nuove esecuzioni della pipeline. Per Databricks Apps, le modifiche vengono applicate alla successiva compilazione e distribuzione dell'app.

Configurare usando la CLI di Secrets o l'API REST

Per configurare i repository di pacchetti predefiniti usando l'interfaccia della riga di comando o l'API REST, creare un ambito segreto predefinito e configurare le autorizzazioni di accesso, quindi aggiungere i segreti del repository di pacchetti.

Nome dell'ambito del segreto predefinito

Gli amministratori dell'area di lavoro possono impostare URL dell'indice pip predefiniti, URL di indici aggiuntivi, un certificato SSL, repository Maven e una configurazione npm, insieme a token e segreti di autenticazione, in un ambito dei segreti designato con chiavi predefinite:

  • Nome dell'ambito segreto: databricks-package-management
  • Chiave segreta per index-url: pip-index-url
  • Chiave segreta per URL extra-indice: pip-extra-index-urls
  • Chiave privata per il contenuto della certificazione SSL: pip-cert
  • Chiave segreta per i repository Maven: maven-repositories (installazione di librerie a livello di cluster su Databricks Runtime 18.3 e versioni successive)
  • Chiave privata per la configurazione di npm: npm-rc (solo App Databricks)

Creare l'ambito segreto

È possibile creare un ambito di segreti usando i comandi segreti della CLI di Databricks o l'API REST . Dopo aver creato l'ambito riservato, configurare gli elenchi di controllo di accesso per concedere a tutti gli utenti dell'area di lavoro l'accesso in lettura. In questo modo il repository rimane sicuro e non può essere modificato dai singoli utenti. L'ambito segreto deve usare il nome dell'ambito segreto predefinito 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

Aggiungi i segreti del repository di pacchetti

Aggiungere i dettagli del repository di pacchetti usando i nomi di chiave privata predefiniti. I repository di Python si riferiscono a notebook, job, pipeline Lakeflow e app di Databricks. I repository Maven si applicano all'installazione di librerie con scopo cluster su Databricks Runtime 18.3 e superiori, mentre i registri npm si applicano solo alle app Databricks.

Python

Aggiungere i dettagli del repository di pacchetti Python usando i nomi di chiave segreta predefiniti, con tutti e tre i campi facoltativi.

# 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

Se il repository richiede l'autenticazione, usare uno dei formati seguenti per l'URL dell'indice:

  • Nome utente e password: https://<username>:<password>@<index_url>
  • Token: https://<token>@<index_url>

Maven

Per l'installazione di librerie con scopo cluster su Databricks Runtime 18.3 e superiori, puoi configurare repository di pacchetti Maven predefiniti. Gli amministratori dello spazio di lavoro possono configurare un repository primario e fino a cinque repository aggiuntivi, ciascuno con un nome utente, una password e un realm opzionali. Quando configuri un repository primario, Maven Central viene rimosso dalla catena dei resolvers.

Memorizza la configurazione del repository come documento JSON sotto la maven-repositories chiave segreta:

databricks secrets put-secret databricks-package-management maven-repositories --string-value '<maven-repositories-json>'

Passa il JSON tra virgolette singole così che la shell preservi le virgolette interne doppie. Il <maven-repositories-json> valore ha il seguente formato:

{
  "primary_repository": {
    "url": "<url>",
    "username": "<username>",
    "password": "<password>",
    "realm": "<realm>"
  },
  "additional_repositories": [
    {
      "url": "<url>"
    },
    {
      "url": "<url>",
      "username": "<username>",
      "password": "<password>"
    }
  ]
}

Node.js

Per Le app di Databricks, è anche possibile configurare un registro npm predefinito in modo che le app installino pacchetti Node.js, inclusi i pacchetti privati, dal Registro di sistema configurato per l'area di lavoro. Archiviare il contenuto completo .npmrc del file, inclusi l'URL del Registro di sistema e qualsiasi token di autenticazione, nella npm-rc chiave privata:

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"}'

Quando viene compilata un'app nell'area di lavoro, Azure Databricks scrive questo contenuto nel file dell.npmrc'app. Per informazioni sul funzionamento della precedenza e su come eseguirne l'override per un'app specifica, vedi Node.js pacchetti.

Modificare o eliminare i segreti del repository di pacchetti

Per modificare i segreti del repository di pacchetti, usare il put-secret comando . Per eliminare i segreti del repository di pacchetti, usare delete-secret come illustrato di seguito:

# 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 Maven repositories secret
databricks secrets delete-secret databricks-package-management maven-repositories

# 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