Fájlok üzembe helyezése az App Service-ben

Ez a cikk bemutatja, hogyan helyezheti üzembe a kódot ZIP-, WAR-, JAR- vagy EAR-csomagként Azure-alkalmazás Szolgáltatásban. Azt is bemutatja, hogyan helyezhet üzembe egyes fájlokat az App Service-ben, az alkalmazáscsomagtól elkülönítve.

Előfeltételek

A cikk lépéseinek elvégzéséhez hozzon létre egy App Service-alkalmazást, vagy használjon egy másik oktatóanyaghoz létrehozott alkalmazást.

Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.

Projekt ZIP-csomag létrehozása

Fontos

A ZIP-csomag üzembe helyezéshez való létrehozásakor ne tartalmazza a gyökérkönyvtárat, hanem csak a benne lévő fájlokat és könyvtárakat. Ha ZIP-fájlként tölt le egy GitHub-adattárat, nem helyezheti üzembe a fájlt az App Service-ben. A GitHub további beágyazott könyvtárakat ad hozzá a legfelső szinten, amelyek nem működnek az App Service-vel.

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ésfájlját, például index.html, index.php és app.js. Csomagkezelési fájlokat is tartalmazhat, például 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 ), és pipgyő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. Projektek esetén dotnet ez minden a parancs kimeneti könyvtárában dotnet publish található (kivéve magát a kimeneti könyvtárat). A terminálban például a következő parancsot kell létrehoznia az aktuális könyvtár tartalmának ZIP-csomagjához:

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

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

ZIP-csomag üzembe helyezése

ZIP-csomag üzembe helyezésekor az App Service kicsomagolja annak tartalmát az alkalmazás alapértelmezett elérési útján (D:\home\site\wwwroot Windows, /home/site/wwwroot Linux esetén).

Ez a ZIP-csomag üzembe helyezése ugyanazt a Kudu szolgáltatást használja, amely folyamatos integrációs alapú üzembe helyezéseket működtet. A Kudu a következő funkciókat támogatja a ZIP-csomagok üzembe helyezéséhez:

  • Az előző telepítésből hátrahagyott fájlok törlése.
  • Lehetőség az alapértelmezett buildelési folyamat bekapcsolására, amely magában foglalja a csomag-visszaállítást is.
  • Az üzembe helyezés testreszabása, beleértve az üzembehelyezési szkriptek futtatását is.
  • Üzembehelyezési naplók.
  • A csomag méretkorlátja 2048 MB.

Feljegyzés

A ZIP-csomagban lévő fájlok csak akkor lesznek másolva, ha az időbélyegeik nem egyeznek a már üzembe helyezett fájlokkal.

Zip üzembe helyezési felhasználói felülettel a Kuduban

A böngészőjében lépjen a következő helyre: https://<app_name>.scm.azurewebsites.net/ZipDeployUI.

Töltse fel a projekt ZIP-csomag létrehozása szolgáltatásban létrehozott ZIP-csomagot a weblap Fájlkezelő területére húzva.

Ha a telepítés folyamatban van, a jobb felső sarokban megjelenik az állapotot százalékban kifejező ikon. A lap fájlkezelő terület alatti részén megjelennek a művelethez tartozó részletes üzenetek is. Az üzembe helyezés befejeződésekor az utolsó üzenetnek kell lennie.Deployment successful

A fenti végpont jelenleg nem működik a Linux App Servicesben. Fontolja meg inkább az FTP vagy a ZIP üzembe helyezési API használatát.

Zip-telepítés nélküli felhasználói felület a Kuduban

Zip-csomag üzembe helyezése a webalkalmazásban az az webapp deploy paranccsal. A CLI-parancs a Kudu publish API használatával telepíti a fájlokat, és teljes mértékben testre szabható.

Az alábbi példa egy ZIP-csomagot küld a webhelyére. Adja meg a helyi ZIP-csomag --src-pathelérési útját.

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

Ez a parancs újraindítja az alkalmazást a ZIP-csomag üzembe helyezése után.

Buildautomatizálás engedélyezése zip-telepítéshez

Alapértelmezés szerint az üzembehelyezési motor feltételezi, hogy egy ZIP-csomag készen áll a futtatásra, és nem futtat semmilyen buildautomatizálást. Ha ugyanazt a buildautomatizálást szeretné engedélyezni, mint egy Git-üzemelő példányban, állítsa be az SCM_DO_BUILD_DURING_DEPLOYMENT alkalmazásbeállítást az alábbi parancs futtatásával a Cloud Shellben:

az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true

További információt a Kudu dokumentációjában talál.

WAR/JAR/EAR-csomagok üzembe helyezése

A WAR, JAR vagy EAR csomagot az App Service-ben üzembe helyezheti a Java-webalkalmazás azure CLI, PowerShell vagy a Kudu publish API használatával történő futtatásához.

Az itt látható üzembe helyezési folyamat az alkalmazás tartalommegosztására helyezi a csomagot a megfelelő elnevezési konvencióval és címtárstruktúrával (lásd a Kudu közzétételi API-referenciáját), és ez az ajánlott megközelítés. Ha INKÁBB FTP vagy WebDeploy használatával telepíti a WAR/JAR/EAR-csomagokat, az elnevezés vagy a struktúra hibái miatt ismeretlen hibák fordulhatnak elő.

War-csomag üzembe helyezése a Tomcat-ben vagy a JBoss EAP-ben az az webapp deploy paranccsal. Adja meg a helyi Java-csomag --src-pathelérési útját.

az webapp deploy --resource-group <group-name> --name <app-name> --src-path ./<package-name>.war

A CLI-parancs a Kudu publish API használatával telepíti a csomagot, és teljes mértékben testre szabható.

Egyedi fájlok üzembe helyezése

Helyezzen üzembe egy indítási szkriptet, tárat és statikus fájlt a webalkalmazásban az az webapp deploy paranccsal a --type paraméterrel.

Ha így helyez üzembe egy indítási szkriptet, az App Service automatikusan a szkript használatával indítja el az alkalmazást.

A CLI-parancs a Kudu publish API használatával telepíti a fájlokat, és teljes mértékben testre szabható.

Indítási szkript üzembe helyezése

az webapp deploy --resource-group <group-name> --name <app-name> --src-path scripts/startup.sh --type=startup

Tárfájl üzembe helyezése

az webapp deploy --resource-group <group-name> --name <app-name> --src-path driver.jar --type=lib

Statikus fájl üzembe helyezése

az webapp deploy --resource-group <group-name> --name <app-name> --src-path config.json --type=static

Üzembe helyezés hálózat által védett alkalmazásokban

A webalkalmazás hálózati konfigurációjától függően előfordulhat, hogy az alkalmazáshoz való közvetlen hozzáférés a fejlesztési környezetből le lesz tiltva (lásd : Üzembe helyezés a hálózat által védett helyeken és üzembe helyezés a hálózat által védett helyeken, 2. rész). Ahelyett, hogy közvetlenül a webalkalmazásba küldi a csomagot vagy a fájlt, közzéteheti a webalkalmazásból elérhető tárolórendszerben, és aktiválhatja az alkalmazást, hogy lekérje a ZIP-t a tárolási helyről.

A távoli URL-cím bármilyen nyilvánosan elérhető hely lehet, de a legjobb, ha SAS-kulccsal rendelkező blobtárolót használ a védelemhez.

Használja a az webapp deploy parancsot, mint a többi szakaszban, de használja --src-url ahelyett --src-path, hogy . Az alábbi példa a paraméterrel --src-url adja meg egy Azure Storage-fiókban üzemeltetett ZIP-fájl URL-címét.

az webapp deploy --resource-group <group-name> --name <app-name> --src-url "https://storagesample.blob.core.windows.net/sample-container/myapp.zip?sv=2021-10-01&sb&sig=slk22f3UrS823n4kSh8Skjpa7Naj4CG3 --type zip

Kudu publish API-referencia

A publish Kudu API lehetővé teszi, hogy ugyanazokat a paramétereket adja meg a CLI-parancsból, mint az URL-lekérdezési paraméterek. A Kudu REST API-val való hitelesítéshez érdemes jogkivonat-hitelesítést használni, de az alkalmazás üzembehelyezési hitelesítő adataival is használhat alapszintű hitelesítést.

Az alábbi táblázat az elérhető lekérdezési paramétereket, azok engedélyezett értékeit és leírását mutatja be.

Kulcs Megengedett értékek Leírás Kötelező Típus
type war|jar|ear|lib|startup|static|zip Az üzembe helyezett összetevő típusa, amely beállítja az alapértelmezett célelérési utat, és tájékoztatja a webalkalmazást az üzembe helyezés kezeléséről.
- type=zip: Zip-csomag üzembe helyezése a tartalom /home/site/wwwrootkibontásával. target-path paraméter megadása nem kötelező.
- type=war: WAR-csomag üzembe helyezése. A WAR-csomag alapértelmezés szerint a következőre /home/site/wwwroot/app.warvan üzembe helyezve: . A cél elérési útja megadható a következővel target-path: .
- type=jar: JAR-csomag üzembe helyezése a következőre /home/site/wwwroot/app.jar: . A target-path paraméter figyelmen kívül lesz hagyva
- type=ear: Ear-csomag üzembe helyezése a következőre /home/site/wwwroot/app.ear: . A target-path paraméter figyelmen kívül lesz hagyva
- type=lib: JAR-kódtárfájl üzembe helyezése. A fájl alapértelmezés szerint a következőre /home/site/libsvan üzembe helyezve: . A cél elérési útja megadható a következővel target-path: .
- type=static: Statikus fájl (például szkript) üzembe helyezése. A fájl alapértelmezés szerint a következőre /home/site/wwwrootvan üzembe helyezve: .
- type=startup: Helyezzen üzembe egy szkriptet, amelyet az App Service automatikusan használ az alkalmazás indítási szkriptjeként. A szkript alapértelmezés szerint Windows és home/site/wwwroot/startup.sh Linux rendszeren van üzembe helyezveD:\home\site\scripts\<name-of-source>. A cél elérési útja megadható a következővel target-path: .
Igen Sztring
restart true|false Alapértelmezés szerint az API újraindítja az alkalmazást az üzembe helyezési művelet (restart=true) után. Ha több összetevőt szeretne üzembe helyezni, a beállítással restart=falsemegakadályozhatja az újraindítást az összes, de a végleges üzembe helyezésen ki nem. Nem Logikai
clean true|false Megadja, hogy az összetevő üzembe helyezése előtt törölje-e (törölje) a céltelepítést. Nem Logikai
ignorestack true|false A közzétételi API a WEBSITE_STACK környezeti változóval választja ki a biztonságos alapértelmezett értékeket a webhely nyelvi veremétől függően. Ha ezt a paramétert úgy állítja be, hogy false letiltsa a nyelvspecifikus alapértelmezett beállításokat. Nem Logikai
target-path Abszolút elérési út Az összetevő üzembe helyezésének abszolút elérési útja. Például: "/home/site/deployments/tools/driver.jar". "/home/site/scripts/helper.sh" Nem Sztring

Következő lépések

Fejlettebb üzembe helyezési forgatókönyvek esetén próbálja meg üzembe helyezni az Azure-ban a Gittel. A Git-alapú Azure-beli üzembe helyezés lehetővé teszi a verziókövetést, a csomag-visszaállítást, az MSBuildet és egyebeket.

További hasznos források