Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az Azure Functions három buildelési lehetőséget támogat a Python-alkalmazások Azure-ban való közzétételéhez. Válassza ki a buildelési módszert a helyi környezet, az alkalmazásfüggőségek és a futtatókörnyezet követelményei alapján.
Gyors összehasonlítás a build műveletekhez
| Üzembe helyezés típusa | Ahol a függőségek telepítve vannak | Tipikus használati eset |
|---|---|---|
| Távoli buildelés (ajánlott) | Azure (App Service) | Alapértelmezett, a legtöbb felhasználó számára ajánlott |
| Helyi build | Az Ön gépe | Linux/macOS fejlesztők, korlátozott Windows-esetek |
| Egyéni függőségek | Extra index URL-cím használatával vagy helyi telepítéssel kezelhető | PyPI-n kívüli függőségek |
Üzembehelyezési csomagokkal kapcsolatos szempontok
A Python-függvényalkalmazás Azure-ban való üzembe helyezésekor tartsa szem előtt az alábbi csomagolási követelményeket:
- A csomag tartalma, nem a mappa: Helyezze üzembe a projektmappa tartalmát, ne magát a mappát.
-
Gyökérszintű
host.json: Győződjön meg arról, hogy egyetlenhost.jsonfájl található az üzembehelyezési csomag gyökerénél, nem almappába ágyazva. -
Fejlesztői fájlok kizárása: Kizárhatja az olyan mappákat, mint például
tests/a ,.github/és.venv*/az üzembe helyezett csomagból, ha beleveti őket a fájlba.funcignore. - A buildkörnyezetnek meg kell egyeznie az éles környezettel: A függőségeket egy ubuntu gépre kell építeni az éles alkalmazással megegyező Python-verzióval. A távoli build automatikusan kezeli ezt a forgatókönyvet.
-
A függőségeket a következő helyre
./.python_packages/lib/site-packageskell telepíteni: A távoli build a megfelelő könyvtárbanrequirements.txtfelsorolt összes függőséget telepíti. -
Tartsa szem előtt az üzembehelyezési csomag méretét: a nagy függőségi csoportok növelik a buildelési időt, a hideg kezdés késését, valamint a modulok importálási és inicializálási idejét. A nagy tudományos vagy gépi tanulási kódtárakkal (beleértve
pytorch) rendelkező alkalmazásokat különösen érintik. - A távoli build 60 másodperces időtúllépéssel rendelkezik: Ha a függőség telepítése meghaladja a korlátot, a build meghiúsul. Ebben az esetben fontolja meg egy helyi build használatát és üzembe helyezését előre összeállított függőségekkel.
-
A modulimportálás 2 perces időkorláttal rendelkezik: a Python-modulok betöltése és a függvényindexelés indításkor 2 perces korlátot biztosít a Python 3.13-ra és újabb verziókra, illetve a régebbi, engedélyezett Python-verziókra
PYTHON_ENABLE_INIT_INDEXING. Ha az alkalmazás túllépi ezt, csökkentse a felső szintű importálást, vagy használjon lusta importálást (a függvény törzsében lévő modulokat importálja a globális hatókör helyett).
Távoli buildelés
A Távoli buildelés a Python-alkalmazás csak kóddal történő üzembe helyezésének ajánlott módszere a Functionsben.
Távoli buildelés esetén a Functions platform kezeli a csomagtelepítést, és biztosítja a távoli futtatókörnyezettel való kompatibilitást. A távoli build használata kisebb üzembehelyezési csomagot is eredményez.
A Python-alkalmazás közzétételekor a következő eszközökkel használhatja a távoli buildelést:
-
Azure Functions Core Tools: a
func azure functionapp publishparancs alapértelmezés szerint távoli buildet kér Python-alkalmazások közzétételekor. -
AZ CLI:
az functionapp deployment source config-zipa Python-alkalmazások üzembe helyezésekor alapértelmezés szerint távoli buildet használ. - Visual Studio Code: az Azure Functions: Deploy to Azure... parancs mindig távoli buildet használ.
-
Folyamatos teljesítés a GitHub Actions használatával: az Azure/functions-action@v1 művelet távoli buildet használ, amikor a
remote-buildparaméter a Flex fogyasztási tervhez van beállítva, vagy amikorscm-do-build-during-deploymentésenable-oryx-builda dedikált csomagokhoz van beállítvatrue.
Ha engedélyezni szeretné a távoli buildelést más forgatókönyvekhez, például az Azure Pipelines folyamatos kézbesítéséhez, tekintse meg a távoli build engedélyezését.
A távoli build az egyéni csomagindexeket is támogatja, ha az PIP_EXTRA_INDEX_URL alkalmazásbeállítást használja. További információ: Távoli build.
Fontos
A távoli build a listában felsorolt összes függőséget requirements.txttelepíti. Annak érdekében, hogy az összes szükséges csomag telepítve legyen, mindenképpen vegye fel ezeket a függőségeket a requirements.txt fájlba.
Helyi build
Ha nem kér távoli buildet, a függőségek ehelyett a számítógépre lesznek telepítve. A rendszer ezután helyileg csomagolja be a teljes helyi projektet és függőségeket, és üzembe helyezi a függvényalkalmazásban. A helyi buildelés nagyobb csomagfeltöltést eredményez.
A függőségeket a megfelelő könyvtárba is telepítenie kell. A szükséges függőségek helyi .python_packages/lib/site-packages mappába való telepítéséhez a pip install --target="./.python_packages/lib/site-packages"-t használja.
Ha például a függőségek egy requirements.txt fájlban vannak felsorolva, futtassa ezt a parancsot:
pip install --target="./.python_packages/lib/site-packages" -r requirements.txt
Helyi build használata a következő esetekben:
- Helyi fejlesztés linuxos vagy macOS rendszeren.
- A távoli build nem érhető el vagy korlátozott.
- Szeretné a függőségeket egy másik fájlban definiálni, mint például
pyproject.tomlarequirements.txthelyett.
A következő eszközök konfigurálhatók helyi build használatára:
-
Azure Functions Core Tools: használja
func azure functionapp publisha--no-buildjelölővel. -
AZ CLI:
az functionapp deployment source config-zipa--build-remote=falsezászlóval. -
Folyamatos teljesítés a GitHub Actions használatával: állítsa be a
remote-buildparamétertfalsea Flex Consumption csomaghoz, vagy állítsa be ascm-do-build-during-deploymentés aenable-oryx-buildparamétereketfalsea dedikált csomagokhoz.
Fontos
A Python-alkalmazások Windows rendszerű számítógépen történő fejlesztésekor ne használjon helyi buildet. A Windows rendszerű számítógépekre épülő csomagok gyakran problémákat tapasztalnak a Linuxon az Azure Functionsben való üzembe helyezéssel és futtatásukkal kapcsolatban. Csak akkor használjon helyi buildet, ha biztos abban, hogy a csomag Linux-alapú rendszereken fut.
Egyéni függőségek
Az Azure Functions támogatja az egyéni és egyéb nem PyPI-függőségeket az PIP_EXTRA_INDEX_URL alkalmazásbeállítás használatával, vagy egy helyi build linuxos vagy macOS rendszerű számítógépen történő létrehozásával.
Távoli build plusz index URL-címmel
Amikor a privát csomagok online elérhetők, a PIP_EXTRA_INDEX_URL alkalmazásbeállítással távoli összeállítást kérhet, miután beállította a privát csomag helyét.
Amikor beállítja PIP_EXTRA_INDEX_URL, a távoli buildek ezt a csomagcsatornát használják az üzembe helyezés során.
PIP_INDEX_URL lecseréli a csomagindexet, ezért a nem várt viselkedés megelőzése érdekében fontolja meg a PIP_EXTRA_INDEX_URL használatát helyette.
Helyi csomagok vagy kerekek
Az Azure-függvényalkalmazások létrehozásakor a helyi csomagok és a wheel csomagok támogatottak Pythonban.
Ha távoli buildel szeretné telepíteni ezeket a csomagokat vagy kerekeket, felveheti a függőségeket a requirements.txt fájlba, és üzembe helyezheti a távoli buildet engedélyezve.
A fájl például requirements.txt a következő kódrészlethez hasonlóan nézhet ki:
# Installing a custom wheel
<my_package_wheel>.whl
# Installing a local package
path/to/my/package
Ha helyi build használatával szeretné telepíteni ezeket a függőségeket, telepítse a függőségeket a helyi .python_packages/lib/site-packages mappába, és telepítse a távoli build letiltva használatával.
Ha például a requirements.txt fájlban definiált csomagokkal dolgozik, a következő parancsokkal és a Core Tools eszközökkel telepítheti és közzéteheti azokat.
pip install --target="./.python_packages/lib/site-packages" -r requirements.txt
func azure functionapp publish <APP_NAME> --no-build