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


A függvények futtatása csomagfájlból az Azure-ban

Az Azure-ban közvetlenül a függvényalkalmazás üzembehelyezési csomagfájljából futtathatja a függvényeket. A másik lehetőség a fájlok üzembe helyezése a c:\home\site\wwwroot függvényalkalmazás (Windows) vagy /home/site/wwwroot (Linux) könyvtárában.

Ez a cikk a függvények csomagból való futtatásának előnyeit ismerteti. Azt is bemutatja, hogyan engedélyezheti ezt a funkciót a függvényalkalmazásban.

Csomagfájlból való futtatás előnyei

A függvények csomagfájlból való futtatásának számos előnye van:

  • Csökkenti a fájlmásolási zárolási problémák kockázatát.
  • Éles alkalmazásban (újraindítással) üzembe helyezhető.
  • Ellenőrzi az alkalmazásban futó fájlokat.
  • Javítja az Azure Resource Manager üzemelő példányainak teljesítményét.
  • Csökkenti a hidegindítási időket, különösen nagy npm-csomagfákkal rendelkező JavaScript-függvények esetében.

További információkért tekintse meg ezt a bejelentést.

Függvények futtatásának engedélyezése csomagból

Ha engedélyezni szeretné, hogy a függvényalkalmazás egy csomagból fusson, adjon hozzá egy alkalmazásbeállítást WEBSITE_RUN_FROM_PACKAGE a függvényalkalmazáshoz. Az WEBSITE_RUN_FROM_PACKAGE alkalmazásbeállítás a következő értékek egyikével rendelkezhet:

Érték Leírás
1 Azt jelzi, hogy a függvényalkalmazás a függvényalkalmazás (Windows) vagy /home/data/SitePackages (Linux) mappájában c:\home\data\SitePackages üzembe helyezett helyi csomagfájlból fut.
<URL> Beállít egy URL-címet, amely a futtatni kívánt csomagfájl távoli helye. A Linuxon futó, használatalapú csomagban futó függvényalkalmazásokhoz szükséges.

Az alábbi táblázat egy adott operációs rendszer és üzemeltetési csomag üzembe helyezésének ajánlott WEBSITE_RUN_FROM_PACKAGE értékeit mutatja be:

Szolgáltatási csomag Windows Linux
Fogyasztás 1 erősen ajánlott. Kizárólag az <URL> támogatott.
Prémium 1 ajánlott. 1 ajánlott.
Elkötelezett 1 ajánlott. 1 ajánlott.

Általános megfontolások

  • A csomagfájlt .zip formázni kell. A tar és a gzip formátumok nem támogatottak.
  • Zip-telepítés használata ajánlott.
  • A függvényalkalmazás Windows rendszeren való üzembe helyezésekor a zip-alapú üzembe helyezést kell beállítania WEBSITE_RUN_FROM_PACKAGE 1 és közzétennie.
  • Ha egy csomagból futtat, a wwwroot mappa írásvédett, és hibaüzenet jelenik meg, ha fájlokat ír ebbe a könyvtárba. A fájlok írásvédettek az Azure Portalon is.
  • Az üzembehelyezési csomagfájl maximális mérete 1 GB.
  • Üzembehelyezési csomagból való futtatáskor nem használhatja a helyi gyorsítótárat.
  • Ha a projektnek távoli buildet kell használnia, ne használja az alkalmazásbeállítást WEBSITE_RUN_FROM_PACKAGE . Ehelyett adja hozzá az SCM_DO_BUILD_DURING_DEPLOYMENT=true üzembehelyezési testreszabási alkalmazás beállításait. Linux esetén is adja hozzá a ENABLE_ORYX_BUILD=true beállítást. További információ: Távoli build.

Feljegyzés

Az WEBSITE_RUN_FROM_PACKAGE alkalmazásbeállítás nem működik az MSDeploy vs. ZipDeploy. Az üzembe helyezés során hibaüzenet jelenik meg, például ARM-MSDeploy Deploy Failed. A hiba megoldásához tegye a következőre /MSDeploy : /ZipDeploy.

Adja hozzá a WEBSITE_RUN_FROM_PACKAGE beállítást

A függvényalkalmazás beállításai többféleképpen is hozzáadhatók, frissíthetők és törölhetők:

A függvényalkalmazás beállításainak módosításához újra kell indítani a függvényalkalmazást.

A zip-archívum létrehozása

Az üzembe helyezendő zip-archívumnak tartalmaznia kell a függvényalkalmazás futtatásához szükséges összes fájlt. A Functions-projektmappák tartalmából manuálisan is létrehozhat zip-archívumot beépített .zip tömörítési funkcióval vagy külső eszközökkel.

Az archívumnak tartalmaznia kell a kibontott mappa gyökerében található host.json fájlt. A függvényalkalmazáshoz kijelölt nyelvi verem további követelményeket hoz létre:

Fontos

Ügyeljen arra, hogy a szülőmappa helyett minden kimeneti mappa tartalmát tömörítse. Amikor az Azure Functions kinyeri a zip archívum tartalmát, azonnal látnia kell a host.json fájlt.

WEBSITE_RUN_FROM_PACKAGE = 1 használata

Ez a szakasz a függvényalkalmazás helyi csomagfájlból való futtatásával kapcsolatos információkat tartalmaz.

A helyszíni csomagból történő üzembe helyezés szempontjai

  • A helyszíni csomag használata ajánlott az üzembe helyezési csomagból való futtatáshoz, kivéve, ha a használatalapú csomagban üzemeltetett Linuxon fut.
  • A zip-alapú üzembe helyezés ajánlott módja annak, hogy egy üzembehelyezési csomagot feltöltsön a webhelyére.
  • Ha nem használ zip-telepítést, győződjön meg arról, hogy a c:\home\data\SitePackages (Windows) vagy /home/data/SitePackages a (Linux) mappában van egy fájl neve packagename.txt. Ez a fájl csak a jelenleg futó mappában lévő csomagfájl nevét tartalmazza, szóköz nélkül.

Integráció zip-alapú üzembe helyezéssel

A Zip üzembe helyezése a Azure-alkalmazás Szolgáltatás egyik funkciója, amellyel üzembe helyezheti a függvényalkalmazás-projektet a wwwroot címtárban. A projekt .zip üzembehelyezési fájlként van csomagolva. Ugyanezek az API-k használhatók a csomag (Windows) vagy /home/data/SitePackages (Linux) mappában való c:\home\data\SitePackages üzembe helyezéséhez.

Amikor beállítja az WEBSITE_RUN_FROM_PACKAGE alkalmazásbeállítás értékét1, a zip üzembe helyezési API-k a fájlok (Windows) vagy (Linux) helyett a c:\home\data\SitePackages (Windows) vagy /home/data/SitePackages /home/site/wwwroot a (Linux) mappába másolják a csomagot c:\home\site\wwwroot . Emellett létrehozza a packagename.txt fájlt is. A függvényalkalmazás automatikus újraindítása után a csomag írásvédett fájlrendszerként van csatlakoztatva wwwroot . A zip üzembe helyezésével kapcsolatos további információkért tekintse meg az Azure Functions Zip üzembe helyezését ismertető témakört.

Feljegyzés

Üzembe helyezés esetén a függvényalkalmazás újraindítása aktiválódik. Az üzembe helyezés során jelenleg futó függvényvégrehajtások leállnak. Az állapot nélküli és a védekező függvények írásáról további információt az Írási függvények állapot nélküliként való beállításához talál.

WEBSITE_RUN_FROM_PACKAGE = URL-cím használata

Ez a szakasz arról nyújt tájékoztatást, hogyan futtathatja a függvényalkalmazást egy URL-végponton üzembe helyezett csomagból. Ez a beállítás az egyetlen támogatott, amely egy Használat csomaggal rendelkező Linux-alapú csomagból futtatható.

Az URL-címről történő üzembe helyezés szempontjai

  • A Windows rendszeren futó függvényalkalmazások enyhe hidegindítási időt tapasztalnak, amikor az alkalmazáscsomagot egy URL-végponton WEBSITE_RUN_FROM_PACKAGE = <URL>helyezik üzembe.
  • URL-cím megadásakor manuálisan is szinkronizálnia kell az eseményindítókat a frissített csomag közzététele után.
  • A Functions-futtatókörnyezetnek engedélyekkel kell rendelkeznie a csomag URL-címének eléréséhez.
  • Ne helyezze üzembe a csomagot az Azure Blob Storage-ban nyilvános blobként. Ehelyett használjon egy privát tárolót egy közös hozzáférésű jogosultságkóddal (SAS), vagy használjon felügyelt identitást a Functions-futtatókörnyezet számára a csomag eléréséhez.
  • Az üzembe helyezéshez használt SAS-URL-címeket meg kell őriznie. Ha egy SAS lejár, a csomag már nem telepíthető. Ebben az esetben létre kell hoznia egy új SAS-t, és frissítenie kell a beállítást a függvényalkalmazásban. Ezt a felügyeleti terhet egy felügyelt identitással szüntetheti meg.
  • Prémium csomagon való futtatáskor mindenképpen szüntesse meg a hidegindítást.
  • Ha dedikált csomagon fut, győződjön meg arról, hogy engedélyezi az Always On szolgáltatást.
  • Az Azure Storage Explorerrel csomagfájlokat tölthet fel a tárfiók blobtárolóiba.

Csomag manuális feltöltése a Blob Storage-ba

Ha tömörített csomagot szeretne üzembe helyezni az URL-beállítás használatakor, létre kell hoznia egy .zip tömörített üzembehelyezési csomagot, és fel kell töltenie a célhelyre. A következő eljárás a Blob Storage-tárolóban üzembe helyezhető:

  1. Hozzon létre egy .zip csomagot a projekthez a választott segédprogrammal.

  2. Az Azure Portalon keresse meg a tárfiók nevét, vagy keresse meg a tárfiókok listájában.

  3. A tárfiókban válassza a Tárolók lehetőséget az Adattárolás csoportban.

  4. Válassza a + Tároló lehetőséget egy új Blob Storage-tároló létrehozásához a fiókjában.

  5. Az Új tároló lapon adjon meg egy nevet (például üzembe helyezéseket), győződjön meg arról, hogy a névtelen hozzáférési szint privát, majd válassza a Létrehozás lehetőséget.

  6. Jelölje ki a létrehozott tárolót, válassza a Feltöltés lehetőséget, keresse meg a projekttel létrehozott .zip fájl helyét, majd válassza a Feltöltés lehetőséget.

  7. A feltöltés befejezése után válassza ki a feltöltött blobfájlt, és másolja ki az URL-címet. Ha nem felügyelt identitást használ, előfordulhat, hogy sas URL-címet kell létrehoznia.

  8. Keresse meg a függvényalkalmazást, vagy keresse meg a Függvényalkalmazás lapon.

  9. A függvényalkalmazásban bontsa ki a Beállítások elemet, majd válassza a Környezeti változók lehetőséget.

  10. Az Alkalmazásbeállítások lapon válassza a + Hozzáadás lehetőséget.

  11. Adja meg a Név értékétWEBSITE_RUN_FROM_PACKAGE, és illessze be a csomag URL-címét az érték Blob Storage-ba.

  12. Válassza az Alkalmaz lehetőséget, majd az Alkalmaz és megerősítés lehetőséget a beállítás mentéséhez és a függvényalkalmazás újraindításához.

Most futtathatja a függvényt az Azure-ban annak ellenőrzéséhez, hogy az üzembe helyezési csomag .zip fájl telepítése sikeres volt-e.

Csomag lekérése az Azure Blob Storage-ból felügyelt identitás használatával

Az Azure Blob Storage konfigurálható úgy, hogy a Microsoft Entra-azonosítóval engedélyezze a kéréseket. Ez a konfiguráció azt jelenti, hogy a lejárattal rendelkező SAS-kulcs létrehozása helyett az alkalmazás felügyelt identitására támaszkodhat. Alapértelmezés szerint a rendszer az alkalmazás rendszer által hozzárendelt identitását használja. Ha felhasználó által hozzárendelt identitást szeretne megadni, beállíthatja az WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID alkalmazásbeállítást az identitás erőforrás-azonosítójára. A beállítás értékként is elfogadható SystemAssigned , ami egyenértékű a beállítás kihagyásával.

A csomag lekérésének engedélyezése az identitással:

  1. Győződjön meg arról, hogy a blob privát hozzáférésre van konfigurálva.

  2. Adja meg az identitásnak a Storage Blob Adatolvasó szerepkört a csomagblob hatókörével. A szerepkör-hozzárendelés létrehozásával kapcsolatos részletekért lásd : Azure-szerepkör hozzárendelése a blobadatokhoz való hozzáféréshez.

  3. Állítsa be az WEBSITE_RUN_FROM_PACKAGE alkalmazásbeállítást a csomag blob URL-címére. Ez az URL-cím általában űrlap vagy https://{storage-account-name}.blob.core.windows.net/{container-name}/{path-to-package} hasonló.