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