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 kiépítések 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

A Flex Consumption üzemeltetési csomag függvényalkalmazásai alapértelmezés szerint egy csomagból futnak. Nincs szükség speciális konfigurációra.

Ha engedélyezni szeretné, hogy a függvényalkalmazás egy csomagból fusson a Consumption, Elastic Premium és Dedikált (App Service) üzemeltetési csomagokban, 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 c:\home\data\SitePackages (Linux) mappájában /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 Linux platformon futó fogyasztási tervben működő 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
Használat 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

  • Ne adja hozzá az WEBSITE_RUN_FROM_PACKAGE alkalmazásbeállítást az alkalmazásokhoz a Rugalmas használat csomagban.
  • 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.
  • Windows rendszeren való üzembe helyezéskor a függvényalkalmazását úgy kell beállítania, hogy az WEBSITE_RUN_FROM_PACKAGE értékét 1-re állítja, és zip-alapú üzembe helyezéssel közzé kell 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.
    • Az üzembe helyezés ideiglenes tárterületet használ a projektfájlok kicsomagolásakor. Ez azt jelenti, hogy a függvényalkalmazásnak elegendő szabad ideiglenes tárterülettel kell rendelkeznie a csomag tartalmának tárolásához. Ne feledje, hogy a használati csomagok ideiglenes tárolási korlátja csomagonként 500 MB. Az ideiglenes tárolással kapcsolatos problémák elhárításáról a Azure-alkalmazás Szolgáltatás ideiglenes tárterületének hibaelhárítása című témakörben olvashat.
  • Ü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, ahogyan az az MSDeploy és ZipDeploy leírásában szerepel. Az üzembe helyezés során hibaüzenet jelenik meg, például ARM-MSDeploy Deploy Failed. A hiba megoldásához változtassa /MSDeploy-t /ZipDeploy-re.

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 nem Microsoft-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 más követelményeket is létrehoz:

Fontos

Azoknál a nyelveknél, amelyek összeállított kimenetet hoznak létre az üzembe helyezéshez, ügyeljen arra, hogy a közzétenni kívánt kimeneti mappa tartalmát tömörítse, ne a teljes projektmappát. Amikor a Functions kinyeri a zip archívum tartalmát, a host.json fájlnak a csomag gyökerében kell lennie.

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. Ezek az API-k használhatók a csomag telepítésére a c:\home\data\SitePackages (Windows) vagy a /home/data/SitePackages (Linux) mappába.

Amikor az WEBSITE_RUN_FROM_PACKAGE alkalmazásbeállítást 1 értékre állítja, a zip üzembe helyezési API-k a csomagot a c:\home\data\SitePackages (Windows) vagy /home/data/SitePackages (Linux) mappába másolják, ahelyett hogy a fájlokat kibontanák a c:\home\site\wwwroot (Windows) vagy /home/site/wwwroot (Linux) mappába. Emellett létrehozza a packagename.txt fájlt is. A függvényalkalmazás automatikus újraindítása után a csomag a wwwroot helyre van csatolva írásvédett fájlrendszerként. 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 védekező függvények írásáról további információt az Állapot nélküli függvények írása című részben talál.

A 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 az opció az egyetlen támogatott, amely egy Fogyasztási tervvel rendelkező Linux-alapú csomagból futtatható. Ez a beállítás nem támogatott a Flex Consumption csomagban.

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

  • Ne állítsa be WEBSITE_RUN_FROM_PACKAGE = <URL> az alkalmazásokat a Flex Consumption csomagban. Ez a beállítás nem támogatott.
  • A Windows rendszeren futó függvényalkalmazások esetében a kezdeti indítási idő enyhén növekszik, amikor az alkalmazáscsomagot egy URL-végponton keresztül 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 szintprivá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 létre kell hoznia egy SAS URL-címet.

  8. Keressen rá a függvényalkalmazására, vagy böngésszen 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 WEBSITE_RUN_FROM_PACKAGE értékét, é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 a személyazonosságnak a Storage Blob Adatolvasó szerepkört a csomag blob feletti hatókörrel. 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. Az URL általában https://{storage-account-name}.blob.core.windows.net/{container-name}/{path-to-package} formátumú vagy hasonló.

  4. 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 a "SystemAssigned" értéket is elfogadhatja, bár ez megegyezik a beállítás teljes kihagyásával. Az erőforrás-azonosító az Azure-beli erőforrások szabványos reprezentációja. A felhasználó által hozzárendelt felügyelt identitás esetében ez lesz /subscriptions/subid/resourcegroups/rg-name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-name. A felhasználó által hozzárendelt felügyelt identitás erőforrás-azonosítóját a Beállítások –>Tulajdonságok –>felhasználó által hozzárendelt felügyelt identitás azon osítóján szerezhetjük be.