Sviluppare app databricks
Importante
Databricks Apps è disponibile in anteprima pubblica.
Nota
Per distribuire ed eseguire app nell'area di lavoro di Databricks, è necessario assicurarsi che il firewall non blocchi il dominio *.databricksapps.com
.
Questo articolo include informazioni dettagliate sulla creazione di app di dati e intelligenza artificiale con Le app di Databricks, tra cui come creare e modificare app nell'interfaccia utente, come usare le funzionalità della piattaforma Databricks, ad esempio data warehouse, segreti e processi di Databricks, procedure consigliate per lo sviluppo di app e informazioni importanti per lo sviluppo di app con framework supportati.
Ricerca per categorie creare un'app nell'interfaccia utente di Databricks Apps?
Nella barra laterale fare clic su Nuovo e selezionare App dal menu.
È possibile iniziare con un'app di esempio completa e predefinita oppure usare il codice sorgente e gli artefatti.
- Per iniziare con un'app di esempio, selezionare Modello, fare clic sulla scheda relativa al framework preferito e selezionare dall'elenco delle app.
- Per creare un'app usando il codice, selezionare Personalizzato.
Fare clic su Avanti.
Nel campo Nome app immettere un nome per l'app e, facoltativamente, immettere una descrizione.
Nota
- Il nome assegnato a un'app Databricks non può essere modificato dopo la creazione dell'app e qualsiasi utente con accesso a un'area di lavoro di Azure Databricks può visualizzare i nomi e la cronologia di distribuzione di tutte le app Databricks nell'area di lavoro. Inoltre, il nome dell'app è incluso nei record scritti nelle tabelle di sistema. A causa di questa visibilità, non è consigliabile includere informazioni riservate quando si assegnano nomi alle app Databricks.
- Il nome deve essere univoco nell'area di lavoro di Azure Databricks che ospita l'app e deve contenere solo lettere minuscole, numeri e trattini.
Se è stata selezionata l'opzione Personalizzata, fare clic su Crea app. Se è stata selezionata l'opzione Modello, configurare le risorse necessarie e fare clic su Crea e distribuisci app. Vedere Assegnare le funzionalità della piattaforma Databricks a un'app Databricks.
La pagina dei dettagli dell'app viene visualizzata dopo aver fatto clic su Crea e distribuisci app o Crea app. Se è stato selezionato Modello, Databricks Apps crea l'app e quindi distribuisce l'app, incluso il codice di esempio dal modello e la configurazione necessaria per l'app. La pagina dei dettagli per l'app mostra:
- Stato della creazione e della distribuzione dell'app.
- I passaggi che è possibile usare per continuare lo sviluppo dell'app in locale, inclusa la copia degli artefatti dell'app nell'ambiente locale e la sincronizzazione delle modifiche locali nell'area di lavoro di Azure Databricks.
Se è stata selezionata l'opzione Personalizzata, Databricks Apps crea l'app. Poiché è necessario aggiungere il codice e gli artefatti per l'app, è necessario distribuire l'app come passaggio separato. La pagina dei dettagli per l'app mostra:
- Stato della creazione dell'app.
- I passaggi che è possibile usare per sincronizzare il codice e gli artefatti dell'app dall'ambiente di sviluppo locale all'area di lavoro di Azure Databricks e distribuire l'app.
Per informazioni su come configurare un ambiente di sviluppo locale, creare o aggiornare il codice e la configurazione per l'app in locale e sincronizzare e distribuire l'app nell'area di lavoro di Azure Databricks, vedere Introduzione ad App Databricks.
Se è stato selezionato Modello e si vogliono copiare gli artefatti dell'app dall'area di lavoro nell'ambiente di sviluppo locale, è possibile usare l'interfaccia della riga di comando di Databricks:
databricks workspace export-dir <workspace-path> <target-path>
Sostituire:
<workspace-path>
con il percorso della directory dei file dell'area di lavoro che contiene il codice e gli artefatti dell'app.<target-path>
con un percorso nell'ambiente locale in cui copiare i file.
Assegnare le funzionalità della piattaforma Databricks a un'app Databricks
Nota
Per usare Databricks SQL, le entità servizio richiedono l'accesso a un'istanza di SQL Warehouse e a qualsiasi tabella a cui accedono le query.
Per usare le funzionalità della piattaforma Databricks, ad esempio Databricks SQL, Databricks Jobs, Mosaic AI Model Serving e i segreti di Databricks, aggiungere queste funzionalità all'app come risorse. È possibile aggiungere risorse quando si crea o si modifica un'app.
Nella scheda Crea nuova app o Modifica app fare clic su Impostazioni> avanzate+ Aggiungi risorsa e selezionare il tipo di risorsa.
A seconda del tipo di risorsa, completare i campi necessari per configurare la risorsa, incluso il campo Chiave risorsa. Questa chiave viene usata in un secondo momento per fare riferimento alla risorsa.
Fare clic su Salva.
Aggiungere una voce per la risorsa nel
app.yaml
file di configurazione usando la chiave della risorsa di SQL Warehouse. Poiché fa riferimento all'origine del valore del parametro e non al valore effettivo, usarevalueFrom
anzichévalue
.env: - name: "DATABRICKS_WAREHOUSE_ID" valueFrom: "sql-warehouse"
Per fare riferimento alla risorsa nel codice dell'app, usare il valore del
name
campo (DATABRICKS_WAREHOUSE_ID
in questo esempio) per fare riferimento al valore della chiave configurata.import os os.getenv('DATABRICKS_WAREHOUSE_ID')
Per altri esempi di uso delle risorse con le app, inclusi i warehouse SQL e gli endpoint di gestione dei modelli, vedere gli esempi di modello quando si crea un'app e procedura consigliata: Usare i segreti per archiviare informazioni riservate per un'app Databricks.
Visualizzare i dettagli per un'app Databricks
Per visualizzare la pagina dei dettagli per un'app Databricks:
- Nella barra laterale fare clic su Ambiente di calcolo.
- Passare alla scheda App .
- Nella colonna Nome fare clic sul nome dell'app.
- La scheda Panoramica viene visualizzata con i dettagli per l'app, inclusi lo stato, il percorso di distribuzione e le risorse associate.
- Per accedere alla cronologia di distribuzione dell'app, passare alla scheda Distribuzioni .
- Per visualizzare i log per l'app, passare alla scheda Log .
- Per visualizzare l'ambiente di runtime per l'app, incluse le variabili di ambiente e i pacchetti installati, passare alla scheda Ambiente .
Configurare le autorizzazioni per l'app Databricks
Per gestire le autorizzazioni dell'app, è necessario disporre dell'autorizzazione CAN MANAGE
o IS OWNER
.
- Nella pagina dei dettagli dell'app fare clic su Autorizzazioni.
- In Impostazioni autorizzazioni selezionare il menu a discesa Seleziona utente, gruppo o entità servizio e quindi selezionare un utente, un gruppo, un'entità servizio o tutti gli utenti dell'area di lavoro.
- Nel menu a discesa Autorizzazioni, selezionare un’autorizzazione.
- Fare clic su Aggiungi e quindi su Salva.
Mantenimento dello stato per l'app Databricks
Qualsiasi stato gestito dall'app in memoria viene perso quando viene riavviato. Se l'app richiede il mantenimento dello stato tra i riavvii, archiviare lo stato esternamente. Ad esempio, l'app può usare Databricks SQL, i file dell'area di lavoro o i volumi di Unity Catalog per rendere persistente lo stato.
Registrazione dall'app Databricks
Nota
Per visualizzare i log nell'interfaccia utente di Databricks Apps o con l'URL dell'app, l'app deve accedere a stdout
e stderr
.
Per visualizzare l'output standard e l'errore standard per un'app, nella pagina dei dettagli dell'app fare clic sulla scheda Log . Vedere Visualizzare i dettagli per un'app Databricks.
È anche possibile visualizzare l'output standard e i log degli errori standard nel <appurl>/logz
collegamento. Ad esempio, se l'URL per l'app è https://my-app-1234567890.my-instance.databricksapps.com
, è possibile visualizzare i log in https://my-app-1234567890.my-instance.databricksapps.com/logz
. Per trovare l'URL dell'app, passare alla pagina dei dettagli dell'app.
Specifica delle dipendenze della libreria per l'app Databricks
Se l'app richiede librerie Python diverse dai pacchetti installati automaticamente con la distribuzione, usare un requirements.txt
file per definire tali librerie. Se un pacchetto nel requirements.txt
file duplica uno dei pacchetti installati automaticamente, la versione nell'oggetto requirements.txt
esegue l'override del pacchetto installato automaticamente.
Per l'elenco dei pacchetti e delle versioni installati come parte della distribuzione dell'app, vedere Librerie Python installate.
Quali intestazioni HTTP vengono passate alle app Databricks?
Le intestazioni seguenti X-Forwarded-*
vengono passate dal proxy inverso di Databricks Apps alle app:
Intestazione | Descrizione |
---|---|
X-Forwarded-Host |
Host o dominio originale richiesto dal client. |
X-Forwarded-Preferred-Username |
Nome utente fornito da IdP. |
X-Forwarded-User |
Identificatore utente fornito da IdP. |
X-Forwarded-Email |
Indirizzo di posta elettronica dell'utente fornito da IdP. |
X-Real-Ip |
Indirizzo IP del client che ha eseguito la richiesta originale. |
X-Request-Id |
UUID della richiesta. |
Quali framework sono supportati dalle app Databricks?
È possibile usare la maggior parte dei framework Python per sviluppare le app. Per visualizzare esempi di uso di framework specifici, tra cui Dash, Gradio e Streamlit, selezionare dalla libreria di app modello durante la creazione di una nuova app nell'interfaccia utente. Vedere Ricerca per categorie creare un'app nell'interfaccia utente di Databricks Apps?.
Per le variabili specifiche di Streamlit impostate nell'ambiente di runtime di Databricks Apps, vedere Variabili di ambiente predefinite per Streamlit.
Procedura consigliata: usare i segreti per archiviare informazioni riservate per un'app Databricks
Databricks consiglia di usare i segreti per archiviare informazioni riservate, ad esempio le credenziali di autenticazione. Per altre informazioni sull'uso dei segreti, vedere Gestire i segreti.
Per usare un segreto con l'app:
Configurare il segreto come risorsa dell'app.
Aggiungere una voce per il segreto nel file di configurazione dell'app
app.yaml
.env: - name: "API_TOKEN" valueFrom: "api-token-value"
Per fare riferimento al segreto nel codice dell'app, usare il valore del
name
campo (API_TOKEN
in questo esempio) per fare riferimento al valore della chiave configurata.
token = os.getenv('API_TOKEN')
Procedura consigliata: Usare le funzionalità di Azure Databricks per l'elaborazione dei dati
Il calcolo di Databricks Apps è progettato per la gestione dell'interfaccia utente. Per garantire che le app possano supportare in modo efficiente più utenti, è consigliabile usare le funzionalità di Databricks per eseguire operazioni diverse dall'elaborazione dati semplice. Ad esempio, usare Databricks SQL per l'elaborazione delle query e l'archiviazione di set di dati, processi di Databricks per l'elaborazione dei dati o modelli per eseguire query sui modelli di intelligenza artificiale.
Procedura consigliata: seguire le procedure consigliate per la codifica sicura
Databricks consiglia di seguire procedure di codifica sicure durante lo sviluppo di app, inclusa la parametrizzazione delle query per evitare attacchi SQL injection. Vedere l'API di esecuzione dell'istruzione.
Linee guida importanti per l'implementazione di app Databricks
- Databricks Apps invia un
SIGKILL
segnale 15 secondi dopo un ,SIGTERM
quindi le app devono arrestarsi normalmente non più di 15 secondi dopo aver ricevuto ilSIGTERM
segnale. Se un'app non è stata chiusa dopo 15 secondi, viene inviato unSIGKILL
segnale per terminare il processo e tutti i processi figlio. - Poiché Le app di Databricks vengono eseguite come utente di sistema senza privilegi, non possono eseguire operazioni che richiedono l'esecuzione in un contesto di sicurezza con privilegi, ad esempio le operazioni che richiedono autorizzazioni utente radice.
- Le richieste vengono inoltrate da un proxy inverso, quindi le app non devono dipendere dalle origini delle richieste. L'ambiente Databricks Apps imposta i parametri di configurazione necessari per i framework supportati.
- Poiché il framework dell'app Databricks gestisce le connessioni TLS (Transport Layer Security), le app non devono eseguire alcuna connessione TLS o operazioni di handshake.
- Le app devono essere implementate per gestire le richieste in formato testo non crittografato HTTP/2 (H2C).
- Le app Databricks devono ospitare server HTTP in
0.0.0.0
e usare il numero di porta specificato nellaDATABRICKS_APP_PORT
variabile di ambiente. Vedere variabili di ambiente.