Fájlok üzembe helyezése az App Service-ben
Feljegyzés
2024. június 1-től az újonnan létrehozott App Service-alkalmazások létrehozhatnak egy egyedi alapértelmezett gazdagépnevet, amely az elnevezési konvenciót <app-name>-<random-hash>.<region>.azurewebsites.net
használja. A meglévő alkalmazásnevek változatlanok maradnak. Példa:
myapp-ds27dh7271aah175.westus-01.azurewebsites.net
További információ: Az App Service-erőforrás egyedi alapértelmezett gazdagépneve.
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
Amikor létrehozza a ZIP-csomagot az üzembe helyezéshez, ne tartalmazza a gyökérkönyvtárat. 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 legfelső szinten beágyazott könyvtárakat ad hozzá, amelyek nem működnek az App Service-ben.
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 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. Projektek esetén dotnet
adjon hozzá mindent a parancs kimeneti könyvtárában dotnet publish
, 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 az alkalmazás alapértelmezett elérési útján csomagolja ki annak tartalmát: 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 megabájt.
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
. Az alkalmazás nevéhez tekintse meg a jegyzetet a tetején.
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. Amikor az üzembe helyezés befejeződik, az utolsó üzenetben az üzembe helyezés sikeresnek kell lennie.
Ez a 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-path
elé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. További információ: Kudu publish API reference. Ezt a megközelítést javasoljuk. 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-path
elé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. A parancs teljesen 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 jogkivonat-hitelesítést javasoljuk, 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/wwwroot kibontá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.war van ü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/libs van ü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/wwwroot van ü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=false megakadá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 |
Kapcsolódó tartalom
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.