Nasazení souborů do služby App Service

V tomto článku se dozvíte, jak nasadit kód jako balíček ZIP, WAR, JAR nebo EAR do služby Aplikace Azure Service. Také ukazuje, jak nasadit jednotlivé soubory do služby App Service odděleně od balíčku aplikace.

Požadavky

Pokud chcete dokončit kroky v tomto článku, vytvořte aplikaci služby App Service nebo použijte aplikaci, kterou jste vytvořili pro jiný kurz.

Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.

Vytvoření balíčku ZIP projektu

Důležité

Při vytváření balíčku ZIP pro nasazení nezahrnujte kořenový adresář, ale pouze soubory a adresáře v něm. Pokud si stáhnete úložiště GitHub jako soubor ZIP, nemůžete tento soubor nasadit tak, jak je ve službě App Service. GitHub přidá další vnořené adresáře na nejvyšší úrovni, které nefungují se službou App Service.

V okně místního terminálu přejděte do kořenového adresáře projektu aplikace.

Tento adresář by měl obsahovat vstupní soubor webové aplikace, například index.html, index.php a app.js. Může také obsahovat soubory správy balíčků, jako jsou project.json, composer.json, package.json, bower.json a requirements.txt.

Pokud nechcete, aby služba App Service spouštěla automatizaci nasazení za vás, spusťte všechny úlohy sestavení (například npm, bower, gulp, composera) a pipujistěte se, že máte všechny soubory, které potřebujete ke spuštění aplikace. Tento krok se vyžaduje, pokud chcete balíček spustit přímo.

Vytvořte archiv ZIP se všemi položkami ve vašem projektu. U dotnet projektů je to všechno ve výstupním adresáři dotnet publish příkazu (s výjimkou samotného výstupního adresáře). Například následující příkaz v terminálu pro vytvoření balíčku ZIP s obsahem aktuálního adresáře:

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

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

Nasazení balíčku ZIP

Když nasadíte balíček ZIP, App Service rozbalí jeho obsah ve výchozí cestě pro vaši aplikaci (D:\home\site\wwwroot pro Windows, /home/site/wwwroot pro Linux).

Toto nasazení balíčku ZIP používá stejnou službu Kudu, která zajišťuje průběžné nasazování založené na integraci. Kudu podporuje následující funkce pro nasazení balíčku ZIP:

  • Odstranění souborů z předchozího nasazení.
  • Možnost zapnout výchozí proces sestavení, který zahrnuje obnovení balíčku.
  • Přizpůsobení nasazení, včetně spouštění skriptů nasazení
  • Protokoly nasazení
  • Omezení velikosti balíčku 2048 MB.

Poznámka:

Soubory v balíčku ZIP se zkopírují jenom v případě, že jejich časová razítka neodpovídají tomu, co je už nasazené.

S uživatelským rozhraním pro nasazení zip v Kudu

V prohlížeči přejděte na adresu https://<app_name>.scm.azurewebsites.net/ZipDeployUI.

Nahrajte balíček ZIP, který jste vytvořili v balíčku ZIP projektu, přetažením do oblasti Průzkumníka souborů na webové stránce.

V průběhu nasazování ukazuje ikona v pravém horním rohu průběh nasazování v procentech. Na stránce se pod oblastí průzkumníka zobrazí také podrobné zprávy o operaci. Po dokončení nasazení by měla poslední zpráva říct Deployment successful.

Výše uvedený koncový bod v tuto chvíli nefunguje pro Linux App Services. Místo toho zvažte použití protokolu FTP nebo rozhraní ZIP Deploy API .

Bez uživatelského rozhraní pro nasazení zip v Kudu

Nasaďte do webové aplikace balíček ZIP pomocí příkazu az webapp deploy . Příkaz rozhraní příkazového řádku používá rozhraní API pro publikování Kudu k nasazení souborů a dá se plně přizpůsobit.

Následující příklad nasdílí balíček ZIP na web. Zadejte cestu k 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 restartuje aplikaci po nasazení balíčku ZIP.

Povolení automatizace sestavení pro nasazení souboru ZIP

Ve výchozím nastavení modul nasazení předpokládá, že balíček ZIP je připravený spustit tak, jak je, a nespustí žádnou automatizaci sestavení. Pokud chcete povolit stejnou automatizaci 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 Shellu:

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.

Nasazení balíčků WAR/JAR/EAR

Balíček WAR, JAR nebo EAR můžete nasadit do služby App Service a spustit webovou aplikaci v Javě pomocí Azure CLI, PowerShellu nebo rozhraní API pro publikování Kudu.

Tady uvedený proces nasazení umístí balíček do sdílené složky obsahu aplikace se správnou konvencí pojmenování a adresářovou strukturou (viz referenční informace k rozhraní API pro publikování Kudu) a je to doporučený postup. Pokud místo toho nasadíte balíčky WAR/JAR/EAR pomocí protokolu FTP nebo WebDeploy, může dojít k neznámým selháním kvůli chybám v pojmenování nebo struktuře.

Nasaďte balíček WAR do protokolu Tomcat nebo JBoss EAP pomocí příkazu az webapp deploy . 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

Příkaz rozhraní příkazového řádku používá rozhraní API pro publikování Kudu k nasazení balíčku a je možné ho plně přizpůsobit.

Nasazení jednotlivých souborů

Nasaďte do webové aplikace spouštěcí skript, knihovnu a statický soubor pomocí příkazu az webapp deploy s parametrem --type .

Pokud tímto způsobem nasadíte spouštěcí skript, app Service automaticky spustí vaši aplikaci pomocí skriptu.

Příkaz rozhraní příkazového řádku používá rozhraní API pro publikování Kudu k nasazení souborů a dá se plně přizpůsobit.

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

Nasazení do aplikací zabezpečených sítí

V závislosti na konfiguraci sítě vaší webové aplikace může být přímý přístup k aplikaci z vašeho vývojového prostředí zablokovaný (viz Nasazení na weby zabezpečené sítí a nasazení do lokalit zabezpečených sítí, část 2). Místo toho, abyste balíček nebo soubor nasdílel přímo do webové aplikace, můžete ho publikovat do systému úložiště přístupného z webové aplikace a aktivovat aplikaci pro načtení souboru ZIP z umístění úložiště.

Vzdálená adresa URL může být libovolné veřejně přístupné umístění, ale nejlepší je použít kontejner úložiště objektů blob s klíčem SAS k jeho ochraně.

Použijte příkaz jako az webapp deploy v ostatních částech, ale použijte --src-url místo --src-path. Následující příklad používá --src-url parametr k určení adresy URL souboru ZIP hostovaného v účtu azure Storage.

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

Referenční informace k rozhraní API pro publikování Kudu

Rozhraní publish Kudu API umožňuje zadat stejné parametry z příkazu rozhraní příkazového řádku jako parametry dotazu adresy URL. Pokud se chcete ověřit pomocí rozhraní Kudu REST API, je nejlepší použít ověřování pomocí tokenů, ale můžete také použít základní ověřování s přihlašovacími údaji pro nasazení vaší aplikace.

Následující tabulka ukazuje dostupné parametry dotazu, jejich povolené hodnoty a popisy.

Key Povolené hodnoty Popis Povinní účastníci Typ
type war|jar|ear|lib|startup|static|zip Typ nasazeného artefaktu nastaví výchozí cílovou cestu a informuje webovou aplikaci, jak se má nasazení zpracovat.
- type=zip: Nasaďte balíček ZIP tak, že obsah rozbalíte do /home/site/wwwrootsouboru . target-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.warsouboru . Cílovou cestu lze zadat pomocí parametru target-path.
- type=jar: Nasaďte balíček JAR do /home/site/wwwroot/app.jarsouboru . Parametr target-path je ignorován.
- type=ear: Nasaďte do souboru EAR balíček /home/site/wwwroot/app.ear. Parametr target-path je ignorován.
- type=lib: Nasaďte soubor knihovny JAR. Ve výchozím nastavení se soubor nasadí do /home/site/libssouboru . Cílovou cestu lze zadat pomocí parametru target-path.
- type=static: Nasaďte statický soubor (například skript). Ve výchozím nastavení se soubor nasadí do /home/site/wwwrootsouboru .
- type=startup: Nasaďte skript, který App Service automaticky používá jako spouštěcí skript pro vaši aplikaci. Ve výchozím nastavení je skript nasazený pro D:\home\site\scripts\<name-of-source> Windows a home/site/wwwroot/startup.sh Linux. Cílovou cestu lze zadat pomocí parametru target-path.
Ano String
restart true|false Ve výchozím nastavení rozhraní API restartuje aplikaci po operaci nasazení (restart=true). Pokud chcete nasadit více artefaktů, zabráníte restartování ve všech, ale i posledním 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á proměnnou WEBSITE_STACK 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šechny výchozí hodnoty specifické pro jazyk. No Logická hodnota
target-path Absolutní cesta Absolutní cesta k nasazení artefaktu. Například , "/home/site/deployments/tools/driver.jar""/home/site/scripts/helper.sh". No String

Další kroky

Pokud chcete pokročilejší scénáře nasazení, zkuste nasazení do Azure pomocí Gitu. Nasazení založené na Gitu do Azure umožňuje správu verzí, obnovení balíčků, MSBuild a další.

Další materiály