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á azSCM_DO_BUILD_DURING_DEPLOYMENT=true
üzembehelyezési testreszabási alkalmazás beállításait. Linux esetén is adja hozzá aENABLE_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:
- .NET (izolált feldolgozói modell)
- .NET (folyamatban lévő modell)
- Java
- JavaScript
- TypeScript
- PowerShell
- Python
Fontos
Az üzembe helyezéshez lefordított kimenetet létrehozó nyelvek esetében ügyeljen arra, hogy a közzétenni kívánt kimeneti mappa tartalmát ne a teljes projektmappát tömörítse. 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 nevepackagename.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ő:
Hozzon létre egy .zip csomagot a projekthez a választott segédprogrammal.
Az Azure Portalon keresse meg a tárfiók nevét, vagy keresse meg a tárfiókok listájában.
A tárfiókban válassza a Tárolók lehetőséget az Adattárolás csoportban.
Válassza a + Tároló lehetőséget egy új Blob Storage-tároló létrehozásához a fiókjában.
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.
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.
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.
Keresse meg a függvényalkalmazást, vagy keresse meg a Függvényalkalmazás lapon.
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.
Az Alkalmazásbeállítások lapon válassza a + Hozzáadás lehetőséget.
Adja meg a Név értékét
WEBSITE_RUN_FROM_PACKAGE
, és illessze be a csomag URL-címét az érték Blob Storage-ba.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:
Győződjön meg arról, hogy a blob privát hozzáférésre van konfigurálva.
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.
Á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 vagyhttps://{storage-account-name}.blob.core.windows.net/{container-name}/{path-to-package}
hasonló.