Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Databricks-alkalmazások tartalmazhatnak Python függőségeket, Node.js függőségeket vagy mindkettőt. A függőségeket olyan nyelvspecifikus fájlokban deklarálja, amelyeket az Azure Databricks az alkalmazás üzembe helyezésekor telepít:
- Használjon egy
requirements.txtfájlt a Python csomagokkal telepített csomagokhozpip. Lásd: Python-függőségek definiálása a következővelpip: . - Használjon egy
pyproject.tomlfájlt a Python csomagokkal telepített csomagokhozuv. Lásd: Python-függőségek definiálása a következőveluv: . - Használjon
package.jsonfájlt a(z) vagynpmhasználatával telepítettpnpm-csomagokhoz. Lásd: Node.js függőségek definiálása.
Python-függőségek definiálása a pip
A használt pip alkalmazások előre telepített Python-kódtárak készletével járnak. További Python-kódtárak definiálásához használjon egy requirements.txt fájlt. Ha a felsorolt csomagok megegyeznek az előre telepített csomagokkal, a fájlban lévő verziók felülírják az alapértelmezett értékeket.
A standard alkalmazásokból konvertált horizontálisan skálázott alkalmazások (bétaverzió) kikapcsolhatják az előre telepített kódtárakat, és ehelyett tiszta alap operációsrendszer-lemezképen futtathatók. Lásd: Az előre telepített Python-kódtárak letiltása Databricks-alkalmazásokhoz.
Például:
# 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
Előre telepített Python-kódtárak
pipA -alapú alkalmazások az alábbi előre telepített Python kódtárakat tartalmazzák. Nem kell hozzáadnia őket a(z) requirements.txt-hoz, hacsak nincs szüksége eltérő verzióra.
| Könyvtár | Verzió |
|---|---|
| databricks-sql-csatlakozó | 3.4.0 |
| databricks-SDK | 0.33.0 |
| mlflow-skinny | 2.16.2 |
| gradio | 4.44.0 |
| streamlit | 1.38.0 |
| Fényes | 1.1.0 |
| gondolatjel | 2.18.1 |
| lombik | 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 |
| ábrázolás | 5.24.1 |
| plotly-resampler | 0.10.0 |
Python-függőségek definiálása a uv
Ha az alkalmazás függőségkezelésre használja uv , a Python-függőségeket a fájlban pyproject.toml kell definiálni ahelyett, hogy requirements.txt.
uv-alapú alkalmazások nem tartalmaznak előre telepített könyvtárakat, ezért az összes függőséget meg kell adnia a pyproject.toml fájlban. A requires-python mező használatával bármely Python-verziót megadhat, ellentétben a pip-alapú alkalmazásokkal, amelyek Python 3.11-et használnak.
Ugyanez vonatkozik azokra a horizontálisan skálázott alkalmazásokra is, amelyek lemondták az előre telepített kódtárak használatát. Lásd: Az előre telepített Python-kódtárak letiltása Databricks-alkalmazásokhoz.
Az üzembe helyezés során a Databricks Apps a jelen lévő fájlok alapján választ egy telepítési stratégiát.
- Ha
requirements.txtlétezik, az alkalmazáspipfüggőségeket telepít, függetlenül attól, hogy létezik-epyproject.tomlis.requirements.txtmindig elsőbbséget élvez. - Ha
requirements.txtnem létezik, és mindpyproject.toml, minduv.locklétezik, az alkalmazás auvsegítségével telepíti a függőségeket a zárolási fájlból.
A uv telepítő létrehozza és kezeli a saját virtuális környezetét, így önnek nem kell .venv könyvtárat létrehoznia.
Az alábbi példa egy Databricks-alkalmazás minimális pyproject.toml beállítását mutatja be:
[project]
name = "my-app"
requires-python = ">=3.11"
dependencies = [
"dash==2.10.0",
"requests==2.31.0",
]
A uv használatához egy uv.lock fájlt is mellékelnie kell a pyproject.toml mellé. Hozza létre helyi futtatással uv lock , és vegye fel az alkalmazás könyvtárába.
Node.js függőségek definiálása
Node.js kódtárak definiálásához adjon meg egy package.json fájlt az alkalmazás gyökerében. Az Azure Databricks mind a npm, mind a pnpm elemet támogatja, és a megadott zárolási fájl alapján választja ki a csomagkezelőt:
- Ha
pnpm-lock.yamljelen van, az alkalmazás a következőt használjapnpm: . Lásd: Használatpnpm. - Ellenkező esetben az alkalmazás a következőt használja
npm: . - Ha mindkettő
pnpm-lock.yamlpackage-lock.jsonjelen van,pnpmelsőbbséget élvez.
Egy Vite-et használó React-alkalmazás fájlja például package.json így nézhet ki:
{
"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"
}
}
Megjegyzés:
Sorolja fel a buildlépéshez szükséges összes csomagot a(z) dependencies alatt, ne a(z) devDependencies alatt. Ha beállítja a NODE_ENV=production környezeti változók között, az üzembe helyezési folyamat kihagyja a devDependencies telepítését.
Használja pnpm
Az pnpm-val való buildeléshez helyezzen el egy pnpm-lock.yaml fájlt a package.json mellé. Hozza létre helyi futtatással pnpm install , és vegye fel az alkalmazás könyvtárába. Az Azure Databricks pnpm a Corepackon keresztül biztosítja.
Vegye figyelembe az alkalmazásokra vonatkozó pnpm alábbi követelményeket:
- A függőségek a(z)
pnpm install --frozen-lockfilesegítségével települnek, ezért a(z)pnpm-lock.yamlelemnek szinkronban kell maradnia a(z)package.jsonelemmel. Ha eltérés van, a buildfolyamat meghiúsul ahelyett, hogy frissítené a zárolási fájlt. A függőségek módosítása után apnpm installparanccsal generálja újra a lockfájlt. - Meg kell adnia a start parancsot a következőben
app.yaml: . Anpmalkalmazásokkal ellentétben apnpmalkalmazások nem állnak vissza az alapértelmezettstartszkriptre. Lásd: A Databricks-alkalmazás végrehajtásának konfigurálása a következővelapp.yaml: .
A(z) pnpm munkaterület-projektek esetében (ahol van egy pnpm-workspace.yaml fájl), egyes app.yaml parancsok rekurzívan futnak le pnpm. Például egy build- vagy indítási lépés lefuttathatja a pnpm -r run build elemet. Ezeknek a parancsoknak a corepack pnpm helyett a pnpm elemet kell meghívniuk, hogy a beágyazott parancsok helyesen oldódjanak fel.
Verzióütközések elkerülése
A verzióütközések elkerülése érdekében kövesse az alábbi irányelveket:
- A
pip-alapú alkalmazások esetében az előre telepített csomagok felülírása kompatibilitási problémákat okozhat, ha a megadott verzió jelentősen eltér az előre telepítetttől. - Mindig tesztelje az alkalmazást annak ellenőrzéséhez, hogy a csomagverzió módosításai nem okoznak-e hibákat.
- Az explicit verziók
requirements.txtrögzítése segít fenntartani a konzisztens alkalmazás viselkedést az üzembe helyezések során. - Ha
uv-t használja, adjon hozzá egyuv.lockfájlt a teljes mértékben reprodukálható telepítések érdekében különböző telepítések során.
Függőségek telepítése és kezelése
Az Azure Databricks közvetlenül az Ön dedikált számítási erőforrásán futó tárolóra telepíti a(z) requirements.txt, pyproject.toml és package.json elemben meghatározott kódtárakat. A függőségek kezeléséért és javításáért Ön a felelős.
A függőségi fájlokban több forrásból is megadhat kódtárakat:
- Nyilvános adattárakból letöltött kódtárak, például a PyPI és az npm
- Privát adattárak, amelyek az Azure Databricks titkos kulcsaiban tárolt hitelesítő adatokkal hitelesítik magukat
- Az
/Volumes/könyvtárában tárolt könyvtárak (például/Volumes/<catalog>/<schema>/<volume>/<path>)
Telepítés privát adattárakból
Ha privát adattárból szeretne csomagokat telepíteni, konfiguráljon környezeti változókat a hitelesítéshez. Állítsa be például úgy, PIP_INDEX_URL hogy a privát adattárra mutasson:
env:
- name: PIP_INDEX_URL
valueFrom: my-pypi-secret
A munkaterület hálózati konfigurációjának lehetővé kell tennie a privát adattár elérését. Lásd: A Databricks Apps hálózatkezelésének konfigurálása.
Munkaterületszintű alapértelmezett csomagtárházak használata
Important
Ez a funkció bétaverzióban érhető el. A használatához a munkaterület rendszergazdájának be kell kapcsolnia a Databricks-alkalmazások munkaterület-adattár-konfigurációjának engedélyezését az Előnézetek lapon. Lásd: Az Azure Databricks előzetes verziójának kezelése.
Ha a munkaterület rendszergazdája alapértelmezett csomagtárakat konfigurál a munkaterülethez, a munkaterületen lévő alkalmazások a nyilvános PyPI- és npm-adatbázisok helyett Python és Node.js csomagokat telepítenek a munkaterületen konfigurált adattárakból. Ez lehetővé teszi, hogy az alkalmazásfejlesztők automatikusan örököljék a vállalati csomagtárház beállításait anélkül, hogy az egyes alkalmazásokban duplikálják a konfigurációt, miközben továbbra is lehetővé teszik az alkalmazásonkénti felülbírálásokat.
A munkaterületszintű beállítások konfigurálásához tekintse meg az alapértelmezett csomagtárházak konfigurálását.
Python csomagok
A build csomagtelepítési fázisában a Databricks Apps a következő környezeti változók munkaterület-beállításait örökli:
PIP_INDEX_URLPIP_EXTRA_INDEX_URLPIP_CERTUV_INDEX_URLUV_EXTRA_INDEX_URLSSL_CERT_FILE
Az alkalmazásspecifikus konfiguráció elsőbbséget élvez a munkaterület alapértelmezett beállításaival szemben. Ha az előző környezeti változók bármelyikét (kivéve az alább felsorolt tanúsítványbeállításokat) állítja be az alkalmazás fájljában app.yaml , a benne lévő app.yaml értékek felülírják az alkalmazás munkaterület-beállításait.
Megjegyzés:
A PIP_CERT és a SSL_CERT_FILE tanúsítványbeállításai mindig a munkaterületen beállított értékeket használják, és a(z) app.yaml helyen nem írhatók felül.
Warning
Teszteljék az alkalmazásaikat, miután a munkaterület rendszergazdája bekapcsolta az előnézetet, és állítsák be a PIP_INDEX_URL elemet a(z) app.yaml helyen, ha továbbra is egy másik indexből kell telepíteniük.
Node.js csomagok
Amikor a munkaterület rendszergazdája beállít egy alapértelmezett npm-beállításjegyzéket, a Databricks Apps az üzembe helyezés során az alkalmazás fájljába írja a munkaterület beállításjegyzékének konfigurációját .npmrc . Ez lehetővé teszi, hogy az alkalmazások Node.js csomagokat, köztük privát csomagokat telepítsenek a munkaterületen konfigurált beállításjegyzékből anélkül, hogy minden alkalmazás saját regisztrációs URL-címet vagy hitelesítési jogkivonatot tárol.
Ha egy adott alkalmazáshoz másik beállításjegyzéket szeretne használni, állítsa be az NPMRC alkalmazás fájljában app.yaml lévő környezeti változót úgy, hogy a saját npm-konfigurációjára hivatkozzon. Az alkalmazásspecifikus konfiguráció elsőbbséget élvez a munkaterület alapértelmezett beállításaival szemben.
Kerékfájlok telepítése Unity Catalog-kötetekből
Python-csomagok telepítése a Unity Catalog köteteiben tárolt wheel fájlokból:
- Adja hozzá erőforrásként a Unity-katalógus kötetét az alkalmazáshoz. Lásd a Unity Catalog volume-ot.
- Hivatkozzon a teljes wheel-fájl elérési útjára:
Telepítés ezzel:
pipAdja hozzá az útvonalat közvetlenül a
requirements.txt:/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whlTelepítés ezzel:
uvHozz létre egy
uv-requirements.txtfájlt, amely tartalmazza az útvonalat, és tedd fel az alkalmazáskönyvtáradba:/Volumes/<catalog>/<schema>/<volume>/my_package-1.0.0-py3-none-any.whl
Megjegyzés:
A környezeti változókra való hivatkozások nem támogatottak az uv-requirements.txt vagy a requirements.txt elemben. A wheel-fájl teljes elérési útját fixen meg kell adnia a kódban.
A külső csomagtárházakhoz való hozzáférés biztonságának növelése érdekében a kiszolgáló nélküli kimenő forgalom vezérlőivel korlátozhatja a nyilvános adattárakhoz való hozzáférést, és konfigurálhatja a privát hálózatkezelést. Lásd: A Databricks Apps hálózatkezelésének konfigurálása.