Condividi tramite


Configurazione di Databricks Apps

Importante

Databricks Apps è disponibile in anteprima pubblica.

Questo articolo descrive in dettaglio le impostazioni configurate automaticamente nell'ambiente Databricks Apps e spiega come definire la configurazione personalizzata necessaria per le app.

L'ambiente Databricks Apps imposta diverse variabili di ambiente, ad esempio l'URL dell'area di lavoro di Azure Databricks che esegue l'app e i valori necessari per eseguire l'autenticazione per l'app. Tuttavia, a volte le app richiedono variabili personalizzate aggiuntive. Ad esempio, potrebbe essere necessario un comando personalizzato per eseguire l'app o i parametri per connettersi a un'istanza di SQL Warehouse. Per questi parametri di configurazione personalizzati, usare il app.yaml file .

Configurazione delle app databricks con il app.yaml file

Nota

Il file di configurazione dell'app può usare l'estensione .yaml o .yml .

Per definire la configurazione personalizzata per l'app, aggiungere un app.yaml file al progetto. La tabella seguente illustra le impostazioni che è possibile definire nel app.yaml file, seguita da file di configurazione di esempio.

Impostazioni app.yaml
command
Tipo: sequence
Set facoltativo di argomenti per eseguire l'app. Usare questa impostazione quando è necessario un comando personalizzato per eseguire l'app. I valori predefiniti sono [python, app.py].
Il comando non viene eseguito in una shell, quindi tutti i valori impostati nell'ambiente non vengono passati all'app. Se l'app richiede parametri aggiuntivi da eseguire, usare la env struttura .
Questo impostazione è facoltativa.
env
Tipo: list
Chiave di primo livello per un elenco facoltativo di coppie chiave-valore che definiscono le variabili di ambiente da passare all'app. value può essere un valore effettivo del parametro o un riferimento alla posizione in cui è archiviato il valore. Gli elementi validi nell'elenco sono:
  • name: nome della variabile di ambiente.
  • Uno dei seguenti:
  • value: valore per la variabile di ambiente.
  • valueFrom: per un valore definito esternamente, il nome dell'origine contenente il valore. Ad esempio, il nome di un segreto o di una tabella di database contenente il valore .

Questo impostazione è facoltativa.

Esempio app.yaml per un'app Streamlit

Il file di configurazione di esempio app.yaml seguente esegue un'app Streamlit, passando un ID di sql warehouse e un valore per il STREAMLIT_GATHER_USAGE_STATS parametro :

command: ['streamlit', 'run', 'app.py']
env:
  - name: 'DATABRICKS_WAREHOUSE_ID'
    value: 'quoz2bvjy8bl7skl'
  - name: 'STREAMLIT_GATHER_USAGE_STATS'
    value: 'false'

Esempio app.yaml per un'app Flask

Il file di configurazione di esempio app.yaml seguente esegue un'app Flask con il server Gunicorn e imposta una variabile di ambiente contenente il percorso di un volume del catalogo Unity:

command:
  - gunicorn
  - app:app
  - -w
  - 4
env:
  - name: 'VOLUME_URI'
    value: '/Volumes/catalog-name/schema-name/dir-name'

Fare riferimento a un segreto Databricks

Per fare riferimento a un segreto configurato come dipendenza di risorsa per l'app, impostare valueFrom: <dependency_name> nella sezione env della configurazione app.yaml. Sostituire dependency_name con il valore della chiave di risorsa dalla configurazione per la risorsa privata. Per ulteriori informazioni sulle dipendenze delle risorse delle app Databricks, vedere Come posso integrare la mia app Databricks con i servizi di Azure Databricks?. Per altre informazioni sulla gestione dei segreti di Databricks, vedere Gestire i segreti.

L'esempio app.yaml seguente fa riferimento a un segreto configurato come dipendenza della risorsa:

command: ['python', 'app.py']
env:
  - name: 'SECRET_KEY'
    valueFrom: 'secret-name'

Per fare riferimento al segreto nel codice dell'app, usare il valore del campo name (SECRET_KEY in questo esempio) per fare riferimento al valore della chiave configurata:

secret_value = os.getenv('SECRET_KEY')

Consultare Procedura consigliata: Usare i segreti per conservare dati sensibili in un'app Databricks.

Variabili di ambiente di Databricks Apps

Le variabili seguenti vengono impostate automaticamente nell'ambiente Databricks Apps e disponibili per tutte le app. Se è necessario impostare altre variabili di ambiente, aggiungerle al file app.yaml.

Variabile Descrizione
DATABRICKS_APP_NAME Nome dell'app in esecuzione.
DATABRICKS_WORKSPACE_ID ID univoco per l'area di lavoro di Databricks a cui appartiene l'app.
DATABRICKS_HOST URL dell'area di lavoro di Databricks a cui appartiene l'app.
DATABRICKS_APP_PORT La porta di rete su cui l'app deve ascoltare.
DATABRICKS_CLIENT_ID ID cliente per il servizio principale di Databricks assegnato all'applicazione.
DATABRICKS_CLIENT_SECRET Il segreto OAuth per il servizio principale Databricks assegnato all'app.

Variabili di ambiente predefinite per Streamlit

Le variabili specifiche di Streamlit seguenti vengono configurate automaticamente nell'ambiente Databricks Apps e disponibili per le app Databricks che usano il framework Streamlit:

Variabile Descrizione
STREAMLIT_SERVER_ADDRESS Indirizzo del server da usare da Streamlit. Questo valore è impostato su 0.0.0.0 e non deve essere sottoposto a override.
STREAMLIT_SERVER_PORT Porta da utilizzare per Streamlit. Questo valore è impostato su DATABRICKS_APP_PORT e non deve essere sottoposto a override.
STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION Poiché il proxy inverso delle Databricks Apps protegge dalla falsificazione di richieste intersito (XSRF), questo è impostato su false.
STREAMLIT_SERVER_ENABLE_CORS Poiché il proxy inverso di Databricks Apps protegge dalla condivisione di risorse tra le origini (CORS), questa opzione è impostata su false.
STREAMLIT_SERVER_HEADLESS Questa opzione è impostata su true in modo che Streamlit venga eseguito senza aprire una finestra del browser all'avvio.
STREAMLIT_BROWSER_GATHER_USAGE_STATS Questa opzione è impostata su false per impedire l'invio di statistiche utente a Streamlit.