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:
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. |