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