Utveckla Databricks-appar
Viktigt!
Databricks Apps finns i offentlig förhandsversion.
Kommentar
Om du vill distribuera och köra appar på databricks-arbetsytan måste du se till att brandväggen inte blockerar domänen *.databricksapps.com
.
Den här artikeln innehåller information om hur du skapar data- och AI-appar med Databricks-appar, inklusive hur du skapar och redigerar appar i användargränssnittet, hur du använder Databricks-plattformsfunktioner som SQL-lager, hemligheter och Databricks-jobb, metodtips för att utveckla dina appar och viktig information för att utveckla appar med ramverk som stöds.
Hur gör jag för att skapa en app i Användargränssnittet för Databricks-appar?
I sidofältet klickar du på
Ny och väljer App på menyn.
Du kan börja med en komplett, fördefinierad exempelapp eller använda källkoden och artefakterna.
- Börja med en exempelapp genom att välja Mall, klicka på fliken för önskat ramverk och välja från listan över appar.
- För att skapa en app med din kod, välj Anpassad.
Klicka på Nästa.
I fältet Appnamn anger du ett namn för appen och anger en beskrivning.
Kommentar
- Namnet som tilldelats en Databricks-app kan inte ändras när appen har skapats, och alla användare med åtkomst till en Azure Databricks-arbetsyta kan se namn och distributionshistorik för alla Databricks-appar på arbetsytan. Dessutom inkluderas appnamnet i register som skrivs till systemtabeller. På grund av den här synligheten bör du inte inkludera känslig information när du namnger dina Databricks-appar.
- Namnet måste vara unikt på den Azure Databricks-arbetsyta som är värd för appen och får endast innehålla gemener, siffror och bindestreck.
Om du har valt Anpassad klickar du på Skapa app. Om du har valt Mall konfigurerar du de resurser som krävs och klickar på Skapa och distribuera app. Se Tilldela Databricks-plattformsfunktioner till en Databricks-app.
Sidan med appinformation visas när du har klickat på Skapa och distribuera app eller Skapa app. Om du har valt Mall skapar Databricks Apps din app och distribuerar sedan appen, inklusive exempelkoden från mallen och nödvändig konfiguration för appen. Informationssidan för appen visar:
- Status för appens skapande och distribution.
- De steg du kan använda för att fortsätta utvecklingen av appen lokalt, inklusive att kopiera appartefakter till din lokala miljö och synkronisera lokala ändringar tillbaka till Azure Databricks-arbetsytan.
Om du har valt Anpassad skapar Databricks Apps din app. Eftersom du måste lägga till koden och artefakterna för din app måste du distribuera appen som ett separat steg. Informationssidan för appen visar:
- Status för appens skapande.
- De steg du kan använda för att synkronisera appens kod och artefakter från din lokala utvecklingsmiljö till din Azure Databricks-arbetsyta och distribuera appen.
Information om hur du konfigurerar en lokal utvecklingsmiljö, skapar eller uppdaterar koden och konfigurationen för din app lokalt och synkroniserar och distribuerar appen till din Azure Databricks-arbetsyta finns i Komma igång med Databricks Apps.
Om du har valt Mall och vill kopiera appartefakter från arbetsytan till din lokala utvecklingsmiljö kan du använda Databricks CLI:
databricks workspace export-dir <workspace-path> <target-path>
Ersätta:
-
<workspace-path>
med sökvägen till arbetsytans filkatalog som innehåller din appkod och artefakter. -
<target-path>
med en sökväg i din lokala miljö att kopiera filerna till.
-
Tilldela Databricks-plattformsfunktioner till en Databricks-app
Kommentar
För att kunna använda Databricks SQL kräver tjänstens huvudnamn åtkomst till ett SQL-lager och alla tabeller som nås av frågor.
Om du vill använda funktioner i Databricks-plattformen, till exempel Databricks SQL, Databricks Jobs, Mosaic AI Model Serving och Databricks-hemligheter, lägger du till dessa funktioner i din app som resurser. Du kan lägga till resurser när du skapar eller redigerar en app.
I kortet Skapa ny app eller Redigera app klickar du på Avancerade inställningar>+ Lägg till resursoch väljer resurstyp.
Beroende på resurstyp fyller du i de fält som krävs för att konfigurera resursen, inklusive fältet Resursnyckel . Den här nyckeln används senare för att referera till resursen.
Klicka på Spara.
Lägg till en post för resursen i konfigurationsfilen
app.yaml
med hjälp av SQL Warehouse-resursnyckeln. Eftersom detta refererar till parametervärdets källa och inte det faktiska värdet använder duvalueFrom
i stället förvalue
.env: - name: "DATABRICKS_WAREHOUSE_ID" valueFrom: "sql-warehouse"
Om du vill referera till resursen i appkoden använder du värdet för
name
fältet (DATABRICKS_WAREHOUSE_ID
i det här exemplet) för att referera till det konfigurerade nyckelvärdet.import os os.getenv('DATABRICKS_WAREHOUSE_ID')
Om du vill se fler exempel på hur du använder resurser med appar, inklusive SQL-lager och modellserverslutpunkter, kan du läsa mallexemplen när du skapar en app och Bästa praxis: Använd hemligheter för att lagra känslig information för en Databricks-app.
Visa information för en Databricks-app
Så här visar du informationssidan för en Databricks-app:
- Klicka på
Beräkna i sidofältet.
- Gå till fliken Appar .
- I kolumnen Namn klickar du på appnamnet.
- Fliken Översikt visas med information om appen, inklusive dess status, distributionsplats och eventuella associerade resurser.
- Om du vill komma åt appens distributionshistorik går du till fliken Distributioner .
- Om du vill visa loggarna för appen går du till fliken Loggar .
- Om du vill visa körningsmiljön för appen, inklusive miljövariabler och installerade paket, går du till fliken Miljö .
Konfigurera behörigheter för din Databricks-app
Om du vill hantera appens behörigheter måste du ha behörigheten CAN MANAGE
eller IS OWNER
.
- På sidan appinformation klickar du på Behörigheter.
- I Behörighetsinställningarväljer du Välj användare, Grupp eller Tjänsthuvudnamn... nedrullningsbara menyn och väljer sedan en användare, grupp, tjänstens huvudnamn eller alla arbetsyteanvändare.
- Välj en behörighet från den nedrullningsbara menyn för behörighet.
- Klicka på Lägg till och sedan på Spara.
Underhålla tillstånd för din Databricks-app
Alla tillstånd som appen har i minnet går förlorade när den startas om. Om appen kräver underhåll mellan omstarter lagrar du tillståndet externt. Din app kan till exempel använda Databricks SQL, arbetsytefilereller Unity Catalog-volymer för att bevara tillståndet.
Logga från din Databricks-app
Kommentar
Om du vill visa loggar i användargränssnittet för Databricks-appar eller med appens URL måste appen logga in på stdout
och stderr
.
Om du vill visa standardutdata och standardfel för en app klickar du på fliken Loggar på informationssidan för appen. Se Visa information för en Databricks-app.
Du kan också visa standardutdata- och standardfelloggarna på <appurl>/logz
länken. Om url:en för din app till exempel är https://my-app-1234567890.my-instance.databricksapps.com
kan du visa loggarna på https://my-app-1234567890.my-instance.databricksapps.com/logz
. Om du vill hitta appens URL går du till sidan med appinformation.
Ange biblioteksberoenden för din Databricks-app
Om din app kräver andra Python-bibliotek än de automatiskt installerade paketen som installerats med distributionen använder du en requirements.txt
fil för att definiera dessa bibliotek. Om ett paket i requirements.txt
filen duplicerar ett av de automatiskt installerade paketen åsidosätter versionen i ditt requirements.txt
automatiskt installerade paket.
Listan över paket och versioner som är installerade som en del av appdistributionen finns i Installerade Python-bibliotek.
Vilka HTTP-huvuden skickas till Databricks-appar?
Följande X-Forwarded-*
rubriker skickas från Databricks Apps omvända proxy till appar:
Header | beskrivning |
---|---|
X-Forwarded-Host |
Den ursprungliga värden eller domänen som begärdes av klienten. |
X-Forwarded-Preferred-Username |
Användarnamnet som tillhandahålls av IdP. |
X-Forwarded-User |
Användaridentifieraren som tillhandahålls av IdP. |
X-Forwarded-Email |
Användarens e-post som tillhandahålls av IdP. |
X-Real-Ip |
IP-adressen för klienten som gjorde den ursprungliga begäran. |
X-Request-Id |
UUID för begäran. |
Vilka ramverk stöds av Databricks Apps?
Du kan använda de flesta Python-ramverk för att utveckla dina appar. Om du vill se exempel på hur du använder specifika ramverk, inklusive Dash, Gradio och Streamlit, väljer du från biblioteket med mallappar när du skapar en ny app i användargränssnittet. Se Hur gör jag för att skapa en app i Användargränssnittet för Databricks-appar?.
Mer information om Streamlit-specifika variabler som anges i Databricks Apps-körningsmiljön finns i Standardmiljövariabler för Streamlit.
Bästa praxis: Använd hemligheter för att lagra känslig information för en Databricks-app
Databricks rekommenderar att du använder hemligheter för att lagra känslig information, till exempel autentiseringsuppgifter. Mer information om hur du använder hemligheter finns i Hantera hemligheter.
Så här använder du en hemlighet med din app:
Konfigurera hemligheten som en appresurs.
Lägg till en post för hemligheten i appens konfigurationsfil
app.yaml
.env: - name: "API_TOKEN" valueFrom: "api-token-value"
Om du vill referera till hemligheten i din appkod använder du värdet för
name
fältet (API_TOKEN
i det här exemplet) för att referera till det konfigurerade nyckelvärdet.
token = os.getenv('API_TOKEN')
Bästa praxis: Använda Azure Databricks-funktioner för databearbetning
Databricks Apps-beräkning är utformad för att hantera användargränssnittet. För att säkerställa att dina appar effektivt kan stödja flera användare bör du använda Databricks-funktioner för att utföra allt annat än enkel databehandling. Du kan till exempel använda Databricks SQL för frågebearbetning och lagring av datauppsättningar, Databricks-jobb för databearbetning eller modell som används för att fråga AI-modeller.
Bästa praxis: Följ metodtips för säker kodning
Databricks rekommenderar att du följer säkra kodningsmetoder när du utvecklar dina appar, inklusive att parameterisera frågor för att undvika SQL-inmatningsattacker. Se instruktionens körnings-API.
Viktiga riktlinjer för att implementera Databricks-appar
- Databricks Apps skickar en
SIGKILL
signal 15 sekunder efter enSIGTERM
, så appar bör stängas av korrekt högst 15 sekunder efter att de har fått signalenSIGTERM
. Om en app inte har avslutats efter 15 sekunder skickas enSIGKILL
signal för att avsluta processen och alla underordnade processer. - Eftersom Databricks-appar körs som en icke-privilegierad systemanvändare kan de inte utföra åtgärder som kräver körning i en privilegierad säkerhetskontext, till exempel åtgärder som kräver rotanvändarbehörigheter.
- Begäranden vidarebefordras från en omvänd proxy, så appar får inte vara beroende av begärandenas ursprung. Databricks Apps-miljön anger nödvändiga konfigurationsparametrar för ramverk som stöds.
- Eftersom Databricks-appramverket hanterar TLS-anslutningar (Transport Layer Security) får dina appar inte utföra några TLS-anslutningar eller handskakningsåtgärder.
- Dina appar måste implementeras för att hantera begäranden i HTTP/2-klartextformat (H2C).
- Databricks-appar måste vara värdar för HTTP-servrar på
0.0.0.0
och använda portnumret som anges iDATABRICKS_APP_PORT
miljövariabeln. Se miljövariabler.