Sdílet prostřednictvím


Nasazení souborů do služby Azure 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 nemáte účet Azure, vytvořte si bezplatný účet 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ář. Do kořenového adresáře zahrňte pouze soubory a adresáře. 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ává vnořené adresáře na nejvyšší úrovni, což nefunguje 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 vaší webové aplikace, například index.html, index.phpa app.js. Může také obsahovat soubory správy balíčků, jako jsou project.json, composer.json, package.json, bower.jsona 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, , bowergulp, composera pip. Ujistě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 projektů dotnet přidejte vše ve výstupním adresáři příkazu dotnet publish, s výjimkou samotného výstupního adresáře. Zadáním následujícího příkazu v terminálu vytvořte například balíček ZIP, který obsahuje obsah 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, služba App Service rozbalí její obsah ve výchozí cestě pro vaši aplikaci: D:\home\site\wwwroot pro Windows a /home/site/wwwroot 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í
  • Limit velikosti balíčku 2 048 megabajtů

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é.

Nasazení pomocí uživatelského rozhraní ZIP deploy v Kudu

  1. Otevřete aplikaci na webu Azure Portal a vyberteRozšířené nástroje>pro vývoja pak vyberte Přejít.
  2. V Kudu vyberte Nástroje>Zip Push Deploy.
  3. Nahrajte balíček ZIP, který jste vytvořili v balíčku ZIP pro vytvoření projektu. Přetáhněte ho do oblasti Průzkumníka souborů na webové stránce.

Při probíhajícím nasazení se v pravém horním rohu zobrazí ikona s procentuálním ukazatelem průběhu. Stránka také zobrazuje zprávy o operaci v oblasti pod Průzkumníkem souborů. Po dokončení nasazení by poslední zpráva měla obsahovat text "Nasazení bylo úspěšné".

Tento koncový bod v současnosti nefunguje pro Službu App Service v Linuxu. Místo toho zvažte použití protokolu FTP nebo rozhraní ZIP Deploy API .

Nasazení v Kudu bez použití ZIP deploy v uživatelském rozhraní

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

Následující příklad pošle balíček ZIP na váš 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í 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í použitou v nasazení Gitu, nastavte SCM_DO_BUILD_DURING_DEPLOYMENT nastavení aplikace. Spusťte následující příkaz v Azure 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.

Nasazení balíčků WAR, JAR nebo EAR

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

Zde uvedený proces nasazení umístí balíček do sdílené složky obsahu aplikace se správnou konvencí pojmenování a adresářovou strukturou. Další informace najdete v tématu Referenční informace k rozhraní API pro publikování Kudu. Tento přístup doporučujeme. Pokud místo toho nasadíte balíčky WAR, JAR nebo EAR pomocí ftp nebo nasazení webu, 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 na server 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á Kudu publish API pro 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í az webapp deploy příkazu 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á Kudu publish API k nasazení souborů. Příkaz lze 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ími

V závislosti na konfiguraci sítě vaší webové aplikace může být přímý přístup k aplikaci z vývojového prostředí zablokovaný. (Viz Nasazení do lokalit zabezpečených sítí a nasazení do sítí zabezpečených lokalit, čá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ě, který je přístupný z webové aplikace, a aktivovat aplikaci tak, aby načítá 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 sdíleného přístupového podpisu (SAS) pro jeho ochranu.

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 API rozhraní pro publikování Kudu

API publish Kudu umožňuje zadat stejné parametry z příkazu CLI jako parametry dotazu URL. Pokud se chcete ověřit pomocí rozhraní Kudu REST API, doporučujeme ověření tokenu, 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.

Klíč Povolené hodnoty Popis Povinné Typ
type war|jar|ear|lib|startup|static|zip Toto je 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 rozbalením obsahu do /home/site/wwwroot. 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.war . Cílovou cestu lze zadat pomocí parametru target-path.

type=jar: Nasaďte balíček JAR na /home/site/wwwroot/app.jar. Parametr target-path je ignorován.

type=ear: Nasaďte balíček EAR na /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/libs. 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/wwwroot.

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 Řetězec
restart true|false Ve výchozím nastavení rozhraní API restartuje aplikaci po operaci nasazení (restart=true). Když nasazujete více artefaktů, můžete zabránit restartování u všech nasazení kromě posledního nastavením restart=false. Ne Boolovská logika
clean true|false Určuje, jestli se má cílová oblast nasazení před nasazením artefaktu vyčistit (odstranit). Ne Boolovská logika
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. Ne Boolovská logika
target-path Absolutní cesta Absolutní cesta, kam nasadit artefakt. Například /home/site/deployments/tools/driver.jar nebo /home/site/scripts/helper.sh. Ne Řetězec

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