Nasadit soubory do App Service
V tomto článku se dozvíte, jak nasadit kód jako soubor ZIP, WAR, JAR nebo UŠNÍho balíčku do Azure App Service. Také ukazuje, jak nasadit jednotlivé soubory, které App Service, oddělené od balíčku aplikace.
Požadavky
K dokončení kroků v tomto článku vytvořte aplikaci App Servicenebo použijte aplikaci, kterou jste vytvořili pro jiný kurz.
Pokud ještě nemáte předplatné Azure,vytvořte si bezplatný účet před tím, než začnete.
Vytvoření balíčku ZIP projektu
Poznámka
Pokud jste soubory stáhli v balíčku ZIP, nejprve soubory rozbalte. pokud jste například stáhli balíček ZIP z GitHub, nemůžete tento soubor nasadit tak, jak je. GitHub přidá další vnořené adresáře, které nefungují s App Service.
V místním okně terminálu přejděte do kořenového adresáře projektu aplikace.
Tento adresář by měl obsahovat vstupní soubor vaší webové aplikace, například index.html, index. php a app.js. Může také obsahovat soubory správy balíčků, například project.json, composer.json, package.json, bower.json a requirements.txt.
Pokud nechcete, aby App Service spustila automatizaci nasazení za vás, spusťte všechny úlohy sestavení (například npm ,,, bower gulp composer a pip ) a ujistěte se, že máte všechny soubory, které potřebujete ke spuštění aplikace. Tento krok je nutný, pokud chcete balíček spustit přímo.
Vytvořte archiv ZIP se všemi položkami ve vašem projektu. V případě dotnet projektů je tato složka výstupní složkou dotnet publish příkazu. Následující příkaz využívá základní nástroj vašeho terminálu:
# Bash
zip -r <file-name>.zip .
# PowerShell
Compress-Archive -Path * -DestinationPath <file-name>.zip
Nasazení balíčku ZIP
při nasazení balíčku ZIP App Service rozbalí jeho obsah ve výchozí cestě pro vaši aplikaci ( D:\home\site\wwwroot pro Windows pro /home/site/wwwroot Linux).
Toto nasazení balíčku ZIP používá stejnou službu Kudu, která je založena na kontinuální integraci nasazení. Kudu podporuje následující funkce nasazení balíčku ZIP:
- Odstranění souborů zbývajících z předchozího nasazení.
- Možnost zapněte výchozí proces sestavení, který zahrnuje obnovení balíčku.
- Přizpůsobení nasazení, včetně spuštěných skriptů nasazení.
- Protokoly nasazení.
- Omezení velikosti balíčku 2048 MB.
Další informace najdete v dokumentaci k Kudu.
Poznámka
Soubory v balíčku ZIP jsou zkopírovány pouze v případě, že časová razítka se neshodují s tím, co je již nasazeno Generování souboru ZIP pomocí procesu sestavení, který ukládá do mezipaměti výstupy, může mít za následek rychlejší nasazení. Další informace najdete v tématu nasazení ze souboru ZIP nebo adresy URL.
Pomocí příkazu AZ WebApp Deploy nasaďte do své webové aplikace balíček zip. Příkaz CLI používá k nasazení souborů rozhraní API Kudu pro publikování a může být plně přizpůsobený.
Následující příklad vloží do webu balíček ZIP. Zadejte cestu k vašemu místnímu balíčku ZIP pro --src-path .
az webapp deploy --resource-group <group-name> --name <app-name> --src-path <zip-package-path>
Tento příkaz po nasazení balíčku ZIP restartuje aplikaci.
V závislosti na konfiguraci sítě webových aplikací se může zablokovat přímý přístup k lokalitě z místního prostředí. Chcete-li nasadit kód v tomto scénáři, můžete publikovat PSČ do úložného systému dostupného z webové aplikace a aktivovat aplikaci , aby přečetla PSČ z umístění úložiště místo vložení souboru zip do webové aplikace. Další informace najdete v tomto článku o nasazení na webové aplikace zabezpečené přes síť .
následující příklad používá --src-url parametr k určení adresy URL Azure Storage účtu, ze kterého by měl web získat soubor ZIP.
az webapp deploy --resource-group <grou-name> --name <app-name> --src-url "https://storagesample.blob.core.windows.net/sample-container/myapp.zip?sv=2021-10-01&sb&sig=slk22f3UrS823n4kSh8Skjpa7Naj4CG3
Povolit automatizaci sestavení pro nasazení ZIP
Ve výchozím nastavení modul pro nasazení předpokládá, že je balíček ZIP připravený ke spuštění tak, jak je, a nespustí automatizaci sestavení. Pokud chcete povolit stejné automatizace sestavení jako v nasazení Git, nastavte SCM_DO_BUILD_DURING_DEPLOYMENT nastavení aplikace spuštěním následujícího příkazu v Cloud Shell:
az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
Další informace najdete v dokumentaci k Kudu.
Co se stane s aplikací během nasazování?
Všechny oficiálně podporované metody nasazení mění soubory ve složce /home/site/wwwroot vaší aplikace. Tyto soubory se používají ke spuštění vaší aplikace. Nasazení proto může selhat z důvodu uzamčených souborů. Aplikace se také může chovat nepředvídatelně během nasazování, protože všechny soubory nejsou aktualizovány najednou. Toto chování je nežádoucí pro aplikaci pro zákazníky. Existuje několik způsobů, jak se těmto problémům vyhnout:
- Spusťte aplikaci přímo z balíčku ZIP,aniž byste ji rozbalili.
- Zastavte aplikaci nebo pro ní během nasazování povolte offline režim. Další informace najdete v tématu Řešení uzamčených souborů během nasazování.
- Nasazení do pracovního slotu se zapnutým automatickým prohozením
Nasadit balíčky WAR/JAR/ušní
Můžete nasadit balíček War, JARnebo ušní App Service ke spuštění webové aplikace v jazyce Java pomocí rozhraní příkazového řádku Azure CLI, PowerShellu nebo rozhraní API pro publikování v Kudu.
Proces nasazení umístí balíček správně na jednotku sdíleného souboru (viz Referenční dokumentace rozhraní API pro Kudu). Z tohoto důvodu se nedoporučuje nasazovat balíčky WAR/JAR/ušní pomocí FTP nebo WebDeploy.
Pomocí příkazu AZ WebApp Deploy nasaďte balíček War do Tomcat nebo JBoss EAP. Zadejte cestu k místnímu balíčku Java pro --src-path .
az webapp deploy --resource-group <group-name> --name <app-name> --src-path ./<package-name>.war
V závislosti na konfiguraci sítě webových aplikací se může zablokovat přímý přístup k lokalitě z místního prostředí. Chcete-li nasadit kód v tomto scénáři, můžete publikovat PSČ do úložného systému dostupného z webové aplikace a aktivovat aplikaci , aby přečetla PSČ z umístění úložiště místo vložení souboru zip do webové aplikace. Další informace najdete v tomto článku o nasazení na webové aplikace zabezpečené přes síť .
následující příklad používá --src-url parametr k určení adresy URL Azure Storage účtu, ze kterého by měla webová aplikace získat soubor ZIP.
az webapp deploy --resource-group <grou-name> --name <app-name> --src-url "https://storagesample.blob.core.windows.net/sample-container/myapp.war?sv=2021-10-01&sb&sig=slk22f3UrS823n4kSh8Skjpa7Naj4CG3
Příkaz CLI používá k nasazení balíčku rozhraní API Kudu a může být plně přizpůsobený.
Nasazení jednotlivých souborů
Do své webové aplikace nasaďte spouštěcí skript, knihovnu a statický soubor pomocí příkazu AZ WebApp Deploy s --type parametrem.
Pokud nasadíte spouštěcí skript tímto způsobem, App Service automaticky použít skript ke spuštění aplikace.
Příkaz CLI používá k nasazení souborů rozhraní API Kudu pro publikování a může být plně přizpůsobený.
Nasazení spouštěcího skriptu
az webapp deploy --resource group <group-name> --name <app-name> --src-path scripts/startup.sh --type=startup
Nasazení souboru knihovny
az webapp deploy --resource group <group-name> --name <app-name> --src-path driver.jar --type=lib
Nasazení statického souboru
az webapp deploy --resource group <group-name> --name <app-name> --src-path config.json --type=static
Reference k rozhraní API pro publikování v Kudu
publishRozhraní Kudu API umožňuje zadat stejné parametry z příkazu CLI jako parametry dotazu URL. K ověřování pomocí rozhraní Kudu API můžete použít základní ověřování s přihlašovacími údaji nasazenívaší aplikace.
Následující tabulka obsahuje dostupné parametry dotazu, jejich povolené hodnoty a popisy.
| Klíč | Povolené hodnoty | Popis | Povinné | Typ |
|---|---|---|---|---|
type |
war|jar|ear|lib|startup|static|zip |
Typ nasazované artefaktu nastaví výchozí cílovou cestu a informuje webovou aplikaci, jak by mělo být nasazení zpracováno. - type=zip: Nasaďte balíček ZIP tím, že rozbalíte obsah na /home/site/wwwroot . path Parametr je volitelný. - type=war: Nasaďte balíček WAR. Ve výchozím nastavení se balíček WAR nasadí do /home/site/wwwroot/app.war . Cílovou cestu je možné zadat pomocí path . - type=jar: Nasaďte balíček JAR do /home/site/wwwroot/app.jar . Parametr path se ignoruje. - type=ear: Nasaďte balíček EAR do /home/site/wwwroot/app.ear . Parametr path se ignoruje. - type=lib: Nasaďte soubor knihovny JAR. Ve výchozím nastavení se soubor nasadí do /home/site/libs . Cílovou cestu je možné zadat pomocí path . - type=static: Nasaďte statický soubor (např. skript). Ve výchozím nastavení se soubor nasadí do /home/site/scripts . Cílovou cestu je možné zadat pomocí path . - type=startup: Nasaďte skript, App Service automaticky použije jako spouštěcí skript pro vaši aplikaci. Ve výchozím nastavení se skript nasadí do pro Windows a D:\home\site\scripts\<name-of-source> home/site/wwwroot/startup.sh pro Linux. Cílovou cestu je možné zadat pomocí path . |
Ano | Řetězec |
restart |
true|false |
Ve výchozím nastavení rozhraní API restartuje aplikaci po operaci nasazení ( restart=true ). Pokud chcete nasadit více artefaktů, zabraňte restartování všech artefaktů , ale až na konečné nasazení nastavením restart=false . |
No | Logická hodnota |
clean |
true|false |
Určuje, jestli se má cílové nasazení před nasazením artefaktu vyčistit (odstranit). | No | Logická hodnota |
ignorestack |
true|false |
Rozhraní API pro publikování používá WEBSITE_STACK proměnnou prostředí k výběru bezpečných výchozích hodnot v závislosti na zásobníku jazyka vašeho webu. Nastavením tohoto parametru false zakážete výchozí nastavení pro konkrétní jazyk. |
No | Logická hodnota |
path |
"<absolute-path>" |
Absolutní cesta k nasazení artefaktu. Například , "/home/site/deployments/tools/driver.jar" "/home/site/scripts/helper.sh" . |
No | Řetězec |
Další kroky
V případě pokročilejších scénářů nasazení zkuste nasazení do Azure pomocí Gitu. Nasazení do Azure založené na Gitu umožňuje správu verzí, obnovení balíčků, MSBuild a další.