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 di Databricks Apps imposta diverse variabili di ambiente, ad esempio l'URL dell'area di lavoro di Azure Databricks che esegue l'app e values necessarie 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 parameters per connettersi a un'istanza di SQL Warehouse. Per queste configurazioni personalizzate parameters, usare il file app.yaml
.
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. Il table seguente mostra le impostazioni che è possibile definire nel file app.yaml
, seguito da file di configurazione di esempio.
Impostazioni diapp.yaml |
---|
command Tipo: sequence Un'opzione set facoltativa di argomenti per eseguire la tua app. Usare questa impostazione quando è necessario un comando personalizzato per eseguire l'app. Le values predefinite sono [python, app.py] .Il comando non viene eseguito in una shell, quindi qualsiasi valuesset nell'ambiente non viene passato all'app. Se un'app richiede ulteriori parameters per funzionare, utilizzare la struttura env .Questo impostazione è facoltativa. |
env Tipo: list Chiave di primo livello per un list facoltativo di coppie chiave-valore che definiscono le variabili di ambiente da passare all'app. Il value può essere un valore di parametro effettivo o un riferimento a where il valore viene archiviato. Gli elementi validi nella list sono:- name : nome della variabile di ambiente.- Uno di: - 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 un database table 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 seguente esempio di file di configurazione app.yaml
esegue un'app Flask con il server Gunicorn e imposta una variabile di ambiente contenente il percorso di un volume Unity Catalog.
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 risorse per la tua app, consultare setvalueFrom: <dependency_name>
nella sezione env
della configurazione di app.yaml
. Sostituire dependency_name
con il valore della chiave di risorsa dalla configurazione per la risorsa privata. Per altre informazioni sulle dipendenze delle risorse di Databricks Apps, vedere Ricerca per categorie integrare l'app Databricks con i servizi 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"
Variabili di ambiente di Databricks Apps
Le variabili seguenti vengono automaticamente set nell'ambiente Databricks Apps e sono disponibili per tutte le app. Se è necessario set variabili di ambiente aggiuntive, 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 rimanere in ascolto. |
DATABRICKS_CLIENT_ID |
ID client per l'entità servizio Databricks assegnata all'app. |
DATABRICKS_CLIENT_SECRET |
Segreto OAuth per l'entità servizio Databricks assegnata 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 è da set a 0.0.0.0 e non deve essere sovrascritto. |
STREAMLIT_SERVER_PORT |
Porta da usare da Streamlit. Questo valore è set per DATABRICKS_APP_PORT e non deve essere sottoposto a override. |
STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION |
Poiché il proxy inverso di Databricks Apps protegge da XSRF (Cross-Site Request Forgery), questo va da set a false . |
STREAMLIT_SERVER_ENABLE_CORS |
Poiché il proxy inverso di Databricks Apps protegge da CORS (Cross-Origin Resource Sharing), questo è compreso tra set e false . |
STREAMLIT_SERVER_HEADLESS |
Si tratta di set per true in modo che Streamlit venga eseguito senza aprire un browser window all'avvio. |
STREAMLIT_BROWSER_GATHER_USAGE_STATS |
Si tratta di passare da set a false per impedire l'invio di statistiche utente a Streamlit. |