AzureWebApp@1 – úloha Azure Web App v1

Tato úloha nasadí webovou aplikaci Azure pro Linux nebo Windows.

Syntax

# Azure Web App v1
# Deploy an Azure Web App for Linux or Windows.
- task: AzureWebApp@1
  inputs:
    azureSubscription: # string. Required. Azure subscription. 
    appType: # 'webApp' | 'webAppLinux'. Required. App type. 
    appName: # string. Required. App name. 
    #deployToSlotOrASE: false # boolean. Optional. Use when appType != "". Deploy to Slot or App Service Environment. Default: false.
    #resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group. 
    #slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
    package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #customDeployFolder: # string. Optional. Use when package EndsWith .war. Custom Deploy Folder. 
    #runtimeStack: # string. Optional. Use when appType = webAppLinux. Runtime stack. 
    #startUpCommand: # string. Optional. Use when appType = webAppLinux. Startup command. 
  # Application and Configuration Settings
    #customWebConfig: # string. Optional. Use when appType != webAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps. 
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != webAppLinux && appType != "" && package NotEndsWith .war && package NotEndsWith .jar. Deployment method. Default: auto.
# Azure Web App v1
# Deploy an Azure Web App for Linux or Windows.
- task: AzureWebApp@1
  inputs:
    azureSubscription: # string. Required. Azure subscription. 
    appType: # 'webApp' | 'webAppLinux'. Required. App type. 
    appName: # string. Required. App name. 
    #deployToSlotOrASE: false # boolean. Optional. Use when appType != "". Deploy to Slot or App Service Environment. Default: false.
    #resourceGroupName: # string. Required when deployToSlotOrASE = true. Resource group. 
    #slotName: 'production' # string. Required when deployToSlotOrASE = true. Slot. Default: production.
    package: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #runtimeStack: # string. Optional. Use when appType = webAppLinux. Runtime stack. 
    #startUpCommand: # string. Optional. Use when appType = webAppLinux. Startup command. 
  # Application and Configuration Settings
    #customWebConfig: # string. Optional. Use when appType != webAppLinux && package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps. 
    #appSettings: # string. App settings. 
    #configurationStrings: # string. Configuration settings. 
  # Additional Deployment Options
    #deploymentMethod: 'auto' # 'auto' | 'zipDeploy' | 'runFromPackage'. Required when appType != webAppLinux && appType != "" && package NotEndsWith .war && package NotEndsWith .jar. Deployment method. Default: auto.

Vstupy

azureSubscription - Předplatné Azure
string. Povinná hodnota.

Určuje připojení předplatného Azure Resource Manager pro nasazení.


appType - Typ aplikace
string. Povinná hodnota. Povolené hodnoty: webApp (Webová aplikace ve Windows) webAppLinux (Webová aplikace v Linuxu).

Určuje typ webové aplikace Azure.


appName - Název aplikace
string. Povinná hodnota.

Určuje název existujícího Azure App Service. Zobrazí se pouze aplikační služby, které jsou založené na vybraném typu aplikace.


deployToSlotOrASE - Nasazení do slotu nebo App Service Environment
boolean. Nepovinný parametr. Použijte, když appType != "". Výchozí hodnota: false.

Vybere možnost nasazení do existujícího slotu nasazení nebo Azure App Service prostředí.
Pro oba cíle úkol potřebuje název skupiny prostředků.
Pokud je cílem nasazení slot, výchozí je produkční slot. Můžete také zadat jakýkoli jiný existující název slotu.
Pokud je cílem nasazení Azure App Service Environment, ponechte název slotu jako produkční a zadejte název skupiny prostředků.


resourceGroupName - Skupina prostředků
string. Vyžaduje se, když deployToSlotOrASE = true.

Název skupiny prostředků se vyžaduje, pokud je cílem nasazení slot nasazení nebo Azure App Service prostředí.
Určuje skupinu prostředků Azure, která obsahuje výše uvedené Azure App Service.


slotName - Slot
string. Vyžaduje se, když deployToSlotOrASE = true. Výchozí hodnota: production.

Určuje existující slot s výjimkou produkčního slotu.


package - Balíček nebo složka
string. Povinná hodnota. Výchozí hodnota: $(System.DefaultWorkingDirectory)/**/*.zip.

Cesta k souboru balíčku nebo složky, která obsahuje App Service obsah vygenerovaný nástrojem MSBuild, komprimovaný soubor ZIP nebo war soubor. Podporují se proměnné (verze buildu | ) a zástupné é ou. Příkladem je $(System.DefaultWorkingDirectory)/**/*.zip nebo $(System.DefaultWorkingDirectory)/**/*.war.


customDeployFolder - Vlastní složka nasazení
string. Nepovinný parametr. Použijte, když package EndsWith .war.

Určuje název vlastní složky, do které chcete nasadit.
Pokud je pole prázdné, balíček se nasadí do <appname>.azurewebsites.net/<warpackagename>.
Pokud zadáte root, balíček se nasadí do <appname>.azurewebsited.net.
Ve všech ostatních instancích se nasadí do <appname>.azurewebsited.net/<customWarName>.


runtimeStack - Zásobník modulu runtime
string. Nepovinný parametr. Použijte, když appType = webAppLinux.

Webová aplikace v Linuxu nabízí dvě různé možnosti publikování aplikace: nasazení vlastní image (Web App for Containers) a nasazení aplikace s integrovanou imagí platformy (Web App v Linuxu). Tento parametr je k dispozici pouze v případě, že je v úloze jako typ aplikace vybraná webová aplikace pro Linux .


startUpCommand - Spouštěcí příkaz
string. Nepovinný parametr. Použijte, když appType = webAppLinux.

Určuje spouštěcí příkaz.
Příklad:
dotnet run
dotnet filename.dll.


customWebConfig - Generování parametrů web.config pro aplikace Python, Node.js, Go a Java
string. Nepovinný parametr. Použijte, když appType != webAppLinux && package NotEndsWith .war.

Pokud aplikace nemá, vygeneruje se standardní web.config a nasadí se do Azure App Service. Hodnoty v web.config se liší v závislosti na architektuře aplikace a je možné je upravovat. Například pro aplikaci node.js bude mít web.config spouštěcí soubor a iis_node hodnoty modulu. Tato funkce úprav je určena pouze pro vygenerované web.config.


appSettings - Nastavení aplikace
string.

Zadejte nastavení webové aplikace pomocí syntaxe -key value (například:-RequestTimeout 5000-Port 5000-WEBSITE_TIME_ZONE ). Uzavřete hodnoty, které obsahují mezery v dvojitých uvozovkách (například: "Eastern Standard Time").


configurationStrings - Nastavení konfigurace
string.

Zadejte nastavení konfigurace webové aplikace pomocí syntaxe -key value (například: -phpVersion 5.6-linuxFxVersion: node|6.11). Uzavře hodnoty, které obsahují mezery v dvojitých uvozovkách.


deploymentMethod - Metoda nasazení
string. Vyžaduje se, když appType != webAppLinux && appType != "" && package NotEndsWith .war && package NotEndsWith .jar. Povolené hodnoty: auto (Auto-detect), zipDeploy (Zip Deploy) runFromPackage (Spustit z balíčku). Výchozí hodnota: auto.

Zvolte metodu nasazení aplikace. Přijatelné hodnoty jsou auto, zipDeploy a runFromPackage.


Možnosti ovládání úloh

Všechny úlohy mají kromě vstupů také možnosti ovládání. Další informace najdete v tématu Možnosti ovládacího prvku a běžné vlastnosti úlohy.

Výstupní proměnné

Tato úloha definuje následující výstupní proměnné, které můžete využívat v podřízených krocích, úlohách a fázích.

AppServiceApplicationUrl
Adresa URL aplikace vybraného Azure App Service.

Poznámky

Tuto úlohu použijte k nasazení webových aplikací do Azure App Service.

Metody nasazení

V této úloze je k dispozici několik metod nasazení. Auto je výchozí možnost.

Pokud chcete změnit možnost nasazení na základě balíčku v úloze návrháře, rozbalte další možnosti nasazení a povolte Možnost Vybrat metodu nasazení.

Na základě typu Azure App Service a agenta Azure Pipelines úloha zvolí vhodnou technologii nasazení. Mezi různé technologie nasazení, které úloha používá, patří:

  • Rozhraní REST API Kudu
  • Nasazení souboru ZIP
  • SpustitFromPackage

Ve výchozím nastavení se úloha pokusí vybrat příslušnou technologii nasazení vzhledem ke vstupnímu balíčku, typu služby App Service a operačnímu systému agenta.

  • Pokud je typ služby App Service Web App v linuxové aplikaci, použijte nasazení zipu.
  • Pokud je k dispozici soubor War, použijte nasazení války.
  • Pokud je k dispozici soubor JAR, použijte příkaz Spustit z balíčku.
  • Pro všechny ostatní použijte příkaz Spustit ze souboru Zip (prostřednictvím nasazení zipu).

U agenta jiného systému než Windows (pro libovolný typ služby App Service) se úloha při nasazení webové aplikace spoléhá na rozhraní Kudu REST API .

Rozhraní REST API Kudu

Rozhraní Kudu REST API fungují na agentech automatizace pro Windows nebo Linux, pokud je cílem webová aplikace ve Windows, webová aplikace v Linuxu (integrovaný zdroj) nebo aplikace funkcí. Úloha pomocí Kudu zkopíruje soubory do Azure App Service.

Nasazení souboru ZIP

Vytvoří .zip balíček nasazení vybraného balíčku nebo složky. Obsah souboru se pak nasadí do složky wwwroot aplikace funkcí v Azure App Service. Tato možnost přepíše veškerý existující obsah ve složce wwwroot. Další informace najdete v tématu Nasazení souboru ZIP pro Azure Functions.

SpustitFromPackage

Vytvoří stejný balíček pro nasazení jako Zip Deploy. Místo nasazení souborů do složky wwwroot se ale celý balíček připojí pomocí modulu runtime Azure Functions. Při této možnosti se soubory ve složce wwwroot stanou jen pro čtení. Další informace najdete v tématu věnovaném spouštění Azure Functions ze souboru balíčku.

Chyba: Nepodařilo se načíst přístupový token pro Azure. Ověřte, jestli je použitý instanční objekt platný a nevypršela jeho platnost.

Úloha používá instanční objekt v připojení služby k ověření v Azure. Pokud vypršela platnost instančního objektu nebo nemá oprávnění k App Service, úloha selže s touto chybou. Ověřte platnost použitého instančního objektu a to, že je k dispozici v registraci aplikace. Další informace najdete v tématu Použití řízení přístupu na základě role ke správě přístupu k prostředkům předplatného Azure. Tento blogový příspěvek obsahuje také další informace o použití ověřování instančního objektu.

Chyba SSL

Pokud chcete použít certifikát v App Service, musí být certifikát podepsaný důvěryhodnou certifikační autoritou. Pokud webová aplikace zobrazí chyby ověření certifikátu, pravděpodobně používáte certifikát podepsaný svým držitelem. Pokud chcete chybu vyřešit, nastavte proměnnou s názvem VSTS_ARM_REST_IGNORE_SSL_ERRORS na hodnotu true v kanálu buildu nebo verze.

Vydání se na dlouhou dobu zasekne a pak selže

Příčinou tohoto problému může být nedostatečná kapacita ve vašem plánu App Service. Pokud chcete tento problém vyřešit, můžete vertikálně navýšit kapacitu instance App Service a zvětšit dostupný procesor, paměť RAM a místo na disku nebo zkusit použít jiný plán App Service.

Chybové kódy 5xx

Pokud se zobrazí chyba 5xx , zkontrolujte stav služby Azure.

Funkce Azure Functions náhle přestala fungovat

Azure Functions může náhle přestat fungovat, pokud od posledního nasazení uplynul více než jeden rok. Pokud nasadíte pomocí runFromPackage v "deploymentMethod", vygeneruje se SAS s datem vypršení platnosti 1 rok a v konfiguraci aplikace se nastaví jako hodnota "WEBSITE_RUN_FROM_PACKAGE". Azure Functions používá tento SAS k odkazování na soubor balíčku pro provádění funkce, takže pokud platnost sdíleného přístupového podpisu vyprší, funkce se nespustí. Pokud chcete tento problém vyřešit, nasaďte ho znovu a vygenerujte sdílený přístupový podpis s datem vypršení platnosti jeden rok.

Chyba: nenašel se žádný balíček se zadaným vzorem.

Zkontrolujte, jestli se balíček uvedený v úloze publikoval v sestavení nebo předchozí fázi jako artefakt a stáhnul se v aktuální úloze.

Chyba: Typ balíčku msBuild nepodporuje publikování pomocí možnosti nasazení zip.

Webové balíčky vytvořené prostřednictvím úlohy MSBuild (s výchozími argumenty) mají vnořenou strukturu složek, kterou lze správně nasadit pouze nasazením webu. Možnost nasazení publish-to-zip nejde použít k nasazení těchto balíčků. Pokud chcete převést strukturu balení, postupujte takto:

  1. V úloze Sestavit řešení změňte argumenty MSBuild na /p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl="$(System.DefaultWorkingDirectory)\\WebAppContent":

    Snímek obrazovky znázorňující hodnoty sestavení řešení

  2. Přidejte úlohu Archivovat a následujícím způsobem změňte hodnoty:

    1. Změňte kořenovou složku nebo soubor, který chcete archivovat , na $(System.DefaultWorkingDirectory)\\WebAppContent.

    2. Zrušte zaškrtnutí políčka Před název kořenové složky archivovat cesty :

      Snímek obrazovky znázorňující archivní hodnoty

Nejčastější dotazy

Jaký je rozdíl mezi AzureWebApp úkoly a AzureRmWebAppDeployment ?

Úloha webové aplikace Azure (AzureWebApp) představuje nejjednodušší způsob nasazení do webové aplikace Azure. Ve výchozím nastavení se nasazení provede s kořenovou aplikací ve webové aplikaci Azure.

Úloha Azure App Service Deploy (AzureRmWebAppDeployment) dokáže zpracovat více vlastních scénářů, jako jsou:

Poznámka

Transformace souborů a nahrazení proměnných jsou podporovány také samostatnou úlohou Transformace souborů pro použití v Azure Pipelines. Pomocí úlohy Transformace souboru můžete použít transformace souborů a nahrazení proměnných u všech konfiguračních souborů a souborů parametrů.

Nasazení webové aplikace ve Windows proběhlo úspěšně, ale aplikace nefunguje

Důvodem může být to, že web.config ve vaší aplikaci neexistuje. Můžete buď přidat web.config soubor do zdroje, nebo ho automaticky vygenerovat pomocí nastavení aplikace a konfigurace.

  • Klikněte na úlohu a přejděte do části Generování parametrů web.config pro aplikace Python, Node.js, Go a Java.

    Snímek obrazovky s dialogovým oknem Generovat parametry web.config

  • Kliknutím na tlačítko ... Další upravte parametry.

    Snímek obrazovky s dialogovým oknem rozevíracího seznamu

  • V rozevíracím seznamu vyberte typ vaší aplikace.

  • Klikněte na tlačítko OK. Tím se naplní parametry web.config potřebné ke generování web.config.

Nasazení webové aplikace v prostředí App Service Environment (ASE) nefunguje

  • Ujistěte se, že je agent sestavení Azure DevOps ve stejné virtuální síti (podsíť může být jiná) jako interní Load Balancer (ILB) služby ASE. To agentu umožní načíst kód z Azure DevOps a nasadit ho do ASE.
  • Pokud používáte Azure DevOps, agent nemusí být přístupný z internetu, ale pro připojení ke službě Azure DevOps potřebuje jenom odchozí přístup.
  • Pokud používáte TFS/Azure DevOps Server nasazený v Virtual Network, je možné agenta zcela izolovat.
  • Agent sestavení musí být nakonfigurovaný s konfigurací DNS webové aplikace, do které se má nasadit. Privátní prostředky v Virtual Network nemají záznamy v Azure DNS, takže je potřeba je přidat do souboru hostitele na počítači agenta.
  • Pokud se pro konfiguraci SLUŽBY ASE používá certifikát podepsaný svým držitelem, -allowUntrusted je potřeba tuto možnost nastavit v úloze nasazení pro MSDeploy. Doporučuje se také nastavit proměnnou VSTS_ARM_REST_IGNORE_SSL_ERRORS na true. Pokud se pro konfiguraci služby ASE používá certifikát od certifikační autority, nemělo by to být nutné.

Jak mám nakonfigurovat připojení služby?

Tato úloha vyžaduje připojení služby Azure Resource Manager.

Jak mám nakonfigurovat nasazení webových úloh pomocí Application Insights?

Pokud nasazujete do App Service a máte nakonfigurovanou službu Application Insights a povolili Remove additional files at destinationjste , musíte také povolit Exclude files from the App_Data folder. Povolením této možnosti zajistíte, že rozšíření Application Insights bude v bezpečném stavu. Tento krok je povinný, protože nepřetržitá webová úloha Application Insights je nainstalovaná do složky App_Data.

Jak mám nakonfigurovat agenta, pokud je během nasazování do App Service za proxy serverem?

Pokud agent v místním prostředí vyžaduje webový proxy server, můžete o proxy serveru informovat agenta během konfigurace. Agent se tak bude moct připojit ke službě Azure Pipelines nebo Azure DevOps Server prostřednictvím proxy serveru. Přečtěte si další informace o spuštění agenta v místním prostředí za webovým proxy serverem.

Příklady

Následuje příklad fragmentu kódu YAML pro nasazení webové aplikace do webové App Service Azure spuštěné ve Windows.

variables:
  azureSubscription: Contoso
  # To ignore SSL error uncomment the below variable
  # VSTS_ARM_REST_IGNORE_SSL_ERRORS: true

steps:

- task: AzureWebApp@1
  displayName: Azure Web App Deploy
  inputs:
    azureSubscription: $(azureSubscription)
    appName: samplewebapp
    package: $(System.DefaultWorkingDirectory)/**/*.zip

Pokud chcete nasadit webovou aplikaci v Linuxu appType , přidejte parametr a nastavte ho na appType: webAppLinux.

Pokud chcete zadat metodu nasazení jako Zip Deploy, přidejte parametr deploymentMethod: zipDeploy. Další podporovaná hodnota tohoto parametru je runFromPackage.

Pokud není zadaný, auto je výchozí hodnota.

Požadavky

Požadavek Popis
Typy kanálů YAML, klasický build, klasická verze
Běží na Agent, DeploymentGroup
Požadavky Žádné
Možnosti Tento úkol nesplňuje žádné požadavky na následné úkoly v úloze.
Omezení příkazů Všechny
Nastavitelné proměnné Všechny
Verze agenta 2.104.1 nebo vyšší
Kategorie úloh Nasazení