Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Aplikace Databricks může obsahovat Python závislosti, Node.js závislosti nebo obojí. Deklarujete závislosti v souborech specifických pro jazyk, které Azure Databricks nainstalují při nasazení aplikace:
- Použijte soubor
requirements.txtpro balíčky Pythonu nainstalované pomocípip. Viz Definice závislostí Pythonu pomocípip. - Použijte
pyproject.tomlsoubor pro balíčky Pythonu nainstalované pomocíuv. Viz Definice závislostí Pythonu pomocíuv. - Použijte soubor
package.jsonpro balíčky Node.js nainstalované pomocínpmnebopnpm. Viz Definice Node.js závislostí.
Definování závislostí Pythonu pomocí pip
Aplikace, které používají pip , mají sadu předinstalovaných knihoven Pythonu. Pro definování dalších knihoven Pythonu použijte soubor requirements.txt. Pokud některé uvedené balíčky odpovídají předinstalovaným, verze ve vašem souboru nahradí výchozí.
Horizontálně škálované aplikace (beta verze) převedené ze standardních aplikací se můžou odhlásit z předinstalovaných knihoven a místo toho spouštět na čisté základní imagi operačního systému. Viz Odhlášení předinstalovaných knihoven Pythonu pro aplikace Databricks.
Například:
# Override default version of dash
dash==2.10.0
# Add additional libraries not pre-installed
requests==2.31.0
numpy==1.24.3
# Specify a compatible version range
scikit-learn>=1.2.0,<1.3.0
Předinstalované knihovny Pythonu
pipAplikace založené na nich zahrnují následující předinstalované knihovny Python. Pokud nepotřebujete jinou verzi, nemusíte je do svého requirements.txt přidávat.
| Knihovna | Verze |
|---|---|
| Databricks SQL Connector | 3.4.0 |
| Databricks SDK | 0.33.0 |
| mlflow-skinny | 2.16.2 |
| gradio | 4.44.0 |
| Streamlit | 1.38.0 |
| lesklý | 1.1.0 |
| pomlčka | 2.18.1 |
| baňka | 3.0.3 |
| fastapi | 0.115.0 |
| uvicorn[standard] | 0.30.6 |
| gunicorn | 23.0.0 |
| huggingface-hub | 0.35.3 |
| dash-ag-grid | 31.2.0 |
| dash-mantine-components | 0.14.4 |
| dash-bootstrap-components | 1.6.0 |
| plotly | 5.24.1 |
| převzorkování plotly | 0.10.0 |
Definování závislostí Pythonu pomocí uv
Pokud vaše aplikace používá uv ke správě závislostí, definujte závislosti Pythonu pyproject.toml v souboru místo requirements.txt. Aplikace založené na uv neobsahují předinstalované knihovny, takže musíte deklarovat všechny závislosti v souboru pyproject.toml. Pomocí pole můžete také zadat libovolnou Python verzirequires-python, na rozdíl od pipaplikací založených na aplikacích, které používají Python 3.11.
Totéž platí pro horizontálně škálované aplikace, které se odhlásily z předinstalovaných knihoven. Viz Odhlášení předinstalovaných knihoven Pythonu pro aplikace Databricks.
Během nasazování aplikace Databricks vybere strategii instalace na základě toho, které soubory jsou k dispozici:
- Pokud
requirements.txtexistuje, aplikace používápipk instalaci závislostí bez ohledu na to, jestlipyproject.tomlje k dispozici.requirements.txtvždy má přednost. - Pokud
requirements.txtneexistuje a pokud existují jakpyproject.tomltakuv.lock, aplikace používáuvk instalaci závislostí ze souboru uzamčení.
Instalační uv program vytvoří a spravuje vlastní virtuální prostředí, takže nemusíte vytvářet .venv adresář.
Následující příklad ukazuje minimální pyproject.toml pro aplikaci Databricks:
[project]
name = "my-app"
requires-python = ">=3.11"
dependencies = [
"dash==2.10.0",
"requests==2.31.0",
]
Chcete-li použít uv, musíte zahrnout uv.lock soubor spolu s vaším pyproject.toml. Vygenerujte ho spuštěním uv lock místně a zahrňte ho do adresáře aplikace.
Definování závislostí Node.js
Pokud chcete definovat Node.js knihovny, zahrňte package.json soubor do kořenového adresáře aplikace. Azure Databricks podporuje jak, npm tak i pnpma vybere správce balíčků na základě souboru zámku, který zahrnete:
- Pokud
pnpm-lock.yamlje k dispozici, aplikace používápnpm. Viz Použitípnpm. - V opačném případě aplikace používá
npm. - Pokud jsou obě
pnpm-lock.yamlapackage-lock.jsonjsou přítomny,pnpmmá přednost.
Například package.json soubor aplikace React používající Vite může vypadat takto:
{
"name": "react-fastapi-app",
"version": "1.0.0",
"private": true,
"type": "module",
"scripts": {
"build": "npm run build:frontend",
"build:frontend": "vite build frontend"
},
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0",
"typescript": "^5.0.0",
"vite": "^5.0.0",
"@vitejs/plugin-react": "^4.2.0",
"@types/react": "^18.2.0",
"@types/react-dom": "^18.2.0"
}
}
Poznámka:
Uveďte všechny balíčky požadované pro krok sestavení v části dependencies, nikoli devDependencies. Pokud nastavíte NODE_ENV=production v proměnných prostředí, proces nasazení přeskočí instalaci devDependencies.
Použít pnpm
Chcete-li sestavit pomocí pnpm, přidejte soubor pnpm-lock.yaml vedle package.json. Vygenerujte ho spuštěním pnpm install místně a zahrňte ho do adresáře aplikace. Azure Databricks poskytuje pnpm prostřednictvím corepacku.
Všimněte si následujících požadavků pro pnpm aplikace:
- Závislosti se instalují s
pnpm install --frozen-lockfile, takžepnpm-lock.yamlmusí zůstat synchronizovaný spackage.json. Pokud se rozcházejí, sestavení selže namísto aktualizace souboru lock. Po změně závislostí znovu vygenerujte uzamykací soubor pomocípnpm install. - Musíte zadat příkaz pro spuštění v
app.yaml. Na rozdíl od aplikacínpmaplikacepnpmnepoužívají jako záložní výchozí skriptstart. Viz Konfigurace spuštění aplikace Databricks pomocíapp.yaml.
U projektů v pracovním prostoru pnpm (kde je přítomen soubor pnpm-workspace.yaml) se některé příkazy app.yaml spouštějí pnpm rekurzivně. Například se může spustit pnpm -r run buildkrok sestavení nebo spuštění. Tyto příkazy musí volat corepack pnpm místo pnpm, aby se vnořené příkazy správně vyhodnotily.
Vyhněte se konfliktům verzí
Pokud se chcete vyhnout konfliktům verzí, postupujte podle těchto pokynů:
- U
pipaplikací založených na předinstalovaných aplikacích může přepsání předinstalovaných balíčků způsobit problémy s kompatibilitou, pokud se zadaná verze výrazně liší od předinstalované verze. - Vždy otestujte aplikaci, abyste ověřili, že změny verze balíčku nezavádějí chyby.
- Připnutí explicitních verzí
requirements.txtpomáhá udržovat konzistentní chování aplikace napříč nasazeními. - Při použití
uvzahrňteuv.locksoubor pro plně reprodukovatelné instalace napříč nasazeními.
Instalace a správa závislostí
Azure Databricks nainstaluje knihovny definované v requirements.txt, pyproject.toml a package.json přímo do kontejneru spuštěného ve vašem vyhrazeném výpočetním prostředí. Zodpovídáte za správu a opravy těchto závislostí.
V souborech závislostí můžete zadat knihovny z více zdrojů:
- Knihovny stažené z veřejných úložišť, jako je PyPI a npm
- Privátní úložiště, která se ověřují pomocí přihlašovacích údajů uložených v tajných klíčích Azure Databricks
- Knihovny uložené v
/Volumes/adresáři (například/Volumes/<catalog>/<schema>/<volume>/<path>)
Instalace z privátních úložišť
Pokud chcete instalovat balíčky z privátního úložiště, nakonfigurujte proměnné prostředí pro ověřování. Například nastavte PIP_INDEX_URL odkaz na privátní úložiště:
env:
- name: PIP_INDEX_URL
valueFrom: my-pypi-secret
Konfigurace sítě pracovního prostoru musí umožňovat přístup k privátnímu úložišti. Viz Konfigurace sítí pro Databricks Apps.
Instalace souborů kol ze svazků katalogu Unity
Instalace balíčků Pythonu ze souborů ve formátu Wheel uložených ve svazcích Unity Katalogu:
- Přidejte do aplikace katalog Unity svazek jako zdroj. Viz svazek katalogu Unity.
- Odkazujte přímo na plnou cestu k wheel souboru ve vašem
requirements.txt:
/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whl
Poznámka:
Odkazy na proměnné prostředí nejsou podporovány v requirements.txt. Musíte natvrdo zadat úplnou cestu k souboru wheel.
Pokud chcete zvýšit zabezpečení při přístupu k externím úložištím balíčků, použijte ovládací prvky výchozího přenosu dat bez serveru, abyste omezili přístup k veřejným úložištím a nakonfigurovali privátní sítě. Viz Konfigurace sítí pro Databricks Apps.