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


Futtassa az alkalmazást közvetlenül egy ZIP csomagból az Azure App Service-ben.

Feljegyzés

A csomagból való futtatás a Python-alkalmazások esetében nem támogatott. A Python-kód ZIP-fájljának üzembe helyezésekor be kell állítania egy jelzőt az Azure buildautomatizálásának engedélyezéséhez. A buildautomatizálás létrehozza az alkalmazáshoz tartozó Python virtuális környezetet, és telepíti a szükséges követelményeket és csomagokat. További részletekért lásd a build automatizálást.

A Azure-alkalmazás Szolgáltatásban az alkalmazásokat közvetlenül egy üzembehelyezési ZIP-csomagfájlból futtathatja. Ez a cikk bemutatja, hogyan engedélyezheti ezt a funkciót az alkalmazásban.

Az App Service-ben minden más üzembe helyezési módszer közös: a unzip-fájlok az alkalmazás D:\home\site\wwwroot mappájában vannak üzembe helyezve (vagy /home/site/wwwroot linuxos alkalmazásokhoz). Mivel az alkalmazás futásidőben ugyanazt a könyvtárat használja, előfordulhat, hogy az üzembe helyezés meghiúsul a fájlzárolási ütközések miatt, és az alkalmazás kiszámíthatatlanul viselkedik, mert egyes fájlok még nem frissülnek. A beállítás engedélyezéséhez nem kell semmilyen értéket hozzárendelnie a WEBSITE_RUN_FROM_PACKAGE változóhoz, vagy teljesen eltávolíthatja azt.

Ezzel szemben, ha közvetlenül egy ZIP-csomagból futtat, a csomag fájljai nem lesznek átmásolva a wwwroot könyvtárba. Ehelyett maga a ZIP-csomag közvetlenül csatlakoztatva lesz írásvédett wwwroot könyvtárként. A beállítás engedélyezéséhez állítsa be az =1 értéket WEBSITE_RUN_FROM_PACKAGE, vagy adja meg a ZIP-fájl URL-címét. A csomagból való közvetlen futtatásnak számos előnye van:

  • Kiküszöböli a fájlzárolási ütközéseket az üzembe helyezés és a futtatókörnyezet között.
  • Biztosítja, hogy mindig csak a teljes körűen telepített alkalmazások fussanak.
  • Éles alkalmazásban (újraindítással) üzembe helyezhető.
  • Javítja az Azure Resource Manager üzemelő példányainak teljesítményét.
  • Csökkentheti a hidegindítási időket, különösen nagy npm-csomagfákkal rendelkező JavaScript-függvények esetében.

Feljegyzés

Jelenleg csak a ZIP-csomagfájlok támogatottak.

Projekt ZIP-csomag létrehozása

Fontos

Amikor létrehozza a ZIP-csomagot az üzembe helyezéshez, ne vegye fel a gyökérkönyvtárat a csomagba. Csak a fájlokat és könyvtárakat vegye fel a gyökérkönyvtárba. Ha ZIP-fájlként tölt le egy GitHub-adattárat, a fájlt nem helyezheti üzembe az App Service-ben. A GitHub a felső szinten beágyazott könyvtárakat ad hozzá, ami nem működik az App Service-szel.

Egy helyi terminálablakban keresse meg az alkalmazásprojekt gyökérkönyvtárát.

Ennek a könyvtárnak tartalmaznia kell a webalkalmazás bejegyzés fájlját, például index.html, index.php és app.js. Olyan csomagkezelési fájlokat is tartalmazhat, mint a project.json, composer.json, package.json, bower.jsonés requirements.txt.

Ha nem szeretné, hogy az App Service üzembe helyezési automatizálást futtasson Önnek, futtassa az összes buildelési feladatot. Például: npm, bower, gulp, composerés pip. Győződjön meg arról, hogy rendelkezik az alkalmazás futtatásához szükséges összes fájllal. Erre a lépésre akkor van szükség, ha közvetlenül szeretné futtatni a csomagot.

Készítsen ZIP-archívumot a projekt minden eleméről. dotnet projektek esetében adjon hozzá mindent a parancs dotnet publish kimeneti könyvtárából, kivéve magát a kimeneti könyvtárat. Írja be például a következő parancsot a terminálba egy olyan ZIP-csomag létrehozásához, amely tartalmazza az aktuális könyvtár tartalmát:

# Bash
zip -r <file-name>.zip .

# PowerShell
Compress-Archive -Path * -DestinationPath <file-name>.zip

A ZIP-csomagból való futtatás engedélyezése

Az WEBSITE_RUN_FROM_PACKAGE alkalmazásbeállítás lehetővé teszi a ZIP-csomagból való futtatásokat. A beállításhoz futtassa a következő parancsot az Azure CLI-vel.

az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings WEBSITE_RUN_FROM_PACKAGE="1"

WEBSITE_RUN_FROM_PACKAGE="1" segítségével az alkalmazáshoz helyileg tartozó ZIP-csomagból futtathatja az alkalmazást. Távoli csomagból is futtathatók.

A ZIP-csomag futtatása

A ZIP-csomagok App Service-ben való futtatásának legegyszerűbb módja az Azure CLI az webapp deployment source config-zip parancs. Példa:

az webapp deploy --resource-group <group-name> --name <app-name> --src-path <filename>.zip

Mivel az WEBSITE_RUN_FROM_PACKAGE alkalmazásbeállítás be van állítva, ez a parancs nem nyeri ki a ZIP-csomag tartalmát az alkalmazás D:\home\site\wwwroot könyvtárába. Ehelyett feltölti a ZIP-fájlt a D:\home\data\SitePackages fájlba, és létrehoz egy packagename.txt ugyanabban a könyvtárban, amely tartalmazza a futtatókörnyezetben betöltendő ZIP-csomag nevét. Ha más módon tölti fel a ZIP-csomagot (például FTP), manuálisan kell létrehoznia a D:\home\data\SitePackages könyvtárat és a packagename.txt fájlt.

A parancs az alkalmazást is újraindítja. Mivel WEBSITE_RUN_FROM_PACKAGE be van állítva, az App Service a feltöltött csomagot írásvédett wwwroot könyvtárként csatlakoztatja, és közvetlenül a csatlakoztatott könyvtárból futtatja az alkalmazást.

Futtatás külső URL-címről

Zip-csomagot is futtathat külső URL-címről, például az Azure Blob Storage-ból. Az Azure Storage Explorer használatával zip-csomagfájlokat tölthet fel Blob Storage-fiókjába. Használjon privát tárolót közös hozzáférésű jogosultságkóddal (SAS) vagy felügyelt identitással , hogy az App Service futtatókörnyezete biztonságosan elérhesse a ZIP-csomagot.

Feljegyzés

Egy helyi ZIP-csomagot futtató meglévő App Service-erőforrás jelenleg nem migrálható távoli ZIP-csomagból való futtatáshoz. Létre kell hoznia egy új App Service-erőforrást, amely külső URL-címről való futtatásra van konfigurálva.

Miután feltöltötte a fájlt a Blob Storage-ba, és rendelkezik a fájl SAS URL-címével, állítsa be az WEBSITE_RUN_FROM_PACKAGE alkalmazásbeállítást az URL-címre. Győződjön meg arról, hogy az URL-cím a következővel .zipvégződik: . Az alábbi példa az Azure CLI használatával történik:

az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings WEBSITE_RUN_FROM_PACKAGE="https://myblobstorage.blob.core.windows.net/content/SampleCoreMVCApp.zip?st=2018-02-13T09%3A48%3A00Z&se=2044-06-14T09%3A48%3A00Z&sp=rl&sv=2017-04-17&sr=b&sig=bNrVrEFzRHQB17GFJ7boEanetyJ9DGwBSV8OM3Mdh%2FM%3D"

Ha egy azonos nevű frissített csomagot tesz közzé a Blob Storage-ben, újra kell indítania az alkalmazást, hogy a frissített csomag be legyen töltve az App Service-be.

Csomag elérése az Azure Blob Storage-ban 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 csomagblobra vonatkozó hatókörben. 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 ilyen formátumú: https://{storage-account-name}.blob.core.windows.net/{container-name}/{path-to-package}, vagy ehhez 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.

WebJob-fájlok üzembe helyezése csomagból való futtatáskor

A WebJob-fájlok kétféleképpen helyezhetők üzembe, ha engedélyezi az alkalmazások csomagból való futtatását:

  • Helyezze üzembe az alkalmazással azonos ZIP-csomagban: vegye fel őket szokásos módon a <project-root>\app_data\jobs\... (amely a \site\wwwroot\app_data\jobs\...-hez van hozzárendelve, az WebJobs gyorsindítás részben meghatározott üzembehelyezési útvonal szerint).
  • Üzembe helyezés külön az alkalmazás ZIP-csomagjától: Mivel a szokásos üzembehelyezési útvonal \site\wwwroot\app_data\jobs\... írásvédett, nem helyezhet üzembe WebJob-fájlokat. Ehelyett telepítse a WebJob-fájlokat olyan \site\jobs\... helyre, amely nem csak olvasható. WebJobs üzembe lett helyezve \site\wwwroot\app_data\jobs\... és \site\jobs\..., mindkettő fut.

Feljegyzés

Ha \site\wwwroot írásvédetté válik, az olyan műveletek, mint a disable.job létrehozása, sikertelenek lesznek.

Hibaelhárítás

  • A közvetlenül csomagból történő futtatás írásvédetté teszi a wwwroot fájlt. Az alkalmazás hibaüzenetet kap, ha fájlokat próbál írni ebbe a könyvtárba.
  • A TAR és a GZIP formátumok nem támogatottak.
  • A ZIP-fájl legfeljebb 1 GB lehet
  • Ez a funkció nem kompatibilis a helyi gyorsítótárral.
  • A jobb hidegindítási teljesítmény érdekében használja a helyi Zip beállítást (WEBSITE_RUN_FROM_PACKAGE=1).