Vývoj aplikací Databricks
Důležité
Aplikace Databricks jsou ve verzi Public Preview.
Poznámka:
Pokud chcete nasadit a spouštět aplikace v pracovním prostoru Databricks, musíte zajistit, aby brána firewall nezablokovala doménu *.databricksapps.com
.
Tento článek obsahuje podrobnosti o vytváření dat a aplikací AI pomocí služby Databricks Apps, včetně vytváření a úprav aplikací v uživatelském rozhraní, používání funkcí platformy Databricks, jako jsou sql warehouses, tajné kódy a úlohy Databricks, osvědčené postupy pro vývoj aplikací a důležité informace pro vývoj aplikací pomocí podporovaných architektur.
Návody vytvořit aplikaci v uživatelském rozhraní Databricks Apps?
Na bočním panelu klikněte na Nový a v nabídce vyberte Aplikaci.
Můžete začít kompletní předem vytvořenou ukázkovou aplikací nebo použít zdrojový kód a artefakty.
- Pokud chcete začít s ukázkovou aplikací, vyberte Šablonu, klikněte na kartu preferované architektury a vyberte ze seznamu aplikací.
- Pokud chcete vytvořit aplikaci pomocí kódu, vyberte Vlastní.
Klikněte na tlačítko Další.
Do pole Název aplikace zadejte název aplikace a volitelně zadejte popis.
Poznámka:
- Název přiřazený aplikaci Databricks nelze po vytvoření aplikace změnit a každý uživatel s přístupem k pracovnímu prostoru Azure Databricks může zobrazit názvy a historii nasazení všech aplikací Databricks v pracovním prostoru. Název aplikace je navíc součástí záznamů zapsaných do systémových tabulek. Kvůli této viditelnosti byste při pojmenování aplikací Databricks neměli obsahovat citlivé informace.
- Název musí být jedinečný v pracovním prostoru Azure Databricks, který je hostitelem aplikace, a musí obsahovat jenom malá písmena, číslice a pomlčky.
Pokud jste vybrali Možnost Vlastní, klikněte na Vytvořit aplikaci. Pokud jste vybrali možnost Šablona, nakonfigurujte požadované prostředky a klikněte na Vytvořit a nasadit aplikaci. Viz Přiřazení funkcí platformy Databricks k aplikaci Databricks.
Stránka podrobností aplikace se zobrazí po kliknutí na Vytvořit a nasadit aplikaci nebo Vytvořit aplikaci. Pokud jste vybrali šablonu, Aplikace Databricks vytvoří vaši aplikaci a pak ji nasadí, včetně ukázkového kódu ze šablony a požadované konfigurace aplikace. Zobrazí se stránka s podrobnostmi aplikace:
- Stav vytvoření a nasazení aplikace
- Kroky, které můžete použít k místnímu vývoji aplikace, včetně kopírování artefaktů aplikace do místního prostředí a synchronizace místních změn zpět do pracovního prostoru Azure Databricks.
Pokud jste vybrali Možnost Vlastní, aplikace Databricks vytvoří vaši aplikaci. Vzhledem k tomu, že musíte přidat kód a artefakty aplikace, musíte aplikaci nasadit jako samostatný krok. Zobrazí se stránka s podrobnostmi aplikace:
- Stav vytvoření aplikace
- Kroky, které můžete použít k synchronizaci kódu a artefaktů aplikace z místního vývojového prostředí do pracovního prostoru Azure Databricks a nasazení aplikace.
Informace o tom, jak nastavit místní vývojové prostředí, vytvořit nebo aktualizovat kód a konfiguraci aplikace místně a synchronizovat a nasadit aplikaci do pracovního prostoru Azure Databricks, najdete v tématu Začínáme s Databricks Apps.
Pokud jste vybrali šablonu a chcete zkopírovat artefakty aplikace z pracovního prostoru do místního vývojového prostředí, můžete použít rozhraní příkazového řádku Databricks:
databricks workspace export-dir <workspace-path> <target-path>
Nahrazení:
<workspace-path>
s cestou k adresáři souborů pracovního prostoru, který obsahuje kód aplikace a artefakty.<target-path>
s cestou v místním prostředí, do které chcete soubory zkopírovat.
Přiřazení funkcí platformy Databricks k aplikaci Databricks
Poznámka:
Pokud chcete používat Databricks SQL, instanční objekty vyžadují přístup ke službě SQL Warehouse a ke všem tabulkám, ke které mají dotazy přístup.
Pokud chcete používat funkce platformy Databricks, jako jsou Databricks SQL, Úlohy Databricks, Obsluha modelů Mosaic AI a tajné kódy Databricks, přidejte tyto funkce do aplikace jako prostředky. Prostředky můžete přidat při vytváření nebo úpravách aplikace.
Na kartě Vytvořit novou aplikaci nebo Upravit aplikaci klikněte na Upřesnit nastavení> + Přidat prostředek a vyberte typ prostředku.
V závislosti na typu zdroje vyplňte pole potřebná ke konfiguraci zdroje, včetně pole Klíč zdroje. Tento klíč se použije později k odkazu na prostředek.
Klikněte na Uložit.
Přidejte položku pro prostředek v konfiguračním
app.yaml
souboru pomocí klíče prostředku SQL Warehouse. Vzhledem k tomu, že se jedná o odkaz na zdroj hodnoty parametru, nikoli na skutečnou hodnotu, použijtevalueFrom
místovalue
.env: - name: "DATABRICKS_WAREHOUSE_ID" valueFrom: "sql-warehouse"
Pokud chcete odkazovat na prostředek v kódu aplikace, použijte hodnotu
name
pole (DATABRICKS_WAREHOUSE_ID
v tomto příkladu) k odkazování na nakonfigurovanou hodnotu klíče.import os os.getenv('DATABRICKS_WAREHOUSE_ID')
Pokud chcete zobrazit další příklady použití prostředků s aplikacemi, včetně SQL Warehouse a modelů obsluhujících koncové body, podívejte se na příklady šablon při vytváření aplikace a osvědčený postup: Použití tajných kódů k ukládání citlivých informací pro aplikaci Databricks.
Zobrazení podrobností o aplikaci Databricks
Zobrazení stránky podrobností pro aplikaci Databricks:
- Na bočním panelu klikněte na Výpočty.
- Přejděte na kartu Aplikace .
- Ve sloupci Název klikněte na název aplikace.
- Zobrazí se karta Přehled s podrobnostmi o aplikaci, včetně jejího stavu, umístění nasazení a všech přidružených prostředků.
- Pokud chcete získat přístup k historii nasazení aplikace, přejděte na kartu Nasazení .
- Pokud chcete zobrazit protokoly aplikace, přejděte na kartu Protokoly .
- Pokud chcete zobrazit běhové prostředí aplikace, včetně proměnných prostředí a nainstalovaných balíčků, přejděte na kartu Prostředí .
Konfigurace oprávnění pro aplikaci Databricks
Pokud chcete spravovat oprávnění aplikace, musíte mít CAN MANAGE
oprávnění nebo IS OWNER
oprávnění.
- Na stránce podrobností aplikace klikněte na Oprávnění.
- V nastavení oprávnění vyberte rozevírací nabídku Vybrat uživatele, skupinu nebo instanční objekt... a pak vyberte uživatele, skupinu, instanční objekt nebo všechny uživatele pracovního prostoru.
- V rozevírací nabídce oprávnění vyberte oprávnění.
- Klepněte na tlačítko Přidat a potom klepněte na tlačítko Uložit.
Udržování stavu aplikace Databricks
Při restartování aplikace dojde ke ztrátě stavu, který vaše aplikace udržuje v paměti. Pokud vaše aplikace vyžaduje zachování stavu mezi restartováními, uložte stav externě. Vaše aplikace může například k zachování stavu použít svazky Databricks SQL, soubory pracovního prostoru nebo svazky katalogu Unity.
Protokolování z aplikace Databricks
Poznámka:
Pokud chcete zobrazit protokoly v uživatelském rozhraní Databricks Apps nebo pomocí adresy URL aplikace, musí se vaše aplikace přihlásit k stdout
a stderr
.
Pokud chcete zobrazit standardní výstup a standardní chybu aplikace, klikněte na stránce podrobností aplikace na kartu Protokoly . Viz Zobrazení podrobností o aplikaci Databricks.
Na odkazu můžete také zobrazit standardní výstupní a standardní protokoly <appurl>/logz
chyb. Pokud je například adresa URL vaší aplikace https://my-app-1234567890.my-instance.databricksapps.com
, můžete zobrazit protokoly na adrese https://my-app-1234567890.my-instance.databricksapps.com/logz
. Pokud chcete najít adresu URL aplikace, přejděte na stránku podrobností aplikace.
Určení závislostí knihovny pro vaši aplikaci Databricks
Pokud vaše aplikace vyžaduje jiné knihovny Pythonu, než jsou automaticky nainstalované balíčky nainstalované s vaším nasazením, použijte requirements.txt
k definování těchto knihoven soubor. Pokud balíček v requirements.txt
souboru duplikuje jeden z automaticky nainstalovaných balíčků, verze ve vašem requirements.txt
souboru přepíše automaticky nainstalovaný balíček.
Seznam balíčků a verzí nainstalovaných v rámci nasazení aplikace najdete v tématu Nainstalované knihovny Pythonu.
Jaké hlavičky HTTP se předávají aplikacím Databricks?
Z reverzního proxy serveru Databricks Apps do aplikací se předávají následující X-Forwarded-*
hlavičky:
Hlavička | Popis |
---|---|
X-Forwarded-Host |
Původní hostitel nebo doména, které klient požaduje. |
X-Forwarded-Preferred-Username |
Uživatelské jméno poskytnuté zprostředkovatele identity. |
X-Forwarded-User |
Identifikátor uživatele poskytnutý zprostředkovatele identity. |
X-Forwarded-Email |
E-mail uživatele poskytnutý zprostředkovatele identity. |
X-Real-Ip |
IP adresa klienta, který provedl původní požadavek. |
X-Request-Id |
UUID požadavku. |
Jaké architektury služba Databricks Apps podporuje?
K vývoji aplikací můžete použít většinu architektur Pythonu. Pokud chcete zobrazit příklady použití konkrétních architektur, včetně Dash, Gradio a Streamlit, vyberte při vytváření nové aplikace v uživatelském rozhraní knihovnu aplikací šablon. Podívejte se na Návody vytvoření aplikace v uživatelském rozhraní Databricks Apps?.
Informace o proměnných specifických pro Streamlit, které jsou nastavené v prostředí runtime Databricks Apps, najdete v tématu Výchozí proměnné prostředí pro Streamlit.
Osvědčený postup: Použití tajných kódů k ukládání citlivých informací pro aplikaci Databricks
Databricks doporučuje používat tajné kódy k ukládání citlivých informací, jako jsou přihlašovací údaje pro ověřování. Další informace o používání tajných kódů najdete v tématu Tajné kódy.
Použití tajného kódu s aplikací:
Nakonfigurujte tajný kód jako prostředek aplikace.
Do konfiguračního souboru aplikace přidejte položku tajného
app.yaml
kódu.env: - name: "API_TOKEN" valueFrom: "api-token-value"
Pokud chcete odkazovat na tajný kód v kódu aplikace, použijte hodnotu
name
pole (API_TOKEN
v tomto příkladu) k odkazování na nakonfigurovanou hodnotu klíče.
token = os.getenv('API_TOKEN')
Osvědčený postup: Použití funkcí Azure Databricks ke zpracování dat
Výpočetní prostředí Databricks Apps je navržené pro obsluhu uživatelského rozhraní. Aby vaše aplikace mohly efektivně podporovat více uživatelů, měli byste použít funkce Databricks k provedení čehokoli jiného než jednoduchého zpracování dat. Můžete například použít Databricks SQL pro zpracování dotazů a ukládání datových sad, úloh Databricks pro zpracování dat nebo model, který slouží k dotazování modelů AI.
Osvědčené postupy: Dodržování osvědčených postupů pro zabezpečené kódování
Databricks doporučuje při vývoji aplikací postupovat podle zabezpečených postupů kódování, včetně parametrizace dotazů, aby se zabránilo útokům prostřednictvím injektáže SQL. Podívejte se na rozhraní API pro spouštění příkazů.
Důležité pokyny pro implementaci aplikací Databricks
- Databricks Apps posílají
SIGKILL
signál 15 sekund po ,SIGTERM
takže aplikace by měly elegantně vypnout maximálně 15 sekund po přijetí signáluSIGTERM
. Pokud se aplikace po 15 sekundách neodejde,SIGKILL
odešle se signál pro ukončení procesu a všech podřízených procesů. - Vzhledem k tomu, že aplikace Databricks běží jako neprivilegovaný uživatel systému, nemůžou provádět operace, které vyžadují spuštění v privilegovaném kontextu zabezpečení, například operace vyžadující oprávnění uživatele root.
- Požadavky se předávají z reverzního proxy serveru, takže aplikace nesmí záviset na původu požadavků. Prostředí Databricks Apps nastaví požadované konfigurační parametry pro podporované architektury.
- Vzhledem k tomu, že architektura aplikace Databricks spravuje připojení TLS (Transport Layer Security), nesmí vaše aplikace provádět žádné operace připojení TLS ani metody handshake.
- Vaše aplikace musí být implementované pro zpracování požadavků ve formátu cleartextu HTTP/2 (H2C).
- Aplikace Databricks musí hostovat servery HTTP a
0.0.0.0
používat číslo portu zadanéhoDATABRICKS_APP_PORT
v proměnné prostředí. Viz proměnné prostředí.