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:

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ší.

Další zdroje informací