AzureWebApp@1 – Azure Web App v1 feladat

Ez a feladat üzembe helyez egy Azure Web App for Linux vagy Windows rendszert.

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.

Bevitelek

azureSubscription - Azure-előfizetés
string. Kötelező.

Meghatározza az üzembe helyezésHez tartozó Azure Resource Manager előfizetési kapcsolatot.


appType - Alkalmazás típusa
string. Kötelező. Engedélyezett értékek: webApp (Web app Windows rendszeren), webAppLinux (Web App on Linux).

Az Azure Web App típusát adja meg.


appName - Alkalmazás neve
string. Kötelező.

Egy meglévő Azure App Service nevét adja meg. Csak a kiválasztott alkalmazástípuson alapuló alkalmazásszolgáltatások jelennek meg.


deployToSlotOrASE - Üzembe helyezés pontban vagy App Service Environment
boolean. Választható. Használja a következőt: appType != "". Alapértelmezett érték: false.

Kiválasztja az üzembe helyezés lehetőségét egy meglévő üzembehelyezési ponton vagy egy Azure App Service-környezetben.
Mindkét cél esetében a tevékenységnek erőforráscsoport-névre van szüksége.
Ha az üzembehelyezési cél egy pont, az alapértelmezett az éles pont. Bármely más meglévő pontnév is megadható.
Ha az üzembehelyezési cél egy Azure App Service környezet, hagyja a tárolóhely nevét "éles" névként, és adja meg az erőforráscsoport nevét.


resourceGroupName - Erőforráscsoport
string. Akkor szükséges, ha deployToSlotOrASE = true.

Az erőforráscsoport nevére akkor van szükség, ha az üzembehelyezési cél üzembehelyezési pont vagy Azure App Service környezet.
Meghatározza a fent jelzett Azure App Service tartalmazó Azure-erőforráscsoportot.


slotName - Slot
string. Akkor szükséges, ha deployToSlotOrASE = true. Alapértelmezett érték: production.

Egy meglévő tárolóhelyet ad meg, az éles pont kivételével.


package - Csomag vagy mappa
string. Kötelező. Alapértelmezett érték: $(System.DefaultWorkingDirectory)/**/*.zip.

Az MSBuild által létrehozott App Service tartalmat, tömörített zip-fájlt vagy háborús fájlt tartalmazó csomag vagy mappa elérési útja. A változók (buildkiadás | ) és a helyettesítő karakterek támogatottak. Például $(System.DefaultWorkingDirectory)/**/*.zip vagy $(System.DefaultWorkingDirectory)/**/*.war.


customDeployFolder - Egyéni üzembe helyezési mappa
string. Választható. Használja a következőt: package EndsWith .war.

Megadja azt az egyéni mappanevet, amelybe üzembe szeretne helyezni.
Ha a mező üres, a csomag a következőre lesz üzembe helyezve: <appname>.azurewebsites.net/<warpackagename>.
Ha a ROOT értéket adja meg, a csomag a következőre lesz üzembe helyezve: <appname>.azurewebsited.net.
Az összes többi példányban a következő helyen van üzembe helyezve <appname>.azurewebsited.net/<customWarName>: .


runtimeStack - Futtatókörnyezeti verem
string. Választható. Használja a következőt: appType = webAppLinux.

A Linuxon futó Web App két különböző lehetőséget kínál az alkalmazás közzétételére: az egyéni rendszerképek üzembe helyezését (Web App for Containers) és egy beépített platformrendszerképet tartalmazó alkalmazástelepítést (Linuxon futó Web App). Ez a paraméter csak akkor érhető el, ha a linuxos webalkalmazás alkalmazástípusként van kiválasztva a feladatban.


startUpCommand - Indítási parancs
string. Választható. Használja a következőt: appType = webAppLinux.

Az indítási parancsot adja meg.
Például:
dotnet run
dotnet filename.dll.


customWebConfig - web.config paraméterek létrehozása Python-, Node.js-, Go- és Java-alkalmazásokhoz
string. Választható. Használja a következőt: appType != webAppLinux && package NotEndsWith .war.

A rendszer létrehoz és üzembe helyez egy szabványos web.config Azure App Service, ha az alkalmazás nem rendelkezik ilyenrel. A web.config értékei az alkalmazás keretrendszerétől függően változnak, és szerkeszthetők. Az node.js alkalmazás esetében például web.config egy indítási fájllal és iis_node modulértékekkel fog rendelkezni. Ez a szerkesztési funkció csak a létrehozott web.configvonatkozik.


appSettings - Alkalmazásbeállítások
string.

Adja meg a webalkalmazás-alkalmazás beállításait a szintaxis -key value használatával (például:-RequestTimeout 5000-Port 5000-WEBSITE_TIME_ZONE ). Olyan értékek beágyazása, amelyek szóközöket tartalmaznak dupla idézőjelekbe (például: "Eastern Standard Time").


configurationStrings - Konfigurációs beállítások
string.

Adja meg a webalkalmazás konfigurációs beállításait a szintaxis -key value használatával (például: -phpVersion 5.6-linuxFxVersion: node|6.11). A szóközöket tartalmazó értékeket dupla idézőjelekbe foglalja.


deploymentMethod - Üzembe helyezési módszer
string. Akkor szükséges, ha appType != webAppLinux && appType != "" && package NotEndsWith .war && package NotEndsWith .jar. Engedélyezett értékek: auto (Automatikus észlelés), zipDeploy (Zip Deploy), runFromPackage (Futtatás csomagból). Alapértelmezett érték: auto.

Válassza ki az alkalmazás üzembehelyezési módszerét . Az elfogadható értékek az automatikus, a zipDeploy és a runFromPackage.


Feladatvezérlési lehetőségek

Minden feladathoz tartoznak vezérlési lehetőségek is a feladat bemenetei mellett. További információ: Vezérlési beállítások és gyakori feladattulajdonságok.

Kimeneti változók

Ez a feladat a következő kimeneti változókat határozza meg, amelyeket az alsóbb rétegbeli lépésekben, feladatokban és szakaszokban használhat fel.

AppServiceApplicationUrl
A kijelölt Azure App Service alkalmazás URL-címe.

Megjegyzések

Ezzel a feladatval webalkalmazásokat helyezhet üzembe a Azure App Service.

Üzembehelyezési módszerek

Ebben a feladatban számos üzembe helyezési módszer érhető el. Auto az alapértelmezett beállítás.

Ha módosítani szeretné a csomagalapú üzembe helyezési beállítást a tervezői feladatban, bontsa ki a További üzembehelyezési beállítások elemet, és engedélyezze az Üzembe helyezési módszer kiválasztása lehetőséget.

Az Azure App Service és az Azure Pipelines-ügynök típusától függően a feladat megfelelő üzembehelyezési technológiát választ. A feladat által használt különböző üzembehelyezési technológiák a következők:

  • Kudu REST API-k
  • Tömörített üzembe helyezés
  • RunFromPackage

Alapértelmezés szerint a feladat megpróbálja kiválasztani a megfelelő üzembehelyezési technológiát a bemeneti csomag, az App Service típusa és az ügynök operációs rendszere alapján.

  • Ha az app service típusa Web App linuxos alkalmazás, használja a Zip Deploy szolgáltatást
  • Ha war-fájl van megadva, használja a War Deploy parancsot
  • Jar-fájl megadása esetén használja a Futtatás csomagból parancsot
  • Minden másnál használja a Futtatás zip-ről parancsot (Zip Deploy használatával)

Nem Windows-ügynök esetén (bármilyen app service-típus esetén) a feladat a Kudu REST API-kra támaszkodik a webalkalmazás üzembe helyezéséhez.

Kudu REST API-k

A Kudu REST API-k Windows- vagy Linux-automatizálási ügynökökön működnek, ha a cél a Web App a Windowson, a Web App on Linux (beépített forrás) vagy a Függvényalkalmazás. A feladat a Kudu használatával másolja a fájlokat a Azure App Service.

Tömörített üzembe helyezés

Létrehozza a kiválasztott csomag vagy mappa .zip üzembehelyezési csomagját. A fájl tartalma ezután a függvényalkalmazás wwwroot mappájába lesz üzembe helyezve a Azure App Service. Ez a beállítás felülírja a wwwroot mappában lévő összes meglévő tartalmat. További információ: Zip deployment for Azure Functions.

RunFromPackage

Ugyanazt az üzembehelyezési csomagot hozza létre, mint a Zip Deploy. Ahelyett azonban, hogy fájlokat helyez üzembe a wwwroot mappában, a teljes csomagot a Azure Functions futtatókörnyezet csatlakoztatja. Ezzel a beállítással a wwwroot mappában lévő fájlok írásvédetté válnak. További információért lásd az Azure Functions csomagfájlból történő futtatásával foglalkozó cikket.

Hiba: Nem sikerült lekérni az Azure hozzáférési jogkivonatát. Ellenőrizze, hogy a használt szolgáltatásnév érvényes-e, és nem járt-e le.

A feladat a szolgáltatáskapcsolatban lévő szolgáltatásnevet használja az Azure-ral való hitelesítéshez. Ha a szolgáltatásnév lejárt, vagy nem rendelkezik engedélyekkel a App Service, a feladat ezzel a hibával meghiúsul. Ellenőrizze a használt szolgáltatásnév érvényességét, és hogy szerepel-e az alkalmazás regisztrációjában. További információért lásd: Az Azure-előfizetések erőforrásaihoz való hozzáférés kezelése szerepköralapú hozzáférés-vezérléssel. Ez a blogbejegyzés további információkat is tartalmaz a szolgáltatásnév-hitelesítés használatáról.

SSL-hiba

Ha tanúsítványt szeretne használni App Service, a tanúsítványt megbízható hitelesítésszolgáltatónak kell aláírnia. Ha a webalkalmazás tanúsítvány-ellenőrzési hibákat ad vissza, valószínűleg önaláírt tanúsítványt használ. A hiba megoldásához állítson be egy nevű VSTS_ARM_REST_IGNORE_SSL_ERRORS változót a buildelési vagy kiadási folyamat értékére true .

Egy kiadás hosszú ideig nem válaszon, majd meghiúsul

Ez a probléma a App Service csomag elégtelen kapacitásának következménye lehet. A probléma megoldásához vertikálisan felskálázhatja a App Service példányt a rendelkezésre álló processzor-, RAM- és lemezterület növeléséhez, vagy megpróbálhat egy másik App Service csomaggal.

5xx hibakódok

Ha 5xx hiba jelenik meg, ellenőrizze az Azure-szolgáltatás állapotát.

Az Azure-függvény hirtelen leállt

Azure Functions hirtelen leállhat, ha az utolsó üzembe helyezés óta több mint egy év telt el. Ha a "RunFromPackage" használatával telepít a "deploymentMethod" fájlban, a rendszer létrehoz egy 1 éves lejárati dátumú SAS-t, és az alkalmazás konfigurációjában a "WEBSITE_RUN_FROM_PACKAGE" értékként van beállítva. Azure Functions ezt az SAS-t használja a csomagfájlra a függvény végrehajtásához, így ha az SAS lejárt, a függvény nem lesz végrehajtva. A probléma megoldásához telepítse újra az üzembe helyezést, hogy létrehoz egy SAS-t egyéves lejárati dátummal.

Hiba: A megadott mintával nem található csomag

Ellenőrizze, hogy a feladatban említett csomag közzé van-e téve összetevőként a buildben vagy egy korábbi fázisban, és le van-e töltve az aktuális feladatban.

Hiba: Az msBuild csomagtípus esetében nem támogatott a közzététel zip-alapú üzembe helyezési lehetőséggel

Az MSBuild feladaton keresztül létrehozott (alapértelmezett argumentumokkal rendelkező) webcsomagok beágyazott mappastruktúrával rendelkeznek, amelyet csak a Web Deploy helyezhet üzembe megfelelően. A közzététel a zip-be üzembe helyezési lehetőség nem használható a csomagok üzembe helyezéséhez. A csomagolás szerkezetének átalakításához hajtsa végre az alábbi lépéseket:

  1. A Megoldás összeállítása feladatban módosítsa az MSBuild argumentumokat a következőre /p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl="$(System.DefaultWorkingDirectory)\\WebAppContent":

    Képernyőkép a Megoldás buildelési értékeiről.

  2. Adjon hozzá egy archív feladatot, és módosítsa az értékeket az alábbiak szerint:

    1. Módosítsa a gyökérmappát vagy fájlt archiválásra.$(System.DefaultWorkingDirectory)\\WebAppContent

    2. Törölje az Előtag gyökérmappa nevét az elérési utak archiválásához jelölőnégyzetből:

      Képernyőkép az Archív értékekről.

Gyakori kérdések

Mi a különbség a és AzureRmWebAppDeployment a AzureWebApp tevékenységek között?

Az Azure Web App-feladat (AzureWebApp) a legegyszerűbb módszer az Azure-webalkalmazásokban való üzembe helyezésre. Alapértelmezés szerint az üzembe helyezés az Azure Web App gyökéralkalmazásával történik.

A Azure App Service Üzembe helyezési feladat (AzureRmWebAppDeployment) több egyéni forgatókönyvet is képes kezelni, például:

Megjegyzés

A fájlátalakításokat és a változók helyettesítését a különálló Fájlátalakítás feladat is támogatja az Azure Pipelinesban való használatra. A Fájlátalakítás feladat használatával fájlátalakításokat és változóhelyettesítéseket alkalmazhat bármely konfigurációs és paraméterfájlra.

A webalkalmazás üzembe helyezése sikeres a Windows rendszeren, de az alkalmazás nem működik

Ennek az lehet az oka, hogy web.config nincs jelen az alkalmazásban. Hozzáadhat egy web.config fájlt a forráshoz, vagy automatikusan létrehozhat egyet az alkalmazás- és konfigurációs beállítások használatával.

  • Kattintson a feladatra, és válassza a Python-, Node.js-, Go- és Java-alkalmazásokhoz készült web.config paraméterek létrehozása lehetőséget.

    Képernyőkép a web.config paraméterek létrehozása párbeszédpanelről.

  • Kattintson a további gombra ... a paraméterek szerkesztéséhez.

    Képernyőkép a legördülő párbeszédpanelről.

  • Válassza ki az alkalmazás típusát a legördülő menüből.

  • Kattintson az OK gombra. Ez kitölti a web.config létrehozásához szükséges web.config paramétereket.

App Service-környezetben (ASE) nem működik a webalkalmazás üzembe helyezése

  • Győződjön meg arról, hogy az Azure DevOps buildügynöke ugyanazon a virtuális hálózaton található (az alhálózat eltérő lehet), mint az ASE belső Load Balancer (ILB). Így az ügynök lekérhet kódot az Azure DevOpsból, és üzembe helyezheti az ASE-ben.
  • Ha Azure DevOpsot használ, az ügynöknek nem kell az internetről elérhetőnek lennie, hanem csak kimenő hozzáférésre van szüksége az Azure DevOps Service-hez való csatlakozáshoz.
  • Ha egy Virtual Network üzembe helyezett TFS/Azure DevOps Server használ, az ügynök teljesen elkülöníthető.
  • A buildügynököt annak a webalkalmazásnak a DNS-konfigurációjával kell konfigurálni, amelyen üzembe kell helyeznie. A Virtual Network privát erőforrásai nem rendelkeznek bejegyzésekkel az Azure DNS-ben, ezért ezt hozzá kell adni a gazdagép fájljához az ügynökgépen.
  • Ha önaláírt tanúsítványt használ az ASE-konfigurációhoz, a -allowUntrusted beállítást be kell állítani az MSDeploy üzembe helyezési feladatában. Azt is javasoljuk, hogy állítsa a változót VSTS_ARM_REST_IGNORE_SSL_ERRORS a értékre true. Ha egy hitelesítésszolgáltatótól származó tanúsítványt használ az ASE-konfigurációhoz, ez nem szükséges.

Hogyan konfigurálhatom a szolgáltatáskapcsolatot?

Ehhez a feladathoz Azure Resource Manager szolgáltatáskapcsolat szükséges.

Hogyan konfigurálhatom a webes feladatok üzembe helyezését az Application Insights használatával?

Ha egy App Service helyez üzembe, ha az Application Insights konfigurálva van, és engedélyezve Remove additional files at destinationvan, engedélyeznie kell Exclude files from the App_Data folderazt is. Ennek a beállításnak az engedélyezése biztonságos állapotban tartja az Application Insights-bővítményt. Erre a lépésre azért van szükség, mert az Application Insights folyamatos webfeladata telepítve van a App_Data mappába.

Hogyan konfigurálhatom az ügynökömet, ha proxy mögött van, miközben App Service üzembe helyezem?

Ha a saját üzemeltetésű ügynökhöz webproxy szükséges, a konfiguráció során tájékoztathatja az ügynököt a proxyról. Ezzel lehetővé teszi az ügynök számára, hogy a proxyn keresztül csatlakozzon az Azure Pipelineshoz vagy Azure DevOps Server. További információ a saját üzemeltetésű ügynök webproxy mögött való futtatásáról.

Példák

Az alábbiakban egy YAML-kódrészletet mutatunk be, amely webalkalmazást helyez üzembe a Windows rendszeren futó Azure Web App Service.

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

A Web App Linux rendszeren való üzembe helyezéséhez adja hozzá a appType paramétert, és állítsa be a következőre appType: webAppLinux: .

Az üzembe helyezési módszer Zip Deployként való megadásához adja hozzá a paramétert deploymentMethod: zipDeploy. A paraméter egy másik támogatott értéke a következő runFromPackage: .

Ha nincs megadva, auto az alapértelmezett érték.

Követelmények

Követelmény Leírás
Folyamattípusok YAML, klasszikus build, klasszikus kiadás
Futtatás Ügynök, DeploymentGroup
Igények None
Képességek Ez a feladat nem felel meg a feladat későbbi tevékenységeire vonatkozó követelményeknek.
Parancskorlátozások Bármelyik
Változók beállítása Bármelyik
Ügynök verziója 2.104.1 vagy újabb
Feladatkategória Üzembe helyezés