Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ü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 = AzureRM
eseté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 = PublishProfile
eseté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 = PublishProfile
eseté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 = AzureRM
eseté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 = AzureRM
eseté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 = true
eseté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 = true
eseté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 = webAppHyperVContainer
eseté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 = webAppHyperVContainer
eseté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 = functionAppLinux
eseté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 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 != functionAppContainer
eseté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 != functionAppContainer
eseté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 value
haszná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 value
haszná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 .jar
eseté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:value
szintaxist 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 = webAppLinux
eseté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 AzureRmWebAppDeployment
verzióban:
-
One Deploy
Linux App Service támogatása. További információért tekintse meg a következő One Deploy szakaszt.
- feladat előfeltételei
- használati megjegyzések
- üzembehelyezési módszerek
- Hibaelhárítás
- Gyakori kérdések
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:
- Web Apps windowsos és linuxos
- Webalkalmazások tárolókhoz
- Függvényalkalmazások Windows és Linux
- függvényalkalmazások tárolókhoz
- WebJobs-
- Az Azure App Service-környezetek alatt konfigurált alkalmazások
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éketrue
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 beSCM_SKIP_SSL_VALIDATION
vagySCM_SKIP_ASE_SSL_VALIDATION
1
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:
- webes üzembe helyezési
- Kudu REST API-k
- Tárolóregisztrációs adatbázis
- Zip-üzembe helyezés
- Egy telepítés
- Futtatás csomagból
- Háborús bevetés
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énekhaszná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.
- 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.
- 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.
- 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:
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"
:Adjon hozzá egy archív feladatot, és módosítsa az értékeket az alábbiak szerint:
Módosítsa a gyökérmappát vagy a fájlt archiválásra
$(System.DefaultWorkingDirectory)\\WebAppContent
.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:
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.
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.
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 aVSTS_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 beSCM_SKIP_SSL_VALIDATION
vagySCM_SKIP_ASE_SSL_VALIDATION
1
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:
- Konfigurációs beállítások módosítása webes csomagokban és XML-paraméterek fájljaiban.
- Üzembe helyezés a Web Deploy használatával, ha az IIS üzembehelyezési folyamatához van szokva.
- Üzembe helyezés virtuális alkalmazásokban.
- Üzembe helyezés más alkalmazástípusokban, például Tárolóalkalmazásokban, Függvényalkalmazásokban, WebJobs-alkalmazásokban vagy API- és Mobilalkalmazásokban.
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 folder
kell. 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ípusra
- Üzembe helyezés az Azure Web App Linux-tárolóban
- Webalkalmazás üzembe helyezése Windows App Service-ben üzembehelyezési pontokon
- üzembehelyezési példaszkript
Ü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 |