Dela via


Konfiguration av Databricks-appar

Viktigt!

Databricks Apps finns i offentlig förhandsversion.

Den här artikeln beskriver de inställningar som konfigureras automatiskt i Databricks Apps-miljön och förklarar hur du definierar anpassad konfiguration som krävs för dina appar.

Databricks Apps-miljön anger flera miljövariabler, till exempel URL:en för Azure Databricks-arbetsytan som kör appen och värden som krävs för att utföra autentisering för din app. Ibland kräver dock dina appar ytterligare anpassade variabler. Du kan till exempel behöva ett anpassat kommando för att köra appen eller parametrarna för att ansluta till ett SQL-lager. Använd app.yaml-filen för dessa anpassade konfigurationsparametrar.

Konfigurera dina Databricks-appar med app.yaml filen

Anteckning

Din appkonfigurationsfil kan använda .yaml tillägget eller .yml .

Om du vill definiera anpassad konfiguration för din app lägger du till en app.yaml fil i projektet. I följande tabell visas de inställningar som du kan definiera i app.yaml filen, följt av exempelkonfigurationsfiler.

app.yaml -inställningar
command
Typ: sequence
En valfri uppsättning argument för att köra din app. Använd den här inställningen när du behöver ett anpassat kommando för att köra appen. Standardvärdena är [python, app.py].
Kommandot körs inte i ett gränssnitt, så alla värden som anges i miljön skickas inte till din app. Om din app kräver ytterligare parametrar för att köras använder du env strukturen.
Den här inställningen är valfri.
env
Typ: list
Den översta nyckeln för en valfri lista över nyckel/värde-par som definierar miljövariabler som ska skickas till din app. value Kan vara antingen ett faktiskt parametervärde eller en referens till var värdet lagras. De giltiga objekten i listan är:
  • name: Namnet på miljövariabeln.
  • En av:
  • value: Värdet för miljövariabeln.
  • valueFrom: För ett externt definierat värde, namnet på källan som innehåller värdet. Till exempel namnet på en hemlighet eller en databastabell som innehåller värdet.

Den här inställningen är valfri.

Exempel app.yaml för en Streamlit-app

Följande exempelkonfigurationsfil app.yaml kör en Streamlit-app och skickar in ett SQL-lager-ID och ett värde för parametern STREAMLIT_GATHER_USAGE_STATS :

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

Exempel app.yaml för en Flask-app

Följande exempelkonfigurationsfil app.yaml kör en Flask-app med Gunicorn-servern och anger en miljövariabel som innehåller sökvägen till en Unity Catalog-volym:

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

Referera till en Databricks-säkerhetsnyckel

För att referera till en hemlighet som konfigurerats som ett resursberoende för din app, anger du valueFrom: <dependency_name> i env-avsnittet i din app.yaml-konfiguration. Ersätt dependency_name med resursnyckelvärdet från konfigurationen för den hemliga resursen. Mer information om resursberoenden för Databricks Apps finns i Hur gör jag för att integrera min Databricks-app med Azure Databricks-tjänster?. Mer information om hur du hanterar Databricks-hemligheter finns i Hantera hemligheter.

Följande exempel app.yaml refererar till en hemlighet som konfigurerats som ett resursberoende:

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

Om du vill referera till hemligheten i din appkod använder du värdet för fältet name (SECRET_KEY i det här exemplet) för att referera till det konfigurerade nyckelvärdet:

secret_value = os.getenv('SECRET_KEY')

Se bästa praxis: Använd hemligheter för att lagra känslig information för en Databricks-app.

Miljövariabler för Databricks Apps

Följande variabler anges automatiskt i Databricks Apps-miljön och är tillgängliga för alla appar. Om du behöver ange ytterligare miljövariabler lägger du till dem i filen app.yaml.

Variabel beskrivning
DATABRICKS_APP_NAME Namnet på appen som körs.
DATABRICKS_WORKSPACE_ID Det unika ID:t för Databricks-arbetsytan som appen tillhör.
DATABRICKS_HOST URL:en för databricks-arbetsytan som appen tillhör.
DATABRICKS_APP_PORT Nätverksporten som appen ska lyssna på.
DATABRICKS_CLIENT_ID Klient-ID:t för Databricks-tjänstens huvudkonto som har tilldelats appen.
DATABRICKS_CLIENT_SECRET OAuth-hemligheten för Databricks-tjänstens tjänstekonto som är tilldelat appen.

Standardmiljövariabler för Streamlit

Följande Streamlit-specifika variabler konfigureras automatiskt i Databricks Apps-miljön och är tillgängliga för dina Databricks-appar som använder Streamlit-ramverket:

Variabel beskrivning
STREAMLIT_SERVER_ADDRESS Serveradressen som ska användas av Streamlit. Det här värdet är inställt på 0.0.0.0 och får inte åsidosättas.
STREAMLIT_SERVER_PORT Porten som ska användas av Streamlit. Det här värdet är inställt på DATABRICKS_APP_PORT och får inte åsidosättas.
STREAMLIT_SERVER_ENABLE_XSRF_PROTECTION Eftersom den omvända proxyn för Databricks Apps skyddar mot förfalskning av begäranden mellan webbplatser (XSRF) är detta inställt på false.
STREAMLIT_SERVER_ENABLE_CORS Eftersom omvänd proxy i Databricks Apps skyddar mot delning av resurser mellan olika ursprung (CORS) är detta inställt på false.
STREAMLIT_SERVER_HEADLESS Detta är inställt på så att true Streamlit körs utan att öppna ett webbläsarfönster när du startar.
STREAMLIT_BROWSER_GATHER_USAGE_STATS Detta är inställt på att false förhindra att användarstatistik skickas till Streamlit.