Megosztás a következőn keresztül:


AzureRmWebAppDeployment@5 – Azure App Service v5-feladat üzembe helyezése

Üzembe helyezhet egy web-, mobil- vagy API-alkalmazást az Azure App Service-ben Docker, Java, .NET, .NET Core, Node.js, PHP, Python vagy Ruby használatával.

Szemantika

# Azure App Service deploy v5
# Deploy to Azure App Service a web, mobile, or API app using Docker, Java, .NET, .NET Core, Node.js, PHP, Python, or Ruby.
- task: AzureRmWebAppDeployment@5
  inputs:
    ConnectionType: 'AzureRM' # 'AzureRM' | 'PublishProfile'. Required. Connection type. Default: AzureRM.
    azureSubscription: # string. Alias: ConnectedServiceName. Required when ConnectionType = AzureRM. Azure subscription. 
    #PublishProfilePath: '$(System.DefaultWorkingDirectory)/**/*.pubxml' # string. Required when ConnectionType = PublishProfile. Publish profile path. Default: $(System.DefaultWorkingDirectory)/**/*.pubxml.
    #PublishProfilePassword: # string. Required when ConnectionType = PublishProfile. Publish profile password. 
    appType: 'webApp' # 'webApp' | 'webAppLinux' | 'webAppContainer' | 'webAppHyperVContainer' | 'functionApp' | 'functionAppLinux' | 'functionAppContainer' | 'apiApp' | 'mobileApp'. Alias: WebAppKind. Required when ConnectionType = AzureRM. App Service type. Default: webApp.
    WebAppName: # string. Required when ConnectionType = AzureRM. App Service name. 
    #deployToSlotOrASE: false # boolean. Alias: DeployToSlotOrASEFlag. Optional. Use when ConnectionType = AzureRM && WebAppKind != "". Deploy to Slot or App Service Environment. Default: false.
    #ResourceGroupName: # string. Required when DeployToSlotOrASEFlag = true. Resource group. 
    #SlotName: 'production' # string. Required when DeployToSlotOrASEFlag = true. Slot. Default: production.
    #DockerNamespace: # string. Required when WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer. Registry or Namespace. 
    #DockerRepository: # string. Required when WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer. Image. 
    #DockerImageTag: # string. Optional. Use when WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer. Tag. 
    #VirtualApplication: # string. Optional. Use when WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != functionApp && webAppKind != functionAppLinux && WebAppKind != "". Virtual application. 
    #packageForLinux: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Alias: Package. Required when ConnectionType = PublishProfile || WebAppKind = webApp || WebAppKind = apiApp || WebAppKind = functionApp || WebAppKind = mobileApp || WebAppKind = webAppLinux || webAppKind = functionAppLinux. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
    #RuntimeStack: # 'DOTNETCORE|9.0' | 'DOTNETCORE|8.0' | 'DOTNETCORE|7.0' | 'DOTNETCORE|6.0' | 'NODE|22-lts' | 'NODE|20-lts' | 'NODE|18-lts' | 'NODE|16-lts' | 'PYTHON|3.13' | 'PYTHON|3.12' | 'PYTHON|3.11' | 'PYTHON|3.10' | 'PYTHON|3.9' | 'PYTHON|3.8' | 'PHP|8.3' | 'PHP|8.2' | 'PHP|8.1' | 'PHP|8.0' | 'JAVA|21-java21' | 'JAVA|17-java17' | 'JAVA|11-java11' | 'JAVA|8-jre8' | 'JBOSSEAP|8-java17' | 'JBOSSEAP|8-java11' | 'JBOSSEAP|7-java17' | 'JBOSSEAP|7-java11' | 'JBOSSEAP|7-java8' | 'TOMCAT|10.1-java21' | 'TOMCAT|10.1-java17' | 'TOMCAT|10.1-java11' | 'TOMCAT|10.0-java17' | 'TOMCAT|10.0-java11' | 'TOMCAT|10.0-jre8' | 'TOMCAT|9.0-java21' | 'TOMCAT|9.0-java17' | 'TOMCAT|9.0-java11' | 'TOMCAT|9.0-jre8' | 'TOMCAT|8.5-java11' | 'TOMCAT|8.5-jre8'. Optional. Use when WebAppKind = webAppLinux. Runtime Stack. 
    #RuntimeStackFunction: # 'DOTNET|2.2' | 'DOTNET|3.1' | 'JAVA|8' | 'JAVA|11' | 'NODE|8' | 'NODE|10' | 'NODE|12' | 'NODE|14' | 'PYTHON|3.6' | 'PYTHON|3.7' | 'PYTHON|3.8'. Optional. Use when WebAppKind = functionAppLinux. Runtime Stack. 
    #StartupCommand: # string. Optional. Use when WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = functionAppLinux || WebAppKind = webAppHyperVContainer. Startup command. 
  # Post Deployment Action
    #ScriptType: # 'Inline Script' | 'File Path'. Optional. Use when ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer. Deployment script type. 
    #InlineScript: ':: You can provide your deployment commands here. One command per line.' # string. Required when ScriptType == Inline Script && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer. Inline Script. Default: :: You can provide your deployment commands here. One command per line..
    #ScriptPath: # string. Required when ScriptType == File Path && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer. Deployment script path. 
  # File Transforms & Variable Substitution Options
    #WebConfigParameters: # string. Optional. Use when WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. Generate web.config parameters for Python, Node.js, Go and Java apps. 
    #enableXmlTransform: false # boolean. Alias: XmlTransformation. Optional. Use when WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. XML transformation. Default: false.
    #enableXmlVariableSubstitution: false # boolean. Alias: XmlVariableSubstitution. Optional. Use when WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. XML variable substitution. Default: false.
    #JSONFiles: # string. Optional. Use when WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. JSON variable substitution. 
  # Application and Configuration Settings
    #AppSettings: # string. Optional. Use when ConnectionType = AzureRM. App settings. 
    #ConfigurationSettings: # string. Optional. Use when ConnectionType = AzureRM. Configuration settings. 
  # Additional Deployment Options
    #enableCustomDeployment: false # boolean. Alias: UseWebDeploy. Optional. Use when ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Select deployment method. Default: false.
    #DeploymentType: 'webDeploy' # 'webDeploy' | 'zipDeploy' | 'runFromZip'. Required when UseWebDeploy == true && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Deployment method. Default: webDeploy.
    #TakeAppOfflineFlag: true # boolean. Optional. Use when UseWebDeploy == true && DeploymentType != runFromZip && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Take App Offline. Default: true.
    #SetParametersFile: # string. Optional. Use when UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. SetParameters file. 
    #RemoveAdditionalFilesFlag: false # boolean. Optional. Use when UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Remove additional files at destination. Default: false.
    #ExcludeFilesFromAppDataFlag: true # boolean. Optional. Use when UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Exclude files from the App_Data folder. Default: true.
    #AdditionalArguments: '-retryAttempts:6 -retryInterval:10000' # string. Optional. Use when UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Additional arguments. Default: -retryAttempts:6 -retryInterval:10000.
    #RenameFilesFlag: true # boolean. Optional. Use when UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Rename locked files. Default: true.
  # Additional Deployment Options
    #DeploymentTypeLinux: 'oneDeploy' # 'oneDeploy' | 'zipDeploy'. Required when ConnectionType = AzureRM && WebAppKind = webAppLinux. Deployment method. Default: oneDeploy.
    #CleanDeploymentFlag: true # boolean. Optional. Use when DeploymentTypeLinux == oneDeploy && ConnectionType = AzureRM && WebAppKind = webAppLinux. Enable clean deployment. Default: true.

Bemenetek

ConnectionType - kapcsolattípus
string. Szükséges. Engedélyezett értékek: AzureRM (Azure Resource Manager), PublishProfile (Közzétételi profil). Alapértelmezett érték: AzureRM.

Adja meg a webalkalmazás üzembe helyezéséhez használandó szolgáltatáskapcsolat típusát.

Adja meg Publish Profile a Visual Studio által létrehozott Közzétételi profilok.


Azure-előfizetés azureSubscription -
Bemeneti alias: ConnectedServiceName. string. ConnectionType = AzureRMesetén kötelező.

Adja meg az üzembe helyezéshez szükséges Azure Resource Manager-előfizetést.


PublishProfilePath - Profil elérési útjának közzététele
string. ConnectionType = PublishProfileesetén kötelező. Alapértelmezett érték: $(System.DefaultWorkingDirectory)/**/*.pubxml.

A Visual Studióból létrehozott közzétételi profil elérési útja.


PublishProfilePassword - Profiljelszó közzététele
string. ConnectionType = PublishProfileesetén kötelező.

Javasoljuk, hogy titkos változóban tárolja a jelszót, és használja ezt a változót, például $(Password).


appType - App Service-típus
Bemeneti alias: WebAppKind. string. ConnectionType = AzureRMesetén kötelező. Engedélyezett értékek: webApp (Web App on Windows), webAppLinux (Web App on Linux), webAppContainer (Web App for Containers (Linux)), webAppHyperVContainer (Web App for Containers (Windows)), functionApp (Függvényalkalmazás Windows rendszeren (Nem ajánlott, Az Azure Functions-feladat használata)), functionAppLinux (Függvényalkalmazás Linux rendszeren (Nem ajánlott, Azure Functions-feladat használata)), functionAppContainer (Függvényalkalmazás tárolókhoz (Linux) (Nem ajánlott, Azure Functions használata tárolófeladathoz)), apiApp (API-alkalmazás), mobileApp (Mobilalkalmazás). Alapértelmezett érték: webApp.

Válasszon a Windows webalkalmazás, a Linux webalkalmazás, a Web App for Containers, a Függvényalkalmazás, a Függvényalkalmazás Linuxon, a Függvényalkalmazás tárolókhoz és a Mobilalkalmazás közül.


WebAppName - App Service-név
string. ConnectionType = AzureRMesetén kötelező.

Adja meg egy meglévő Azure App Service nevét. A kiválasztott alkalmazástípuson alapuló alkalmazásszolgáltatások csak a feladatsegéd használatakor jelennek meg.


deployToSlotOrASE - Üzembe helyezés a Slot vagy az App Service-környezetben
Bemeneti alias: DeployToSlotOrASEFlag. boolean. Opcionális. Használja a ConnectionType = AzureRM && WebAppKind != "". Alapértelmezett érték: false.

Adja meg a meglévő üzembehelyezési ponton vagy az Azure App Service-környezetben való üzembe helyezés lehetőségét. Mindkét cél esetében a tevékenységhez erőforráscsoport-név szükséges. Ha az üzembehelyezési cél egy pont, az üzembe helyezés alapértelmezés szerint az Éles ponton van. Bármely más meglévő pontnév megadható. Ha az üzembehelyezési cél egy Azure App Service-környezet, hagyja meg a pont nevét Production, és csak az erőforráscsoport nevét adja meg.


ResourceGroupName - Erőforráscsoport
string. DeployToSlotOrASEFlag = trueesetén kötelező.

Az erőforráscsoport nevére akkor van szükség, ha az üzembehelyezési cél egy üzembehelyezési pont vagy egy App Service-környezet.

Adja meg a fent megadott Azure App Service-t tartalmazó Azure-erőforráscsoportot.


SlotName - Rés
string. DeployToSlotOrASEFlag = trueesetén kötelező. Alapértelmezett érték: production.

Adjon meg egy, az éles ponttól eltérő meglévő pontot.


DockerNamespace - beállításjegyzék- vagy névtér-
string. WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContaineresetén kötelező.

Az adott beállításjegyzék vagy névtér globálisan egyedi legfelső szintű tartományneve. Megjegyzés: A teljes képnév formátuma: {registry or namespace}/{repository}:{tag}. Például: myregistry.azurecr.io/nginx:latest.


DockerRepository - kép
string. WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContaineresetén kötelező.

Annak az adattárnak a neve, amelyben a tárolólemezképek vannak tárolva. Megjegyzés: A teljes képnév formátuma: {registry or namespace}/{repository}:{tag}. Például: myregistry.azurecr.io/nginx:latest.


DockerImageTag - címke
string. Opcionális. Használja a WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer.

A címkék az a mechanizmus, amellyel a regisztrációs adatbázisok verzióinformációkat alkalmazhatnak a Docker-rendszerképekre. Megjegyzés: A teljes képnév formátuma: {registry or namespace}/{repository}:{tag}. Például: myregistry.azurecr.io/nginx:latest.


VirtualApplication - virtuális alkalmazás
string. Opcionális. Használja a WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != functionApp && webAppKind != functionAppLinux && WebAppKind != "".

Adja meg az Azure Portalon konfigurált virtuális alkalmazás nevét. Ez a beállítás nem szükséges a webhely gyökerében történő üzembe helyezéshez. A virtuális alkalmazást a webes projekt üzembe helyezése előtt konfigurálnia kell.


packageForLinux - Csomag vagy mappa
Bemeneti alias: Package. string. ConnectionType = PublishProfile || WebAppKind = webApp || WebAppKind = apiApp || WebAppKind = functionApp || WebAppKind = mobileApp || WebAppKind = webAppLinux || webAppKind = functionAppLinuxesetén kötelező. Alapértelmezett érték: $(System.DefaultWorkingDirectory)/**/*.zip.

A csomaghoz vagy az MSBuild által létrehozott App Service-tartalmat tartalmazó mappához vagy tömörített zip- vagy háborús fájlhoz vezető fájl elérési útja.

A változók Build és Release. helyettesítő karakterek támogatottak.

Például, $(System.DefaultWorkingDirectory)/\*\*/\*.zip vagy $(System.DefaultWorkingDirectory)/\*\*/\*.war.


RuntimeStack - Futásidejű verem
string. Opcionális. Használja a WebAppKind = webAppLinux. Engedélyezett értékek: DOTNETCORE|9.0 (.NET 9.0), DOTNETCORE|8.0 (.NET 8.0), DOTNETCORE|7.0 (.NET 7.0), DOTNETCORE|6.0 (.NET 6.0), NODE|22-lts (22 LTS csomópont), NODE|20-lts (20 LTS csomópont), NODE|18-lts (18. LTS-csomópont), NODE|16-lts (16. LTS-csomópont), PYTHON|3.13 (Python 3.13), PYTHON|3.12 (Python 3.12), PYTHON|3.11 (Python 3.11), PYTHON|3.10 (Python 3.10), PYTHON|3.9 (Python 3.9), PYTHON|3.8 (Python 3.8), PHP|8.3 (PHP 8.3), PHP|8.2 (PHP 8.2), PHP|8.1 (PHP 8.1), PHP|8.0 (PHP 8.0), JAVA|21-java21 (Java 21), JAVA|17-java17 (Java 17), JAVA|11-java11 (Java 11), JAVA|8-jre8 (Java 8), JBOSSEAP|8-java17 (JBoss EAP 8 (Java 17)), JBOSSEAP|8-java11 (JBoss EAP 8 (Java 11)), JBOSSEAP|7-java17 (JBoss EAP 7 (Java 17)), JBOSSEAP|7-java11 (JBoss EAP 7 (Java 11)), JBOSSEAP|7-java8 (JBoss EAP 7 (Java 8)), TOMCAT|10.1-java21 (Tomcat 10.1 (Java 21)), TOMCAT|10.1-java17 (Tomcat 10.1 (Java 17)), TOMCAT|10.1-java11 (Tomcat 10.1 (Java 11)), TOMCAT|10.0-java17 (Tomcat 10.0 (Java 17)), TOMCAT|10.0-java11 (Tomcat 10.0 (Java 11)), TOMCAT|10.0-jre8 (Tomcat 10.0 (Java 8)), TOMCAT|9.0-java21 (Tomcat 9.0 (Java 21)), TOMCAT|9.0-java17 (Tomcat 9.0 (Java 17)), TOMCAT|9.0-java11 (Tomcat 9.0 (Java 11)), TOMCAT|9.0-jre8 (Tomcat 9.0 (Java 8)), ( TOMCAT|8.5-java11 Tomcat 8.5 (Java 11)), ( TOMCAT|8.5-jre8 Tomcat 8.5 (Java 8)).

Adja meg a keretrendszert és a verziót.


RuntimeStackFunction - Futásidejű verem
string. Opcionális. Használja a WebAppKind = functionAppLinux. Engedélyezett értékek: DOTNET|2.2 (DOTNET|2.2 (functionapp v2)), DOTNET|3.1 (DOTNET|3.1 (functionapp v3)), JAVA|8 (JAVA|8 (functionapp v2/v3)), JAVA|11 (JAVA|11 (functionapp v3)), NODE|8 (NODE|8 (functionapp v2)), NODE|10 (NODE|10 (functionapp v2/v3)), NODE|12 (NODE|12 (functionapp v3)), NODE|14 (NODE|14 (functionapp v3)), PYTHON|3.6 (PYTHON|3.6 (functionapp v2/v3)), PYTHON|3.7 (PYTHON|3.7 (functionapp v2/v3)), PYTHON|3.8 (PYTHON|3.8 (functionapp v3)).

Adja meg a keretrendszert és a verziót. A támogatott futtatókörnyezeti verziók az Azure Functions-futtatókörnyezetek áttekintésében. A régi értékek, például a DOCKER|microsoft/azure-functions-* elavultak. Használja a legördülő lista új értékeit.


StartupCommand - indítási parancs
string. Opcionális. Használja a WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = functionAppLinux || WebAppKind = webAppHyperVContainer.

Adja meg az Indítás parancsot. Például:

dotnet ügyvezető filename.dll

dotnet filename.dll.


ScriptType - üzembehelyezési szkript típusa
string. Opcionális. Használja a ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer. Engedélyezett értékek: Inline Script, File Path (szkriptfájl elérési útja).

A sikeres üzembe helyezés után az Azure App Service-ben futó szkripttel testre szabhatja az üzembe helyezést. Válassza ki a beágyazott üzembehelyezési szkriptet, vagy egy szkriptfájl elérési útját és nevét. További információ az Azure App Service üzembe helyezési.


InlineScript - beágyazott szkript
string. ScriptType == Inline Script && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContaineresetén kötelező. Alapértelmezett érték: :: You can provide your deployment commands here. One command per line..

A végrehajtandó szkript. Itt adhat meg üzembehelyezési parancsokat, soronként egy parancsot. Tekintse meg a következő példát.


ScriptPath - üzembehelyezési szkript elérési útja
string. ScriptType == File Path && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContaineresetén kötelező.

A végrehajtandó szkript elérési útja és neve.


WebConfigParameters - Python-, Node.js-, Go- és Java-alkalmazásokhoz web.config-paraméterek létrehozása
string. Opcionális. Használja a WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war.

Egy szabványos Web.config fog létrehozni és üzembe helyezni az Azure App Service-ben, ha az alkalmazás nem rendelkezik ilyenrel. A web.config értékei az alkalmazás keretrendszerétől függően szerkeszthetők és változhatnak. Például node.js alkalmazások esetében a web.config indítási fájllal és iis_node modulértékekkel fog rendelkezni. Ez a szerkesztési funkció csak a létrehozott web.configérhető el. További információ az Azure App Service üzembe helyezési.


AppSettings - Alkalmazásbeállítások
string. Opcionális. Használja a ConnectionType = AzureRM.

A webalkalmazás-alkalmazás beállításait a szintaxis -key valuehasználatával szerkessze. A szóközöket tartalmazó értékeket idézőjelek közé kell tenni. Példák: -Port 5000 -RequestTimeout 5000 és -WEBSITE_TIME_ZONE "Eastern Standard Time". Két vagy több kulcsérték megadásához a kulcsértékeket szóközzel kell elválasztani. Példa: -key1 "Value1" -Key2 "Value2".


ConfigurationSettings - konfigurációs beállítások
string. Opcionális. Használja a ConnectionType = AzureRM.

A webalkalmazás konfigurációs beállításait a szintaxis -key valuehasználatával szerkessze. A szóközöket tartalmazó értékeket idézőjelek közé kell tenni. Példa: -phpVersion 5.6 -linuxFxVersion node|6.11.


enableCustomDeployment - Telepítési módszer kiválasztása
Bemeneti alias: UseWebDeploy. boolean. Opcionális. Használja a ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Alapértelmezett érték: false.

Ha nincs bejelölve vagy hamis, a feladat automatikusan észleli a legjobb üzembe helyezési módszert az alkalmazás típusa, a csomag formátuma és egyéb paraméterek alapján. Ezt a beállítást a feladatsegédben ellenőrizheti a támogatott üzembehelyezési módszerek megtekintéséhez, és válasszon egyet az alkalmazás üzembe helyezéséhez.


DeploymentType - Üzembe helyezési módszer
string. UseWebDeploy == true && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jaresetén kötelező. Engedélyezett értékek: webDeploy (Web Deploy), zipDeploy (Zip Deploy), runFromZip (Futtatás csomagból). Alapértelmezett érték: webDeploy.

Meghatározza az alkalmazás üzembehelyezési módját.


TakeAppOfflineFlag - Alkalmazás offline állapotba helyezése
boolean. Opcionális. Használja a UseWebDeploy == true && DeploymentType != runFromZip && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Alapértelmezett érték: true.

Adja meg ezt a beállítást az Azure App Service offline állapotba helyezéséhez, ha egy app_offline.htm fájlt helyez el a gyökérkönyvtárban a szinkronizálási művelet megkezdése előtt. A fájl a szinkronizálás sikeres befejezése után törlődik.


SetParametersFile - SetParameters fájl
string. Opcionális. Használja a UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar.

A használni kívánt SetParameters.xml fájl helye.


RemoveAdditionalFilesFlag - További fájlok eltávolítása a cél
boolean. Opcionális. Használja a UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Alapértelmezett érték: false.

Adja meg az "igaz" értéket az Olyan Azure App Service-fájlok törléséhez, amelyek nem rendelkeznek egyező fájlokkal az App Service-csomagban vagy -mappában. Ezzel az Azure App Service-ben telepített bővítményekkel kapcsolatos összes fájlt is eltávolítja. Ennek megakadályozásához jelölje be a Exclude files from App_Data folder jelölőnégyzetet.


ExcludeFilesFromAppDataFlag - Fájlok kizárása a App_Data mappából
boolean. Opcionális. Használja a UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Alapértelmezett érték: true.

Itt adhatja meg, hogy a App_Data mappában lévő fájlok ne legyenek üzembe helyezve vagy törölve legyenek az Azure App Service-ben.


AdditionalArguments - További argumentumok
string. Opcionális. Használja a UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Alapértelmezett érték: -retryAttempts:6 -retryInterval:10000.

További webtelepítési argumentumok a -key:valueszintaxist követve. Ezek az Azure App Service üzembe helyezésekor lesznek alkalmazva. Példák: -disableLink:AppPoolExtension -disableLink:ContentExtension. További információ a webtelepítési műveleti beállításokról.


RenameFilesFlag - Zárolt fájlok átnevezése
boolean. Opcionális. Használja a UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Alapértelmezett érték: true.

Adja meg az alapértelmezett értéket az msdeploy jelző engedélyezéséhez, MSDEPLOY_RENAME_LOCKED_FILES=1 az Azure App Service alkalmazásbeállításaiban. Ha be van állítva, a beállítás lehetővé teszi, hogy az msdeploy átnevezze az alkalmazás üzembe helyezése során zárolt fájlokat.


enableXmlTransform - XML-átalakítás
Bemeneti alias: XmlTransformation. boolean. Opcionális. Használja a WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. Alapértelmezett érték: false.

A konfigurációátalakítások *.Release.config és *.<EnvironmentName>.config futnak a *.config file. A konfigurációs átalakítások a változó helyettesítése előtt futnak. XML-átalakítások csak a Windows platformon támogatottak.


enableXmlVariableSubstitution - XML-változó helyettesítése
Bemeneti alias: XmlVariableSubstitution. boolean. Opcionális. Használja a WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. Alapértelmezett érték: false.

A buildelési vagy kiadási folyamatban definiált változók a konfigurációs fájlok és configSections fájlok appSettings, applicationSettings, connectionStringsés parameters.xml szakaszaiban lévő kulcs- vagy névbejegyzésekkel lesznek egyezőek. A változó-helyettesítés a konfigurációátalakítások után fut.

Ha ugyanazok a változók vannak definiálva a kiadási folyamatban és a fázisban, a fázisváltozók felülírják a kiadási folyamat változóit. További információ az [XML-változó helyettesítéséről]](/azure/devops/pipelines/tasks/transforms-variable-substitution#xml-variable-substitution).


JSONFiles - JSON-változó helyettesítése
string. Opcionális. Használja a WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war.

A változóértékeket helyettesítő JSON-fájlok új vonallal tagolt listáját tartalmazza. A fájlneveknek a gyökérmappához viszonyítva kell lenniük. Beágyazott vagy hierarchikus JSON-változók helyettesítéséhez adja meg őket JSONPath kifejezések használatával. Ha például az alábbi mintában szereplő ConnectionString értékét szeretné lecserélni, definiáljon egy Data.DefaultConnection.ConnectionString nevű változót a buildelési vagy kiadási folyamatban (vagy a kiadási folyamatok szakaszában).

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
    }
  }
}

A konfigurációátalakítások után változó-helyettesítés fut. Megjegyzés: A buildelési és kiadási folyamat változói ki vannak zárva a helyettesítésből. További információ JSON-változó helyettesítéséről.


DeploymentTypeLinux - Üzembe helyezési módszer
string. ConnectionType = AzureRM && WebAppKind = webAppLinuxesetén kötelező. Engedélyezett értékek: oneDeploy (Egy üzembe helyezés), zipDeploy (Zip üzembe helyezése). Alapértelmezett érték: oneDeploy.

Válassza ki az alkalmazás üzembe helyezési módját.

A One Deploy támogatja a tiszta (alapértelmezett) és a növekményes üzembe helyezési lehetőségeket is, amelyek a Tiszta üzembe helyezés engedélyezése ()CleanDeploymentFlag feladatbemenettel konfigurálhatók. A Tiszta üzembe helyezés engedélyezése (CleanDeploymentFlag) beállítást a növekményes telepítési beállítások engedélyezéséhez állítsa be false ; az alapértelmezett érték a true.


CleanDeploymentFlag - Tiszta üzembe helyezés engedélyezése
boolean. Opcionális. Használja a DeploymentTypeLinux == oneDeploy && ConnectionType = AzureRM && WebAppKind = webAppLinux. Alapértelmezett érték: true.

Üzembe helyezési mód a teljes szinkronizálási (tiszta) üzembe helyezéshez.


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
kijelölt App Service alkalmazás URL-címét.

Megjegyzések

Megjegyzés:

Újdonságok az 5-ös AzureRmWebAppDeploymentverzióban:

  • One Deploy Linux App Service támogatása. További információért tekintse meg a következő One Deploy szakaszt.

Ezzel a feladatsal üzembe helyezheti az Azure-beli App Services egy tartományát. A feladat Windows, Linux vagy Mac rendszert futtató platformfüggetlen ügynökökön működik, és számos különböző mögöttes üzembehelyezési technológiát használ.

A feladat ASP.NET, ASP.NET Core, PHP, Java, Python, Goés Node.js alapú webalkalmazások esetében működik.

A feladat az Azure App Services egy tartományában való üzembe helyezésre használható, például:

A feladat előfeltételei

A feladat megfelelő működéséhez a következő előfeltételeket kell beállítani a célgép(ek)ben.

  • App Service-példány. A feladat webalkalmazás-projekt vagy Azure-függvényprojekt üzembe helyezésére szolgál egy meglévő Azure App Service-példányon, amelynek a feladat futtatása előtt léteznie kell. A App Service példány a Azure Portal hozható létre, és ott konfigurálható . Másik lehetőségként az Azure PowerShell-feladat is használható Azure PowerShell-szkriptek futtatására, a webalkalmazás kiépítéséhez és konfigurálásához.

  • Azure-előfizetési. Az Azure-ban való üzembe helyezéshez egy Azure-előfizetést kell csatolni a folyamathoz. A feladat nem működik a klasszikus Azure-szolgáltatáskapcsolattal, és nem sorolja fel ezeket a kapcsolatokat a tevékenység beállításai között.

Használati megjegyzések

  • A feladat csak az Azure Resource Manager API-k működik.
  • Az SSL-hibák figyelmen kívül hagyásához definiáljon egy VSTS_ARM_REST_IGNORE_SSL_ERRORS nevű változót, amelynek értéke true a folyamatban. Ha automatikus felcserélésre konfigurált ponton helyezi üzembe az üzembe helyezést, a felcserélés sikertelen lesz, hacsak nem állítja be SCM_SKIP_SSL_VALIDATION vagy SCM_SKIP_ASE_SSL_VALIDATION1 az App Services konfigurációs beállításai között.
  • A Windows rendszeren webalkalmazást célzó .NET-alkalmazások esetén kerülje a ERROR_FILE_IN_USE hiba miatti üzembe helyezési hibát, mert így Zárolt fájlok átnevezése és Az alkalmazás offline állapotba helyezése beállításai engedélyezve vannak. A nulla állásidő üzembe helyezéséhez használja a pontcserélési lehetőséget.
  • Ha olyan App Service-ben van üzembe helyezve, amelyben az Application Insights konfigurálva van, és engedélyezte További fájlok eltávolítása a cél, győződjön meg arról is, hogy engedélyezi Fájlok kizárása a App_Data mappából annak érdekében, hogy az Application Insights bővítmény biztonságos állapotban maradjon. Erre azért van szükség, mert az Application Insights folyamatos webfeladata telepítve van a App_Data mappába.

Üzembe helyezési módszerek

Ebben a feladatban számos üzembe helyezési módszer érhető el. A Web Deploy (msdeploy.exe) az alapértelmezett. Az üzembe helyezési beállítás módosításához bontsa ki További üzembehelyezési beállítások, és engedélyezze Telepítési mód kiválasztása lehetőséget a további csomagalapú üzembe helyezési lehetőségek közül való választáshoz.

Az Azure App Service és az ügynök típusától függően a feladat egy 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:

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

Logika automatikus észlelése

Windows-alapú ügynökök esetén.

App Service-típus Csomag típusa Üzembe helyezési módszer
WebApp Linuxon vagy függvényalkalmazás Linuxon Mappa/Zip/jar
War
Zip Telepítés
Háború telepítése
WebApp for Containers (Linux) vagy Függvényalkalmazás tárolókhoz (Linux) Az alkalmazás beállításainak frissítése N/A
WebApp Windows rendszeren, Függvényalkalmazás Windows rendszeren, API-alkalmazás vagy mobilalkalmazás War
Jar
MsBuild csomagtípus vagy üzembe helyezés virtuális alkalmazásba


Mappa/Zip
Háború Telepítés
Zip Telepítés
Webes telepítés

if postDeploymentScript == true, Zip Deploy
else, Run From Package

Nem Windows-ügynökök esetén (bármely App Service-típus esetén) a feladat Kudu REST API-kra az alkalmazás üzembe helyezéséhez.

Webes üzembe helyezés

Web Deploy (msdeploy.exe) webalkalmazás windowsos vagy függvényalkalmazás windowsos ügynökkel történő üzembe helyezésére használható az Azure App Service-ben. A Web Deploy funkciógazdag, és olyan lehetőségeket kínál, mint például:

  • Zárolt fájlok átnevezése: Nevezze át a webkiszolgáló által még használatban lévő fájlokat úgy, hogy engedélyezi az msdeploy jelölő MSDEPLOY\_RENAME\_LOCKED\_FILES=1 az Azure App Service beállításai között. Ezzel a beállítással az msdeploy átnevezheti az alkalmazástelepítés során zárolt fájlokat.

  • További fájlok eltávolítása a célhelyen: Törli azOkat a fájlokat az Azure App Service-ben, amelyek nem rendelkeznek egyező fájlokkal az App Service összetevőcsomagjában vagy mappájában.

  • Fájlok kizárása a App_Data mappából: A App_Data mappában (az üzembe helyezett összetevőcsomagban/mappában) lévő fájlok azure App Service-ben való üzembe helyezésének megakadályozása

  • További webes üzembe helyezési argumentumok: Az Azure App Service telepítésekor alkalmazott argumentumok. Példa: -disableLink:AppPoolExtension -disableLink:ContentExtension. További példák a Web Deploy műveleti beállításaira: Web Deploy Operation Settings.

A Web Deploy telepítése az ügynökre a Web Deploy 3.6. A Web Deploy 3.5-öt a csomagban lévő SQL-támogatás nélkül kell telepíteni. A Web Deploy telepítésekor nem kell egyéni beállításokat választania. A Web Deploy telepítése a C:/Program Files (x86)/IIS/Microsoft Web Deploy V3.

Kudu REST API-k

Kudu REST API-k windowsos és Linuxos automatizálási ügynökökön is működnek, ha a cél egy 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 az Azure App Service-be.

Konténer-nyilvántartás

Windows és Linux rendszerű automatizálási ügynökökön is működik, ha a cél egy webalkalmazás tárolókhoz. A feladat a megfelelő tárolóregisztrációs adatbázis, adattár, képnév és címkeadatok beállításával frissíti az alkalmazást. A feladat használatával is átadhat egy indítási parancsot a tárolólemezképhez.

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

Egy .zip üzembehelyezési csomagot vár, és telepíti a fájl tartalmát az App Service vagy az Azure-beli függvényalkalmazás wwwroot mappájába. 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.

Egy telepítés

Egy üzembe helyezési támogatás van hozzáadva a Linux App Service.

Válasszon egy üzembe helyezést (oneDeploy) vagy zip üzembe helyezést (zipDeploy) az üzembe helyezési módszerhez ().DeploymentTypeLinux Az alapértelmezett érték a One Deploy (oneDeploy).

A One Deploy támogatja a tiszta (alapértelmezett) és a növekményes üzembe helyezési lehetőségeket is, amelyek a Tiszta üzembe helyezés engedélyezése ()CleanDeploymentFlag feladatbemenettel konfigurálhatók. A növekményes telepítési beállítások engedélyezéséhez állítsa be false ; az alapértelmezett érték a true.

Futtatás csomagból

Ugyanazt az üzembehelyezési csomagot várja, mint a Zip Deploy. Ahelyett azonban, hogy fájlokat helyez üzembe a wwwroot mappában, a teljes csomagot a Functions-futtatókörnyezet csatlakoztatja, és a wwwroot mappában lévő fájlok írásvédettekké válnak. További információ: Az Azure Functions futtatása csomagfájlból.

Háborús üzembe helyezés

.war üzembe helyezési csomagot vár, és telepíti a fájltartalmat az App Service wwwroot mappájába vagy webappok mappájába az Azure-ban.

Hibaelhárítás

Nem tudom webre telepíteni az Azure App Service-t a Windows-ügynökömRől származó Microsoft Entra ID-hitelesítéssel

Az Azure App Service üzembe helyezési feladata támogatja a Microsoft Azure-hoz való csatlakozást ARM-szolgáltatáskapcsolattal a Microsoft Entra ID használatával, kivéve, ha a következő három feltétel van érvényben:

  • Webes üzembe helyezési csomagformátumot használ Windows-ügynökön
  • Az ügynök a msdeploy.exe egy régebbi verziójával fut (például a windows-2019 üzemeltetett ügynökképének használatakor)
  • Az Alapszintű hitelesítés le van tiltva az Azure App Service-ben

Ha ez a három feltétel jelenik meg, hibaüzenet jelenik meg, például App Service is configured to not use basic authentication. This requires Web Deploy msdeploy.exe version 7.1.7225.2108 or higher. You need a version of Visual Studio that includes an updated version of msdeploy.exe. For more information, visit https://aka.ms/azdo-webapp-msdeploy.

A probléma megoldásához a következő lehetőségek közül választhat a beállítások sorrendjében.

  1. Frissítse az ügynök rendszerképét. Üzemeltetett ügynökök használata esetén lépjen windows-2019windows-2022 (vagy windows legújabb). Ha saját üzemeltetésű ügynököket használ, telepítse a Visual Studio 2022-t az ügynökre a msdeploy.exeújabb verziójának beszerzéséhez.
  2. Ha egy régebbi ügynökrendszerképtől függ, és nem tudja frissíteni a folyamat ügynökét, fontolja meg a feladat felosztását, hogy az Azure App Service üzembe helyezési feladat windows-2022 (vagy windows-legújabb) futjon.
  3. Ha egyik lehetőség sem lehetséges, engedélyezheti az Azure App Service alapszintű hitelesítési.

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 nincs engedélye az App Service-hez, 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 az App Service-ben, a tanúsítványt megbízható hitelesítésszolgáltatónak kell aláírnia. Ha a webalkalmazás tanúsítványérvényesítési hibákat jelez, valószínűleg önaláírt tanúsítványt használ. Állítson be egy VSTS_ARM_REST_IGNORE_SSL_ERRORS nevű változót a buildelési vagy kiadási folyamat true értékére a hiba megoldásához.

A kiadás hosszú ideig lefagy, majd meghiúsul

Ez a probléma az App Service-csomag kapacitásának elégtelensége lehet. A probléma megoldásához felskálázhatja az App Service-példányt a rendelkezésre álló processzor-, RAM- és lemezterület növeléséhez, vagy kipróbálhat egy másik App Service-csomagot.

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

Az 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áskonfigurációban a "WEBSITE_RUN_FROM_PACKAGE" értékként van beállítva. Az Azure Functions ezzel az SAS-szel hivatkozik 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 a telepítést, hogy létrehoz egy SAS-t egyéves lejárati dátummal.

Hiba: Nem található megadott mintával rendelkező csomag

Ellenőrizze, hogy a feladatban említett csomag összetevőként van-e közzétéve a buildben vagy az előző szakaszban, és letöltődik-e az aktuális feladatba.

Hiba: Az msBuild csomagtípus esetében nem támogatott a zip-alapú üzembe helyezési beállítással való közzététel

Az MSBuild feladaton (alapértelmezett argumentumokkal) létrehozott webcsomagok beágyazott mappastruktúrával rendelkeznek, amelyet csak a Web Deploy helyezhet üzembe megfelelően. A közzététel a zip-hez üzembe helyezési lehetőséggel nem telepíthetők. A csomagolási struktúra á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 Build megoldás é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 a fájlt archiválásra$(System.DefaultWorkingDirectory)\\WebAppContent.

    2. Törölje az Előpend 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.

A webalkalmazás üzembe helyezése Windows rendszeren sikeres, 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 a feladat Fájlátalakítások és változóhelyettesítési beállításaival.

  • Kattintson a feladatra, és válassza a Python, a Node.js, a Go és a Java-alkalmazások web.config paramétereinek létrehozása lehetőséget.

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

  • A paraméterek szerkesztéséhez kattintson a Továbbiak gombra: web.config paraméterek létrehozása a Pythonhoz, Node.js, Go és Java alkalmazásokhoz.

    Képernyőkép az Application Framework legördülő listáról.

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

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

Megjegyzés:

Ez a szakasz elavult, és a Fájlátalakítás feladatra lett lecserélve.

ERROR_FILE_IN_USE

Ha .NET-alkalmazásokat helyez üzembe a Web Appban Windows rendszeren, az üzembe helyezés meghiúsulhat ERROR_FILE_IN_USEhibakóddal. A hiba elhárításához győződjön meg arról, hogy Zárolt fájlok átnevezése és Alkalmazás offline állapotba helyezése beállítások engedélyezve vannak a feladatban. Nulla állásidejű üzembe helyezések esetén használjon pontfelcserélést.

Az erőforrás-zárolás elkerüléséhez a Futtatás csomagból üzembehelyezési módszert is használhatja.

Webes üzembe helyezési hiba

Ha webes üzembe helyezést használ az alkalmazás üzembe helyezéséhez, bizonyos hibahelyzetekben a Web Deploy hibakódot fog megjeleníteni a naplóban. A webes üzembe helyezési hibák elhárításához tekintse meg a Web Deploy hibakódjait.

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

  • Győződjön meg arról, hogy az Azure DevOps buildügynök ugyanazon a virtuális hálózaton van (az alhálózat eltérő lehet), mint az ASE belső Terheléselosztója (ILB). Így az ügynök lekérhet kódot az Azure DevOpsból, és üzembe helyezheti az ASE-ben.
  • Az Azure DevOps használata esetén az ügynöknek nem kell az internetről elérhetőnek lennie, csak kimenő hozzáférésre van szüksége az Azure DevOps Service-hez való csatlakozáshoz.
  • Ha virtuális hálózaton üzembe helyezett TFS/Azure DevOps Servert 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. Mivel a virtuális hálózat privát erőforrásai nem rendelkeznek bejegyzésekkel az Azure DNS-ben, ezt hozzá kell adni az ügynökgép gazdagépfájljaihoz.
  • Ha az ASE-konfigurációhoz önaláírt tanúsítványt használ, a -allowUntrusted beállítást be kell állítani az MSDeploy üzembe helyezési feladatában. Azt is javasoljuk, hogy a VSTS_ARM_REST_IGNORE_SSL_ERRORS változót igaz értékre állítsa. Ha egy hitelesítésszolgáltató tanúsítványát használják az ASE-konfigurációhoz, ez nem szükséges. Ha automatikus felcserélésre konfigurált ponton helyezi üzembe az üzembe helyezést, a felcserélés sikertelen lesz, hacsak nem állítja be SCM_SKIP_SSL_VALIDATION vagy SCM_SKIP_ASE_SSL_VALIDATION1 az App Services konfigurációs beállításai között.

Gyakori kérdések

Mi a különbség a AzureWebApp és a AzureRmWebAppDeployment feladatok között?

Az Azure Web App-feladat (AzureWebApp) a legegyszerűbb módszer az Azure Web Appban 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-alkalmazás Szolgáltatás üzembe helyezése 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ási 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ármilyen konfigurációs és paraméterfájlra.

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?

Az App Service-ben való üzembe helyezéskor, ha az Application Insights konfigurálva van, és engedélyezte Remove additional files at destination, akkor azt is engedélyeznie Exclude files from the App_Data folderkell. 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áljam az ügynökömet, ha proxy mögött van az App Service-ben való üzembe helyezés során?

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. Így az ügynök a proxyn keresztül csatlakozhat az Azure Pipelineshoz vagy az Azure DevOps Serverhez. További információ egy saját üzemeltetésű ügynök webproxy mögött való futtatásáról.

Példák

Üzembe helyezés adott alkalmazástípuson

Ha egy adott alkalmazástípusra szeretne üzembe helyezni, állítsa a appType a következő elfogadott értékek bármelyikére: webApp (Windows webalkalmazás), webAppLinux (Web App on Linux), webAppContainer (Web App for Containers - Linux), functionApp (Függvényalkalmazás Windows rendszeren), functionAppLinux (Függvényalkalmazás Linuxon), functionAppContainer (Függvényalkalmazás tárolókhoz – Linux), apiApp (API-alkalmazás), mobileApp (Mobilalkalmazás). Ha nem említi, a webApp lesz az alapértelmezett érték.

A speciális üzembehelyezési beállítások engedélyezéséhez adja hozzá a enableCustomDeployment: true paramétert, és szükség szerint adja hozzá a következő paramétereket.

# deploymentMethod: 'runFromPackage' # supports zipDeploy as well
    # appOffline: boolean    # Not applicable for 'runFromPackage'
    # setParametersFile: string
    # removeAdditionalFilesFlag: boolean
    # additionalArguments: string

Üzembe helyezés Az Azure Web App Linux-tárolóban

Az alábbi YAML-példa egy Azure Web App-tárolóban (Linuxon) telepedik le.

pool:
  vmImage: ubuntu-latest

variables:
  azureSubscriptionEndpoint: Contoso
  DockerNamespace: contoso.azurecr.io
  DockerRepository: aspnetcore
  WebAppName: containersdemoapp

steps:

- task: AzureRMWebAppDeployment@4
  displayName: Azure App Service Deploy
  inputs:
    appType: webAppContainer
    ConnectedServiceName: $(azureSubscriptionEndpoint)
    WebAppName: $(WebAppName)
    DockerNamespace: $(DockerNamespace)
    DockerRepository: $(DockerRepository)
    DockerImageTag: $(Build.BuildId)

Webalkalmazás üzembe helyezése Windows App Service-ben üzembehelyezési pontok között

Az alábbi példa egy webalkalmazást helyez üzembe egy Windows App Service-ben az üzembehelyezési pontok között.

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

stages:
 - stage: DeployDevStage
    displayName: 'Deploy App to Dev Slot'
    jobs:
      - job:  DeployApp
        displayName: 'Deploy App'
        steps:
        - task: DownloadPipelineArtifact@2
          inputs:
            buildType: 'current'
            artifactName: 'drop'
            targetPath: '$(System.DefaultWorkingDirectory)'
        - task: AzureRmWebAppDeployment@4
          inputs:
            ConnectionType: 'AzureRM'
            azureSubscription: 'Fabrikam Azure Subscription - PartsUnlimited'
            appType: 'webApp'
            WebAppName: 'partsunlimited'
            deployToSlotOrASE: true
            ResourceGroupName: 'rgPartsUnlimited'
            SlotName: 'Dev'
            packageForLinux: '$(System.DefaultWorkingDirectory)/**/*.zip'

  - stage: DeployStagingStage
    displayName: 'Deploy App to Staging Slot'
    dependsOn: DeployDevStage
    jobs:
      - job:  DeployApp
        displayName: 'Deploy App'
        steps:
        - task: DownloadPipelineArtifact@2
          inputs:
            buildType: 'current'
            artifactName: 'drop'
            targetPath: '$(System.DefaultWorkingDirectory)'
        - task: AzureRmWebAppDeployment@4
          inputs:
            appType: webApp
            ConnectionType: AzureRM            
            ConnectedServiceName: 'Fabrikam Azure Subscription - PartsUnlimited'
            ResourceGroupName: 'rgPartsUnlimited'
            WebAppName: 'partsunlimited'
            Package: '$(System.DefaultWorkingDirectory)/**/*.zip'
            deployToSlotOrASE: true
            SlotName: 'staging'

Üzembe helyezés utáni példaszkript

A feladat lehetővé teszi az üzembe helyezés testreszabását egy olyan szkript biztosításával, amely az Azure App Service-ben fog futni, miután az alkalmazás összetevőit sikeresen átmásolta az App Service-be. Megadhatja a beágyazott üzembehelyezési szkriptet, vagy egy szkriptfájl elérési útját és nevét az összetevőmappában.

Ez nagyon hasznos, ha közvetlenül az App Service-ben szeretné visszaállítani az alkalmazásfüggőségeket. A Node-, PHP- és Python-alkalmazások csomagjainak visszaállítása segít elkerülni az időtúllépéseket, ha az alkalmazásfüggőség egy nagy összetevőt másol át az ügynökből az Azure App Service-be.

Egy üzembehelyezési szkript például a következő:

@echo off
if NOT exist requirements.txt (
 echo No Requirements.txt found.
 EXIT /b 0
)
if NOT exist "$(PYTHON_EXT)/python.exe" (
 echo Python extension not available >&2
 EXIT /b 1
)
echo Installing dependencies
call "$(PYTHON_EXT)/python.exe" -m pip install -U setuptools
if %errorlevel% NEQ 0 (
 echo Failed to install setuptools >&2
 EXIT /b 1
)
call "$(PYTHON_EXT)/python.exe" -m pip install -r requirements.txt
if %errorlevel% NEQ 0 (
 echo Failed to install dependencies>&2
 EXIT /b 1
)

Követelmények

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