Sdílet prostřednictvím


AzureWebApp@1 – úloha Webové aplikace Azure 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ého Azure
string. Požadovaný.

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


appType - typ aplikace
string. Požadovaný. Povolené hodnoty: webApp (webová aplikace ve Windows), webAppLinux (webová aplikace v Linuxu).

Určuje typ webové aplikace Azure.


názvu aplikace
string. Požadovaný.

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


deployToSlotOrASE - Nasazení do slotu nebo služby App Service Environment
boolean. Volitelný. Používá se při appType != "". Výchozí hodnota: false.

Vybere možnost nasazení do existujícího slotu nasazení nebo azure App Service Environment.
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ý název existujícího slotu.
Pokud je cílem nasazení Azure App Service Environment, ponechte název slotu jako produkční a zadejte název skupiny prostředků.


skupiny prostředků
string. Požadováno při deployToSlotOrASE = true.

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


slotu
string. Požadováno při 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. Požadovaný. Výchozí hodnota: $(System.DefaultWorkingDirectory)/**/*.zip.

Cesta k balíčku nebo složce, která obsahuje obsah služby App Service vygenerovaný nástrojem MSBuild, komprimovaný soubor ZIP nebo soubor war. Podporují se proměnné (Build | Release) a zástupné dokumentace. Například $(System.DefaultWorkingDirectory)/**/*.zip nebo $(System.DefaultWorkingDirectory)/**/*.war.


customDeployFolder - vlastní složky pro nasazení
string. Volitelný. Používá se při 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 je zadán root, balíček se nasadí do <appname>.azurewebsited.net.
Ve všech ostatních případech se nasadí do <appname>.azurewebsited.net/<customWarName>.


zásobníku modulu runtime
string. Volitelný. Používá se při 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 (Webová aplikace v Linuxu). Tento parametr je k dispozici pouze v případě, že webové aplikace pro Linux vyberete jako typ aplikace v úloze.


spouštěcího příkazu
string. Volitelný. Používá se při appType = webAppLinux.

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


customWebConfig - Generovat parametry web.config pro Python, Node.js, Go a Aplikace v Javě
string. Volitelný. Používá se při appType != webAppLinux && package NotEndsWith .war.

Standardní web.config se vygeneruje a nasadí do služby Azure App Service, pokud ji aplikace nemá. Hodnoty v web.config se liší v závislosti na aplikačním rozhraní a je možné je upravit. 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.


nastavení aplikace
string.

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


nastavení konfigurace configurationStrings -
string.

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


metody nasazení
string. Požadováno při appType != webAppLinux && appType != "" && package NotEndsWith .war && package NotEndsWith .jar. Povolené hodnoty: auto (automatické zjišťování), zipDeploy (nasazení zip), runFromPackage (spustit z balíčku). Výchozí hodnota: auto.

Zvolte metodu nasazení aplikace. Přijatelné hodnoty jsou automatické, zipDeploya runFromPackage.


Možnosti řízení úkolů

Všechny úkoly mají kromě vstupů úkolů také možnosti řízení. Další informace naleznete v tématu Možnosti ovládacího prvku a běžné vlastnosti úloh.

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é služby Azure App Service.

Poznámky

Tuto úlohu použijte k nasazení webových aplikací do služby 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 Vybrat metodu nasazení.

Úloha na základě typu agenta Azure App Service a Azure Pipelines zvolí vhodnou technologii nasazení. Mezi různé technologie nasazení používané úlohou patří:

  • Rozhraní KUDu REST API
  • Nasazení souboru ZIP
  • RunFromPackage

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 Zip Deploy
  • Pokud je k dispozici soubor War, použijte War Deploy.
  • Pokud je k dispozici soubor Jar, použijte Spustit z balíčku
  • Pro všechny ostatní použijte Spustit ze souboru ZIP (přes nasazení zip).

U agenta mimo Windows (pro jakýkoli typ služby App Service) úloha spoléhá na rozhraní REST API Kudu k nasazení webové aplikace.

Rozhraní KUDu REST API

rozhraní REST API Kudu pracovat 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 kopíruje soubory do služby Azure App Service.

Nasazení souboru ZIP

Vytvoří balíček pro nasazení .zip zvoleného balíčku nebo složky. Obsah souboru se pak nasadí do složky wwwroot aplikace funkcí ve službě 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í zip pro službu Azure Functions.

RunFromPackage

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

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

Úloha používá instanční objekt v připojení ke službě k ověření v Azure. Pokud vypršela platnost instančního objektu nebo nemá oprávnění ke službě App Service, úloha selže s touto chybou. Ověřte platnost použitého instančního objektu a ověřte, že se nachází 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žívání ověřování instančního objektu.

Chyba SSL

Pokud chcete použít certifikát ve službě App Service, musí být certifikát podepsaný důvěryhodnou certifikační autoritou. Pokud vaše webová aplikace poskytuje 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.

Verze po dlouhou dobu přestane reagovat a pak selže.

Tento problém může být důsledkem nedostatečné kapacity v plánu služby App Service. Pokud chcete tento problém vyřešit, můžete vertikálně navýšit kapacitu instance služby App Service, abyste zvýšili dostupné využití procesoru, paměti RAM a místa na disku nebo zkuste použít jiný plán služby App Service.

5xx kódů chyb

Pokud se zobrazí chyba 5xx, zkontrolujte stav vašehoslužby Azure.

Funkce Azure Najednou přestala fungovat

Azure Functions může náhle přestat fungovat, pokud uplynulo více než jeden rok od posledního nasazení. Pokud nasadíte s parametrem RunFromPackage v části deploymentMethod, vygeneruje se SAS s datem vypršení platnosti 1 rok a nastaví se jako hodnota "WEBSITE_RUN_FROM_PACKAGE" v konfiguraci aplikace. Azure Functions používá tento SAS k odkazování na soubor balíčku pro spuštění funkce, takže pokud vypršela platnost SAS, funkce se nespustí. Pokud chcete tento problém vyřešit, nasaďte ho znovu a vygenerujte SAS s datem vypršení platnosti jednoho roku.

Chyba: Nebyl nalezen žádný balíček se zadaným vzorem.

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

Chyba: Publikování pomocí možnosti nasazení zip není podporováno pro typ balíčku msBuild.

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í typu publish-to-zip se nedá použít k nasazení těchto balíčků. Pokud chcete převést strukturu balení, postupujte takto:

  1. V úloze sestavení řešení změňte argumenty NÁSTROJE 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 řešení sestavení

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

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

    2. Zrušte zaškrtnutí políčka Název předpend kořenové složky pro archivaci cest:

      Snímek obrazovky zobrazící hodnoty archivu

Nejčastější dotazy

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

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

Úloha nasazení služby Azure App Service () může zpracovávat další vlastní scénáře, například:

Poznámka

Transformace souborů a nahrazení proměnných jsou podporovány také samostatnou úlohou transformace souborů pro použití v Azure Pipelines. Úlohu Transformace souborů můžete použít k použití transformací souborů a nahrazení proměnných u všech souborů konfigurace a parametrů.

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

Důvodem může být to, že web.config není ve vaší aplikaci k dispozici. Do zdroje můžete buď přidat web.config soubor, nebo ho automaticky vygenerovat pomocí Nastavení aplikace a konfigurace.

  • Klikněte na úkol a přejděte na Generovat parametry web.config pro Python, Node.js, Go a Aplikace v Javě.

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

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

    Snímek obrazovky s rozevíracím dialogem

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

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

Nasazení webové aplikace ve službě App Service Environment (ASE) nefunguje

  • Ujistěte se, že agent sestavení Azure DevOps je ve stejné virtuální síti (podsíť může být jiný) jako interní nástroj pro vyrovnávání zatížení (ILB) služby ASE. To umožní agentu načíst kód z Azure DevOps a nasadit ho do ASE.
  • Pokud používáte Azure DevOps, nemusí být agent 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ý ve virtuální síti, je možné agenta zcela izolovat.
  • Agent sestavení musí být nakonfigurovaný s konfigurací DNS webové aplikace, do které se musí nasadit. Privátní prostředky ve virtuální síti nemají položky v Azure DNS, takže je potřeba ho 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, musí být v úloze nasazení pro MSDeploy nastavená možnost -allowUntrusted. 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í ke službě?

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

Jak mám nakonfigurovat nasazení webové úlohy pomocí Application Insights?

Pokud máte nakonfigurované Application Insights a povolili jste Remove additional files at destination, musíte také povolit Exclude files from the App_Data folderpři nasazování do služby App Service. Povolením této možnosti zůstane rozšíření Application Insights 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 za proxy serverem během nasazování do služby App Service?

Pokud váš agent v místním prostředí vyžaduje webový proxy server, můžete agenta informovat o proxy serveru během konfigurace. To umožňuje vašemu agentu připojit se k Azure Pipelines nebo Azure DevOps Serveru přes proxy server. 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 služby Azure Web App Service 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, přidejte parametr appType a nastavte ho na appType: webAppLinux.

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

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

Požadavky

Požadavek Popis
Typy kanálů YAML, klasické sestavení, 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ů Jakýkoliv
nastavitelné proměnné Jakýkoliv
Verze agenta 2.209.0 nebo novější
Kategorie úkolu Nasadit
Požadavek Popis
Typy kanálů YAML, klasické sestavení, 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ů Jakýkoliv
nastavitelné proměnné Jakýkoliv
Verze agenta 2.104.1 nebo vyšší
Kategorie úkolu Nasadit