Megosztás a következőn keresztül:


Üzembehelyezési technológiák az Azure Functionsben

Az Azure Functions-projektkód azure-ban való üzembe helyezéséhez használhat néhány különböző technológiát. Ez a cikk áttekintést nyújt az Ön számára elérhető üzembehelyezési módszerekről, és javaslatokat tartalmaz a különböző forgatókönyvekben használható legjobb módszerre. Emellett az alapul szolgáló üzembehelyezési technológiák teljes listáját és főbb részleteit is tartalmazza.

Üzembe helyezési módszerek

A kód azure-beli függvényalkalmazásban való közzétételéhez használt üzembehelyezési technológia az Ön konkrét igényeitől és a fejlesztési ciklus pontjától függ. A fejlesztés és tesztelés során például közvetlenül a fejlesztői eszközről, például a Visual Studio Code-ból telepítheti az üzembe helyezést. Ha az alkalmazás éles környezetben van, nagyobb valószínűséggel teszi közzé folyamatosan a forráskövetésből vagy egy automatizált közzétételi folyamattal, amely magában foglalhatja az érvényesítést és a tesztelést is.

Az alábbi táblázat a kódprojekthez elérhető üzembehelyezési módszereket ismerteti.

Üzemelő példány típusa Metódusok A legjobb...
Eszközökre épülő Visual Studio Code közzététele
Visual Studio közzététel
A Core Tools közzététele
Üzembe helyezés a fejlesztés és egyéb improvizált üzemelő példányok során. A kód igény szerinti üzembe helyezése helyi fejlesztési eszközökkel.
App Service által felügyelt Központi telepítési központ (CI/CD)
Tárolótelepítések
Folyamatos üzembe helyezés (CI/CD) forrásvezérlőből vagy tárolóregisztrációs adatbázisból. Az üzembe helyezéseket az App Service platform (Kudu) felügyeli.
Külső folyamatok Azure Pipelines
GitHub Actions
Olyan éles folyamatok, amelyek magukban foglalják az ellenőrzést, a tesztelést és az automatizált üzembe helyezés részeként futtatandó egyéb műveleteket. Az üzembe helyezéseket a folyamat felügyeli.

Az egyes üzemelő példányoknak az adott forgatókönyv alapján a legjobb technológiát kell használniuk. Az üzembe helyezési módszerek közül sok a zip-alapú üzembe helyezésen alapul, ami az üzembe helyezéshez ajánlott.

Üzembehelyezési technológia rendelkezésre állása

Az üzembe helyezési módszer attól is függ, hogy melyik üzemeltetési tervet és operációs rendszert futtatja a függvényalkalmazás.
A Functions jelenleg három üzemeltetési csomagot kínál:

Minden tervnek különböző viselkedési módjai vannak. Nem minden üzembe helyezési technológia érhető el minden üzemeltetési tervhez és operációs rendszerhez. Ez a diagram a támogatott üzembehelyezési technológiákról nyújt tájékoztatást:

Üzembe helyezési technológia Windows-használat Windows Premium Dedikált Windows Linux-használat Linux Premium Dedikált Linux
Külső csomag URL-címe1
Zip-üzembe helyezés
Docker-tároló
Forrásvezérlő
Helyi Git1
FTPS1
Portálon belüli szerkesztés2

1 Az olyan üzembehelyezési technológiák, amelyek az eseményindítók manuális szinkronizálását igénylik , nem ajánlottak.
2 A portálon belüli szerkesztés le van tiltva, ha a kód a függvényalkalmazásban a portálon kívülről van üzembe helyezve. További információkért, beleértve a portálon belüli szerkesztés nyelvtámogatási adatait, tekintse meg a nyelvi támogatás részleteit.

Fő fogalmak

Néhány kulcsfontosságú fogalom kritikus fontosságú az Azure Functions üzembe helyezésének megértéséhez.

Eseményindító szinkronizálása

Az eseményindítók módosításakor a Functions-infrastruktúrának tisztában kell lennie a változásokkal. A szinkronizálás számos üzembe helyezési technológia esetében automatikusan megtörténik. Bizonyos esetekben azonban manuálisan kell szinkronizálnia az eseményindítókat.

Az alábbi üzembehelyezési beállítások használatakor manuálisan kell szinkronizálnia az eseményindítókat:

Az eseményindítókat háromféleképpen szinkronizálhatja:

  • Indítsa újra a függvényalkalmazást az Azure Portalon.
  • HTTP POST-kérés https://{functionappname}.azurewebsites.net/admin/host/synctriggers?code=<API_KEY> küldése a főkulcs használatára.
  • HTTP POST-kérés küldése ide https://management.azure.com/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.Web/sites/<FUNCTION_APP_NAME>/syncfunctiontriggers?api-version=2016-08-01: . Cserélje le a helyőrzőket az előfizetés azonosítójára, az erőforráscsoport nevére és a függvényalkalmazás nevére. Ehhez a kéréshez hozzáférési jogkivonatra van szükség a Authorization kérelem fejlécében.

Amikor telepíti az üzembehelyezési csomag frissített verzióját, és ugyanazt a külső csomag URL-címét tartja fenn, manuálisan újra kell indítania a függvényalkalmazást. Ez azt jelzi a gazdagépnek, hogy szinkronizálnia kell a frissítéseket, és újból üzembe kell helyeznie a frissítéseket ugyanabból a csomag URL-címéből. A Functions-gazdagép az alkalmazás elindítása után háttér eseményindító szinkronizálását is végrehajtja. A Consumption és Elastic Premium üzemeltetési csomagok esetében azonban manuálisan is szinkronizálnia kell az eseményindítókat az alábbi esetekben:

  • Külső csomag URL-címét használó üzembe helyezések ARM-sablonokkal vagy Terraformmal.
  • Amikor az üzembehelyezési csomagot ugyanazon a külső csomag URL-címén frissíti.

Távoli buildelés

Az Azure Functions automatikusan képes buildeket végezni a zip-alapú üzembe helyezés után kapott kódra. Ezek a buildek attól függően különböznek, hogy az alkalmazás Windowson vagy Linuxon fut-e.

A Windows rendszeren futó összes függvényalkalmazás rendelkezik egy kis felügyeleti alkalmazással, amely a scm Kudu által biztosított webhely. Ez a webhely kezeli az Azure Functions üzembe helyezési és buildlogikáinak nagy részét.

Amikor egy alkalmazást üzembe helyeznek a Windowsban, a rendszer nyelvspecifikus parancsokat futtat, például dotnet restore a (C#) vagy npm install a (JavaScript) parancsokat.

A távoli buildek üzembe helyezése során a következő szempontokat kell figyelembe venni:

  • A távoli buildek támogatottak a Használat csomagban Linuxon futó függvényalkalmazásokhoz. Az üzembe helyezési lehetőségek azonban korlátozottak ezekhez az alkalmazásokhoz, mert nem rendelkeznek scm (Kudu) webhelyekkel.
  • A Linuxon prémium csomagban vagy dedikált (App Service-) csomagban futó függvényalkalmazások rendelkeznek scm (Kudu) webhelyekkel, de a Windowshoz képest korlátozottak.
  • A távoli buildek nem végezhetők el, ha egy alkalmazás futtatási csomagot használ. Ha meg szeretné tudni, hogyan használhatja a távoli buildet ezekben az esetekben, tekintse meg a Zip üzembe helyezését.
  • Előfordulhat, hogy problémák merülnek fel a távoli buildeléssel kapcsolatban, amikor az alkalmazás a funkció elérhetővé tettése előtt jött létre (2019. augusztus 1.). Régebbi alkalmazások esetén hozzon létre egy új függvényalkalmazást, vagy futtassa az functionapp update --resource-group <RESOURCE_GROUP_NAME> --name <APP_NAME> a függvényalkalmazás frissítéséhez. Ez a parancs két próbálkozást is igénybe vehet a sikeres végrehajtáshoz.

Alkalmazástartalom-tároló

Számos üzembe helyezési módszer tárolja az üzembe helyezett vagy a beépített alkalmazás hasznos adatait a függvényalkalmazáshoz társított tárfiókban. A Functions konfigurálva próbálja használni az Azure Files-tartalommegosztást, de egyes metódusok inkább a kapcsolathoz társított Blob Storage-példányban tárolják a AzureWebJobsStorage hasznos adatokat. A következő szakaszban a Where app content is stored (Az alkalmazás tartalmának tárolása ) című szakaszban található részleteket tekinti meg.

Fontos

A tárfiók fontos alkalmazásadatok tárolására szolgál, néha magában az alkalmazáskódban is. Korlátoznia kell a hozzáférést más alkalmazásoktól és felhasználóktól a tárfiókhoz.

Üzembe helyezési technológia részletei

A következő üzembehelyezési módszerek érhetők el az Azure Functionsben.

Külső csomag URL-címe

Külső csomag URL-cím használatával hivatkozhat a függvényalkalmazást tartalmazó távoli csomagfájlra (.zip). A fájl letöltődik a megadott URL-címről, és az alkalmazás Futtatás csomagból módban fut.

Használat: Hozzáadás WEBSITE_RUN_FROM_PACKAGE az alkalmazásbeállításokhoz. Ennek a beállításnak egy URL-címnek (a futtatni kívánt csomagfájl helyének) kell lennie. A beállításokat a portálon vagy az Azure CLI használatával is hozzáadhatja.

Ha Azure Blob Storage-t használ, használjon egy közös hozzáférésű jogosultságkóddal (SAS) rendelkező privát tárolót, amely hozzáférést biztosít a Functions számára a csomaghoz. Az alkalmazás bármikor újraindul, lekéri a tartalom másolatát. A hivatkozásnak az alkalmazás teljes élettartama alatt érvényesnek kell lennie.

Mikor érdemes használni: A külső csomag URL-címe az egyetlen támogatott üzembehelyezési módszer a Használat csomagban Linuxon futó Azure Functions esetében, ha a felhasználó nem szeretné , hogy távoli build történjen. Amikor üzembe helyezi a függvényalkalmazás által hivatkozott csomagfájlt, manuálisan kell szinkronizálnia az eseményindítókat, beleértve a kezdeti üzembe helyezést is. Ha módosítja a csomagfájl tartalmát, és nem magát az URL-címet, újra kell indítania a függvényalkalmazást az eseményindítók szinkronizálásához.

Az alkalmazástartalom tárolási helye: Az alkalmazás tartalma a megadott URL-címen lesz tárolva. Ez lehet az Azure Blobsban, esetleg a kapcsolat által AzureWebJobsStorage megadott tárfiókban. Előfordulhat, hogy egyes ügyféleszközök alapértelmezés szerint egy blobban helyezik üzembe ezt a fiókot. Linux-használatú alkalmazások esetén például az Azure CLI egy blobban tárolt csomagon keresztül kísérli meg az üzembe helyezést AzureWebJobsStoragea megadott fiókban.

Zip-üzembe helyezés

A zip deploy használatával leküldhet egy .zip fájlt, amely tartalmazza a függvényalkalmazást az Azure-ba. Igény szerint beállíthatja, hogy az alkalmazás a csomagból induljon el, vagy megadhatja, hogy távoli build történjen.

Használat: Üzembe helyezés kedvenc ügyféleszközével: Visual Studio Code, Visual Studio vagy parancssorból az Azure Functions Core Tools használatával. Alapértelmezés szerint ezek az eszközök zip-alapú üzembe helyezést használnak, és a csomagból futnak. A Core Tools és a Visual Studio Code bővítmény egyaránt lehetővé teszi a távoli buildelést Linuxon való üzembe helyezéskor. Ha manuálisan szeretne üzembe helyezni egy .zip fájlt a függvényalkalmazásban , kövesse az Üzembe helyezés .zip fájlból vagy URL-címről című témakör utasításait.

Ha zip-alapú üzembe helyezéssel telepít, beállíthatja, hogy az alkalmazás a csomagból fusson. A csomagból való futtatáshoz állítsa az WEBSITE_RUN_FROM_PACKAGE alkalmazásbeállítás értékét a következőre 1: . Javasoljuk a zip-alapú üzembe helyezést. Gyorsabb betöltési időt biztosít az alkalmazások számára, és ez az alapértelmezett a VS Code, a Visual Studio és az Azure CLI esetében.

Mikor érdemes használni: A Zip deploy az Azure Functions ajánlott üzembehelyezési technológiája.

Az alkalmazástartalom tárolási helye: A zip-alapú üzembe helyezésből származó alkalmazástartalmak alapértelmezés szerint a fájlrendszerben vannak tárolva, amelyet az Azure Files a függvényalkalmazás létrehozásakor megadott tárfiókból biztosít. Linux-használat esetén az alkalmazás tartalma a kapcsolat által AzureWebJobsStorage megadott tárfiókban lévő blobon marad meg.

Docker-tároló

Linux-tárolóban futó függvényalkalmazást is üzembe helyezhet.

Használat: Hozza létre a függvényeket egy Linux-tárolóban , majd helyezze üzembe a tárolót egy Prémium vagy Dedikált csomagban az Azure Functionsben vagy egy másik tároló gazdagépen. Az Azure Functions Core Tools használatával létrehozhat egy testreszabott Docker-fájlt a projekthez, amelyet tárolóalapú függvényalkalmazás létrehozásához használ. A tárolót a következő üzemelő példányokban használhatja:

Mikor érdemes használni: Használja a Docker-tároló lehetőséget, ha nagyobb mértékben kell szabályoznia azt a Linux-környezetet, amelyben a függvényalkalmazás fut, és ahol a tároló üzemel. Ez az üzembe helyezési mechanizmus csak Linuxon futó függvényekhez érhető el.

Az alkalmazástartalom tárolása: Az alkalmazástartalmak a rendszerkép részeként a megadott tárolóregisztrációs adatbázisban vannak tárolva.

Verziókövetés

Engedélyezheti a függvényalkalmazás és a forráskódtár közötti folyamatos integrációt. Ha engedélyezve van a forrásvezérlés, a csatlakoztatott forrásadattár kódjának frissítése elindítja a legújabb kód üzembe helyezését az adattárból. További információkért tekintse meg az Azure Functions folyamatos üzembe helyezését.

A használat módja: A közzététel forrásvezérlésből történő beállításának legegyszerűbb módja a portál Functions területén található Üzembehelyezési központ. További információ: Folyamatos üzembe helyezés az Azure Functionsben.

Mikor érdemes használni: A forrásvezérlés használata az ajánlott eljárás azoknak a csapatoknak, amelyek együttműködnek a függvényalkalmazásaikban. A forrásvezérlés egy jó üzembehelyezési lehetőség, amely kifinomultabb üzembehelyezési folyamatokat tesz lehetővé. A forrásvezérlés általában engedélyezve van egy átmeneti ponton, amely az adattárból származó frissítések ellenőrzése után váltható fel éles környezetbe. További információ: Azure Functions üzembehelyezési pontok.

Az alkalmazástartalom tárolási helye: Az alkalmazás tartalma a forrásvezérlő rendszerben található, de a helyileg klónozott és beépített alkalmazástartalmak az alkalmazás fájlrendszerén vannak tárolva, amelyet az Azure Files a függvényalkalmazás létrehozásakor megadott tárfiókból készít.

Helyi Git

A helyi Git használatával leküldheti a kódot a helyi gépről az Azure Functionsbe a Git használatával.

Használat: Kövesse a Helyi Git-telepítés utasításait a Azure-alkalmazás szolgáltatáshoz.

Mikor érdemes használni: A hibák esélyének csökkentése érdekében kerülnie kell az olyan üzembehelyezési módszerek használatát, amelyek az eseményindítók manuális szinkronizálásának további lépését igénylik. Ha lehetséges, használjon zip-telepítést .

Az alkalmazástartalom tárolása: Az alkalmazástartalmak a fájlrendszerben vannak tárolva, amelyet az Azure Files a függvényalkalmazás létrehozásakor megadott tárfiókból lehet biztonsági másolatot létrehozni.

FTP/S

Ftp/S használatával közvetlenül átviheti a fájlokat az Azure Functionsbe, bár ez az üzembe helyezési módszer nem ajánlott. Ha nem ftp-t szeretne használni, tiltsa le. Ha az FTP használata mellett dönt, az FTPS-t kell kikényszerítenie. Az Azure Portalon az FTPS kényszerítése című témakörben talál további információt.

A használat menete: Kövesse az FTPS üzembehelyezési beállításaiban található utasításokat a függvényalkalmazásban FTPS használatával történő üzembe helyezéshez használható URL-cím és hitelesítő adatok lekéréséhez.

Mikor érdemes használni: A hibák esélyének csökkentése érdekében kerülnie kell az olyan üzembehelyezési módszerek használatát, amelyek az eseményindítók manuális szinkronizálásának további lépését igénylik. Ha lehetséges, használjon zip-telepítést .

Az alkalmazástartalom tárolása: Az alkalmazástartalmak a fájlrendszerben vannak tárolva, amelyet az Azure Files a függvényalkalmazás létrehozásakor megadott tárfiókból lehet biztonsági másolatot létrehozni.

Portálszerkesztés

A portálalapú szerkesztőben közvetlenül szerkesztheti a függvényalkalmazásban található fájlokat (lényegében minden alkalommal üzembe helyezheti őket, amikor menti a módosításokat).

Használat: Ahhoz, hogy szerkeszteni tudja a függvényeket az Azure Portalon, létre kell hoznia a függvényeket a portálon. Egyetlen igazságforrás megőrzése érdekében bármely más üzembe helyezési módszer használatával a függvény írásvédetté válik, és megakadályozza a portál folyamatos szerkesztését. Ha olyan állapotba szeretne visszatérni, amelyben szerkesztheti a fájlokat az Azure Portalon, manuálisan visszakapcsolhatja a szerkesztési módot Read/Write , és eltávolíthatja az üzembe helyezéssel kapcsolatos alkalmazásbeállításokat (például WEBSITE_RUN_FROM_PACKAGE).

Mikor érdemes használni: A portál jó módszer az Azure Functions használatának megkezdésére. A fejlettebb fejlesztési feladatokhoz az alábbi ügyféleszközök egyikét javasoljuk:

Az alkalmazástartalom tárolása: Az alkalmazástartalmak a fájlrendszerben vannak tárolva, amelyet az Azure Files a függvényalkalmazás létrehozásakor megadott tárfiókból lehet biztonsági másolatot létrehozni.

Az alábbi táblázat a portálon belüli szerkesztést támogató operációs rendszereket és nyelveket mutatja be:

Nyelv Windows-használat Windows Premium Dedikált Windows Linux-használat Linux Premium Dedikált Linux
C#1
Java
JavaScript (Node.js)
Python2
PowerShell
TypeScript (Node.js)

1 A portálon belüli szerkesztés csak a gazdagépen folyamatban futó C#-szkriptfájlok esetében támogatott. További információ: Azure Functions C# szkript (.csx) fejlesztői referencia.
2 A portálon belüli szerkesztés csak az 1-es verziós Python-programozási modell esetében támogatott.

Üzembe helyezési viselkedések

Amikor frissítéseket helyez üzembe a függvényalkalmazás kódjához, a függvények végrehajtása leáll. Az üzembe helyezés befejezése után a rendszer betölti az új kódot a kérelmek feldolgozásának megkezdéséhez. Tekintse át az Azure Functions teljesítményének és megbízhatóságának javítását, és ismerje meg, hogyan írhat állapot nélküli és védekező függvényeket.

Ha több vezérlésre van szüksége az átállás felett, üzembehelyezési pontokat kell használnia.

Üzembehelyezési pontok

Amikor üzembe helyezi a függvényalkalmazást az Azure-ban, a közvetlen éles környezet helyett egy külön üzembehelyezési ponton helyezheti üzembe. A folyamatos üzembe helyezés konfigurálásának ajánlott módja az üzembe helyezés üzembe helyezése, majd az ellenőrzés után az éles környezetbe való váltás.

A ponton való üzembe helyezés módja az adott üzembehelyezési eszköztől függ. Az Azure Functions Core Tools használatakor például megadhatja a--slot parancs egy adott pontjának func azure functionapp publish nevét.

Az üzembehelyezési pontokról további információt az Azure Functions üzembehelyezési pontok dokumentációjában talál.

Következő lépések

A függvényalkalmazások üzembe helyezésével kapcsolatos további információkért olvassa el ezeket a cikkeket: