Üzembehelyezési technológiák Azure Functions

Néhány különböző technológiával üzembe helyezheti a Azure Functions projektkódot az Azure-ban. 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 legjobban használható módszerekre vonatkozóan. Emellett a mögöttes üzembehelyezési technológiák teljes listáját és főbb részleteit is tartalmazza.

Üzembehelyezési módszerek

A kód Azure-ban való közzétételéhez használt üzembehelyezési technológiát általában az határozza meg, hogy milyen módon teszi közzé az alkalmazást. A megfelelő üzembe helyezési módszert meghatározott igények és a fejlesztési ciklus pontja határozza meg. 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. Amikor 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 további ellenőrzést és tesztelést is tartalmaz.

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

Üzembe helyezés típusa Metódusok A legjobb...
Eszközökre épülő Visual Studio Code közzététel
Visual Studio-közzététel
Core Tools publish
Üzembe helyezések a fejlesztés során és egyéb alkalmi üzembe helyezések. Az üzembe helyezéseket az eszköz helyileg kezeli.
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 a App Service platform (Kudu) kezeli.
Külső folyamatok Azure Pipelines
GitHub Actions
Az olyan éles és DevOps-folyamatok, amelyek további ellenőrzési, tesztelési és egyéb műveleteket tartalmaznak, automatizált üzembe helyezés részeként futtathatók. Az üzembe helyezéseket a folyamat kezeli.

Míg az egyes Functions-üzemelő példányok a környezetük alapján a legjobb technológiát használják, a legtöbb üzembehelyezési módszer zip-alapú üzembe helyezésen alapul.

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

Azure Functions támogatja a platformfüggetlen helyi fejlesztést és üzemeltetést Windowson és Linuxon. Jelenleg három üzemeltetési csomag érhető el:

Minden terv eltérő viselkedésű. Nem minden üzembe helyezési technológia érhető el a Azure Functions minden egyes ízéhez. Az alábbi diagram azt mutatja be, hogy mely üzembehelyezési technológiák támogatottak az operációs rendszer és az üzemeltetési csomagok minden egyes kombinációjához:

Üzembehelyezé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ó
Web Deploy
Verziókövetés
Helyi Git1
Felhőszinkronizálás1
FTP1
Portálszerkesztés 2 2

1 Üzembe helyezési technológia, amely manuális triggerszinkronizálást igényel. 2 A portálszerkesztés csak a Linux-függvényekhez készült HTTP- és időzítő-triggerekhez engedélyezve van prémium és dedikált csomagokkal.

Fő fogalmak

Néhány kulcsfontosságú fogalom kritikus fontosságú az üzembe helyezés Azure Functions való működé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. Amikor külső csomag URL-címére, helyi Gitre, felhőszinkronizálásra vagy FTP-ra hivatkozva telepíti a frissítéseket, 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 a Azure Portal.
  • HTTP POST-kérés küldése a https://{functionappname}.azurewebsites.net/admin/host/synctriggers?code=<API_KEY>főkulcs használatához.
  • HTTP POST-kérés küldése a címre 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óra, az erőforráscsoport nevére és a függvényalkalmazás nevére.

Ha külső csomag URL-címével telepíti az üzembe helyezést, és a csomag tartalma megváltozik, de maga az URL nem változik, manuálisan kell újraindítania a függvényalkalmazást a frissítések teljes szinkronizálásához.

Távoli build

Azure Functions automatikusan végrehajthat buildeket a zip-környezetek telepítése után kapott kódon. Ezek a buildek kissé eltérően viselkednek attól függően, hogy az alkalmazás Windowson vagy Linuxon fut-e. A távoli buildek nem hajthatók végre, ha egy alkalmazás korábban futtatásra lett beállítva a Csomagból futtatás módban. Ha meg szeretné tudni, hogyan használhatja a távoli buildet, keresse meg a zip-üzembe helyezést.

Megjegyzés

Ha problémákat tapasztal a távoli buildeléssel kapcsolatban, annak az lehet az oka, hogy az alkalmazás a funkció elérhetővé tették (2019. augusztus 1.) előtt. Próbáljon meg létrehozni egy új függvényalkalmazást, vagy futtassa a parancsot az functionapp update -g <RESOURCE_GROUP_NAME> -n <APP_NAME> a függvényalkalmazás frissítéséhez. Ez a parancs két sikeres próbálkozást is igénybe vehet.

Távoli buildelés Windows rendszeren

A Windows rendszeren futó összes függvényalkalmazás rendelkezik egy kis felügyeleti alkalmazással, az SCM (vagy a Kudu) webhelytel. Ez a webhely kezeli a Azure Functions üzembe helyezési és buildelési logikájának nagy részét.

Ha egy alkalmazást windowsos környezetben helyez üzembe, a rendszer nyelvspecifikus parancsokat futtat, például dotnet restore (C#) vagy npm install (JavaScript).

Távoli buildElés Linux rendszeren

A távoli build linuxos engedélyezéséhez a következő alkalmazásbeállításokat kell megadni:

  • ENABLE_ORYX_BUILD=true
  • SCM_DO_BUILD_DURING_DEPLOYMENT=true

Alapértelmezés szerint a Azure Functions Core Tools és a Visual Studio Code Azure Functions bővítménye is távoli buildeket hajt végre a Linuxra való üzembe helyezéskor. Emiatt mindkét eszköz automatikusan létrehozza ezeket a beállításokat az Azure-ban.

Ha az alkalmazások távolról készülnek Linuxon, az üzembe helyezési csomagból futnak.

Használatalapú csomag

A Használat csomagban futó Linux-függvényalkalmazások nem rendelkeznek SCM-/Kudu-webhelyekkel, ami korlátozza az üzembe helyezési lehetőségeket. A Használat csomagban futó Linuxon futó függvényalkalmazások azonban támogatják a távoli buildeket.

Dedikált és Prémium csomagok

A Dedikált (App Service) csomagban Linuxon futó függvényalkalmazások és a Prémium csomag is korlátozott SCM-/Kudu-webhelyet biztosít.

Üzembe helyezési technológia részletei

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

Külső csomag URL-címe

Külső csomag URL-címével 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.

A használat menete: Adja hozzá WEBSITE_RUN_FROM_PACKAGE az alkalmazásbeállításokat. Ennek a beállításnak egy URL-címnek kell lennie (a futtatni kívánt csomagfájl helye). 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 privát tárolót közös hozzáférésű jogosultságkóddal (SAS) a Functions-hozzáférés biztosításához a csomaghoz. Amikor az alkalmazás ú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 üzembe helyezési módszer a Használat csomagban Linuxon futó Azure Functions esetén, ha a felhasználó nem szeretné, hogy távoli buildelés történjen. Amikor frissíti a függvényalkalmazás által hivatkozott csomagfájlt, manuálisan kell szinkronizálnia az eseményindítókat , hogy közölje az Azure-lal, hogy az alkalmazás megváltozott. Ha módosítja a csomagfájl tartalmát, és nem magát az URL-címet, manuálisan kell újraindítania a függvényalkalmazást.

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 buildelés történjen.

A használat menete: Üzembe helyezés kedvenc ügyféleszközével: Visual Studio Code, Visual Studio vagy parancssorból a 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 a 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.

A zip deploy használatával történő üzembe helyezéskor beállíthatja, hogy az alkalmazás 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 értékre 1. A zip-alapú üzembe helyezést javasoljuk. Gyorsabban betölti az alkalmazásokat, és ez az alapértelmezett a VS Code, a Visual Studio és az Azure CLI esetében.

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

Docker-tároló

Üzembe helyezhet egy linuxos tárolórendszerképet, amely tartalmazza a függvényalkalmazást.

A használat menete: Hozzon létre egy Linux-függvényalkalmazást a Prémium vagy a Dedikált csomagban, és adja meg, hogy melyik tárolórendszerképről kell futnia. Ezt két módon teheti meg:

  • Hozzon létre egy Linux-függvényalkalmazást egy Azure App Service csomagban a Azure Portal. A Közzététel beállításnál válassza a Docker-rendszerkép lehetőséget, majd konfigurálja a tárolót. Adja meg azt a helyet, ahol a rendszerképet üzemelteti.
  • Hozzon létre egy Linux-függvényalkalmazást egy App Service-csomagban az Azure CLI használatával. További információ: Függvény létrehozása Linuxon egyéni rendszerkép használatával.

Ha egyéni tárolóként szeretne üzembe helyezni egy Kubernetes-fürtön, a Azure Functions Core Toolsban használja a func kubernetes deploy parancsot.

Mikor érdemes használni: Akkor használja a Docker-tároló lehetőséget, ha nagyobb kontrollra van szüksége annak a Linux-környezetnek a felett, ahol a függvényalkalmazás fut. Ez az üzembe helyezési mechanizmus csak Linuxon futó függvényekhez érhető el.

Webes üzembe helyezés (MSDeploy)

Web Üzembe helyezi a csomagokat, és telepíti a Windows-alkalmazásokat bármely IIS-kiszolgálón, beleértve a Windowson futó függvényalkalmazásokat is az Azure-ban.

A használat menete: Használja a Visual Studio-eszközöket a Azure Functions. Törölje a jelet a Futtatás csomagfájlból (ajánlott) jelölőnégyzetből .

A Web Deploy 3.6-ot is letöltheti, és közvetlenül hívhatja MSDeploy.exe .

Mikor érdemes használni: A webes üzembe helyezés támogatott, és nincsenek problémái, de az előnyben részesített mechanizmus a zip-alapú üzembe helyezés, amelyen engedélyezve van a csomagból való futtatás. További információt a Visual Studio fejlesztési útmutatójában talál.

Verziókövetés

A forrásvezérlővel csatlakoztathatja a függvényalkalmazást egy Git-adattárhoz. Az adattár kódfrissítése elindítja az üzembe helyezést. További információt a Kudu wikiben talál.

A használat menete: A portál Functions területén található Üzembe helyezési központ segítségével beállíthatja a közzétételt a forrásvezérlőből. További információ: Folyamatos üzembe helyezés Azure Functions.

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ó üzembe helyezési lehetőség, amely kifinomultabb üzembehelyezési folyamatokat tesz lehetővé.

Helyi Git

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

A használat menete: Kövesse a Helyi Git üzembe helyezési útmutatójában található utasításokat a Azure App Service.

Mikor érdemes használni: Általában azt javasoljuk, hogy egy másik üzembehelyezési módszert használjon. A helyi Gitből való közzétételkor manuálisan kell szinkronizálnia az eseményindítókat.

Felhőszinkronizálás

A felhőszinkronizálással szinkronizálhatja a tartalmakat a Dropboxból és a OneDrive-ból a Azure Functions.

A használat menete: Kövesse a Tartalom szinkronizálása felhőmappából című témakörben található utasításokat.

Mikor érdemes használni: Általában más üzembe helyezési módszereket ajánlunk. Ha felhőszinkronizálással teszi közzé a közzétételt, manuálisan kell szinkronizálnia az eseményindítókat.

FTP

Az FTP-vel közvetlenül átviheti a fájlokat Azure Functions.

A használat menete: Kövesse a Tartalom üzembe helyezése FTP/s használatával című témakör utasításait.

Mikor érdemes használni: Általában más üzembehelyezési módszereket ajánlunk. Ha FTP-vel teszi közzé a közzétételt, manuálisan kell szinkronizálnia az eseményindítókat.

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 helyezve, amikor menti a módosításokat).

A használat menete: Ahhoz, hogy szerkeszteni tudja a függvényeket a Azure Portal, létre kell hoznia a függvényeket a portálon. Az egyetlen igazságforrás megőrzése érdekében bármely más üzembehelyezési módszer használatával a függvény írásvédetté válik, és megakadályozza a portál további szerkesztését. Ha vissza szeretne térni egy olyan állapotba, amelyben szerkesztheti a fájlokat a Azure Portal, manuálisan visszakapcsolja Read/Write a szerkesztési módot, é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 a Azure Functions használatának megkezdésére. Az intenzívebb fejlesztési munka érdekében javasoljuk, hogy használja az alábbi ügyféleszközök egyikét:

Az alábbi táblázat a portál szerkesztését 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#
C# szkript * *
F#
Java
JavaScript (Node.js) * *
Python
PowerShell
TypeScript (Node.js)

* A portálszerkesztés csak a Prémium és dedikált csomagokat használó Linux-függvények HTTP- és időzítő-eseményindítóihoz engedélyezett.

Üzembehelyezési viselkedések

Amikor frissítéseket telepít 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érések feldolgozásának megkezdéséhez. Tekintse át a Azure Functions teljesítményének és megbízhatóságának javítását ismertető cikket, amelyből megtudhatja, hogyan írhat állapot nélküli és védekező funkciókat.

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

Üzembe helyezési pontok

Amikor üzembe helyezi a függvényalkalmazást az Azure-ban, az üzembe helyezést egy külön üzembehelyezési ponton végezheti el, nem pedig közvetlenül az éles környezetben. Az üzembehelyezési pontokról további információt a Azure Functions Üzembehelyezési pontok dokumentációjában talál.

Következő lépések

Az alábbi cikkekből többet is megtudhat a függvényalkalmazások üzembe helyezéséről: