AzureRmWebAppDeployment@4 - Azure 应用服务部署 v4 任务

使用此任务部署到使用 Docker、Java、.NET、.NET Core、Node.js、PHP、Python 或 Ruby Azure 应用服务 Web、移动或 API 应用。

注意

使用 AzureFunctionApp@1 部署Azure Functions应用。

Azure 应用 使用内置映像或 Docker 容器、ASP.NET、.NET Core、PHP、Python 或基于 Node.js 的 Web 应用程序、Windows 或 Linux 上的 Function App(使用 Docker 容器、移动应用、API 应用程序和 Web 作业)更新 Windows 上的服务、使用 Web 部署/Kudu REST API 的 Linux 上的 Web 应用。

语法

# Azure App Service deploy v4
# 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@4
  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: # string. 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.
# Azure App Service deploy v4
# 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@4
  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 != 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: # string. 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 != 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 != 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 != functionAppContainer. Deployment script path. 
  # File Transforms & Variable Substitution Options
    #WebConfigParameters: # string. Optional. Use when WebAppKind != webAppContainer && 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 != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. XML transformation. Default: false.
    #enableXmlVariableSubstitution: false # boolean. Alias: XmlVariableSubstitution. Optional. Use when WebAppKind != webAppContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. XML variable substitution. Default: false.
    #JSONFiles: # string. Optional. Use when WebAppKind != webAppContainer && 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 != 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 != 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 != 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 != 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 != 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 != 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 != 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 != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Rename locked files. Default: true.
# Azure App Service deploy v4
# 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@4
  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' | '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. Registry or Namespace. 
    #DockerRepository: # string. Required when WebAppKind = webAppContainer || WebAppkind = functionAppContainer. Image. 
    #DockerImageTag: # string. Optional. Use when WebAppKind = webAppContainer || WebAppkind = functionAppContainer. Tag. 
    #VirtualApplication: # string. Optional. Use when WebAppKind != webAppLinux && WebAppKind != webAppContainer && 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: # string. 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. Startup command. 
  # Post Deployment Action
    #ScriptType: # 'Inline Script' | 'File Path'. Optional. Use when ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && 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 != 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 != functionAppContainer. Deployment script path. 
  # File Transforms & Variable Substitution Options
    #WebConfigParameters: # string. Optional. Use when WebAppKind != webAppContainer && 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 != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. XML transformation. Default: false.
    #enableXmlVariableSubstitution: false # boolean. Alias: XmlVariableSubstitution. Optional. Use when WebAppKind != webAppContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. XML variable substitution. Default: false.
    #JSONFiles: # string. Optional. Use when WebAppKind != webAppContainer && 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 != 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 != 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 != 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 != 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 != 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 != 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 != 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 != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Rename locked files. Default: true.
# Azure App Service deploy v4
# 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@4
  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' | '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. Registry or Namespace. 
    #DockerRepository: # string. Required when WebAppKind = webAppContainer || WebAppkind = functionAppContainer. Image. 
    #DockerImageTag: # string. Optional. Use when WebAppKind = webAppContainer || WebAppkind = functionAppContainer. Tag. 
    #VirtualApplication: # string. Optional. Use when WebAppKind != webAppLinux && WebAppKind != webAppContainer && 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: # string. Optional. Use when WebAppKind = webAppLinux. Runtime Stack. 
    #RuntimeStackFunction: # 'DOCKER|microsoft/azure-functions-dotnet-core2.0:2.0' | 'DOCKER|microsoft/azure-functions-node8:2.0'. Optional. Use when WebAppKind = functionAppLinux. Runtime Stack. 
    #StartupCommand: # string. Optional. Use when WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = functionAppLinux. Startup command. 
  # Post Deployment Action
    #ScriptType: # 'Inline Script' | 'File Path'. Optional. Use when ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && 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 != 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 != functionAppContainer. Deployment script path. 
  # File Transforms & Variable Substitution Options
    #WebConfigParameters: # string. Optional. Use when WebAppKind != webAppContainer && 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 != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. XML transformation. Default: false.
    #enableXmlVariableSubstitution: false # boolean. Alias: XmlVariableSubstitution. Optional. Use when WebAppKind != webAppContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. XML variable substitution. Default: false.
    #JSONFiles: # string. Optional. Use when WebAppKind != webAppContainer && 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 != 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 != 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 != 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 != 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 != 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 != 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 != 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 != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Rename locked files. Default: true.
# Azure App Service Deploy v4
# Update Azure App Services on Windows, Web App on Linux with built-in images or Docker containers, ASP.NET, .NET Core, PHP, Python or Node.js based Web applications, Function Apps on Windows or Linux with Docker Containers, Mobile Apps, API applications, Web Jobs using Web Deploy / Kudu REST APIs.
- task: AzureRmWebAppDeployment@4
  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' | '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. Registry or Namespace. 
    #DockerRepository: # string. Required when WebAppKind = webAppContainer || WebAppkind = functionAppContainer. Image. 
    #DockerImageTag: # string. Optional. Use when WebAppKind = webAppContainer || WebAppkind = functionAppContainer. Tag. 
    #VirtualApplication: # string. Optional. Use when WebAppKind != webAppLinux && WebAppKind != webAppContainer && 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: # string. Optional. Use when WebAppKind = webAppLinux. Runtime Stack. 
    #RuntimeStackFunction: # 'DOCKER|microsoft/azure-functions-dotnet-core2.0:2.0' | 'DOCKER|microsoft/azure-functions-node8:2.0'. Optional. Use when WebAppKind = functionAppLinux. Runtime Stack. 
    #StartupCommand: # string. Optional. Use when WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer. Startup command. 
  # Post Deployment Action
    #ScriptType: # 'Inline Script' | 'File Path'. Optional. Use when ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && 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 != 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 != functionAppContainer. Deployment script path. 
  # File Transforms & Variable Substitution Options
    #WebConfigParameters: # string. Optional. Use when WebAppKind != webAppContainer && 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 != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. XML transformation. Default: false.
    #enableXmlVariableSubstitution: false # boolean. Alias: XmlVariableSubstitution. Optional. Use when WebAppKind != webAppContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. XML variable substitution. Default: false.
    #JSONFiles: # string. Optional. Use when WebAppKind != webAppContainer && 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 != 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 != 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 != 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 != 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 != 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 != 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 != 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 != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Rename locked files. Default: true.

输入

ConnectionType - 连接类型
string. 必需。 允许的值: AzureRM (Azure 资源管理器) 、 PublishProfile (发布配置文件) 。 默认值:AzureRM

指定用于部署 Web 应用的服务连接类型。

指定 Publish Profile 以使用 Visual Studio 创建的 发布配置文件


ConnectionType - 连接类型
string. 必需。 允许的值: AzureRM (Azure 资源管理器) 、 PublishProfile (发布配置文件) 。 默认值:AzureRM

指定用于部署 Web 应用的服务连接类型。


azureSubscription - Azure 订阅
输入别名: ConnectedServiceNamestring. 当 ConnectionType = AzureRM 时,需要此选项。

指定部署的 Azure 资源管理器 订阅。


PublishProfilePath - 发布配置文件路径
string. 当 ConnectionType = PublishProfile 时,需要此选项。 默认值:$(System.DefaultWorkingDirectory)/**/*.pubxml

从 Visual Studio 创建的 发布配置文件 的路径。


PublishProfilePassword - 发布配置文件密码
string. 当 ConnectionType = PublishProfile 时,需要此选项。

建议将密码存储在机密变量中,并在此处使用该变量,例如 $(Password)


appType - App 服务类型
输入别名: WebAppKindstring. 当 ConnectionType = AzureRM 时,需要此选项。 允许的值: webApp (Windows) 上的 Web 应用、 webAppLinux (Linux) 上的 Web 应用、 webAppContainer (用于容器 (Linux) ) 的 Web 应用、 webAppHyperVContainer (用于容器 (Windows) ) 的 Web 应用、 functionApp Windows (上的函数应用 (不建议、使用 Azure Functions 任务) ) 、 functionAppLinux 不建议在 Linux 上 ( (Function App、使用 Azure Functions 任务) ) 、 functionAppContainer (适用于容器的 Function App (Linux) (不建议使用、对容器任务) ) 使用Azure Functions、 apiApp (API 应用) mobileApp (移动应用) 。 默认值:webApp

从 Windows 上的 Web 应用、Linux 上的 Web 应用、用于容器的 Web 应用、Function App、Linux 上的 Function App、用于容器的函数应用和移动应用中进行选择。


appType - App 服务类型
输入别名: WebAppKindstring. 当 ConnectionType = AzureRM 时,需要此选项。 允许的值: webApp (Windows) 上的 Web 应用、 webAppLinux Linux) 上的 (Web 应用、 webAppContainer (适用于容器的 (Linux) ) Web 应用、 functionApp Windows) 上的 (Function App、 functionAppLinux Linux) 上的 (Function App、 functionAppContainer (适用于容器 (的 Linux) ) apiApp 函数应用、 (API 应用) mobileApp (移动应用) 。 默认值:webApp

从 Windows 上的 Web 应用、Linux 上的 Web 应用、用于容器的 Web 应用、Function App、Linux 上的 Function App、用于容器的函数应用和移动应用中进行选择。


WebAppName - App 服务名称
string. 当 ConnectionType = AzureRM 时,需要此选项。

指定现有Azure 应用服务的名称。 仅当使用任务助手时,才会列出基于所选应用类型的应用服务。


deployToSlotOrASE - 部署到槽或应用服务环境
输入别名: DeployToSlotOrASEFlagboolean. 可选。 在 时 ConnectionType = AzureRM && WebAppKind != ""使用 。 默认值:false

指定要部署到现有部署槽位或Azure 应用服务环境的选项。 对于这两个目标,任务都需要资源组名称。 如果部署目标是槽,则默认情况下部署到 生产 槽。 可以提供任何其他现有槽名称。 如果部署目标是Azure 应用服务环境,请将槽名称保留为 Production ,并仅指定资源组名称。


ResourceGroupName - 资源组
string. 当 DeployToSlotOrASEFlag = true 时,需要此选项。

当部署目标为部署槽位或应用服务环境时,资源组名称是必需的。

指定包含上面指定的Azure 应用服务的 Azure 资源组。


SlotName -
string. 当 DeployToSlotOrASEFlag = true 时,需要此选项。 默认值:production

指定除生产槽以外的现有槽。


DockerNamespace - 注册表或命名空间
string. 当 WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer 时,需要此选项。

特定注册表或命名空间的全局唯一顶级域名。 注意:完全限定的映像名称的格式为: {registry or namespace}/{repository}:{tag}。 例如 myregistry.azurecr.io/nginx:latest


DockerNamespace - 注册表或命名空间
string. 当 WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppkind = webAppHyperVContainer 时,需要此选项。

特定注册表或命名空间的全局唯一顶级域名。 注意:完全限定的映像名称的格式为: {registry or namespace}/{repository}:{tag}。 例如 myregistry.azurecr.io/nginx:latest


DockerNamespace - 注册表或命名空间
string. 当 WebAppKind = webAppContainer || WebAppkind = functionAppContainer 时,需要此选项。

特定注册表或命名空间的全局唯一顶级域名。 注意:完全限定的映像名称的格式为: {registry or namespace}/{repository}:{tag}。 例如 myregistry.azurecr.io/nginx:latest


DockerRepository - 图像
string. 当 WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer 时,需要此选项。

存储容器映像的存储库的名称。 注意:完全限定的映像名称的格式为: {registry or namespace}/{repository}:{tag}。 例如 myregistry.azurecr.io/nginx:latest


DockerRepository - 图像
string. 当 WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppkind = webAppHyperVContainer 时,需要此选项。

存储容器映像的存储库的名称。 注意:完全限定的映像名称的格式为: {registry or namespace}/{repository}:{tag}。 例如 myregistry.azurecr.io/nginx:latest


DockerRepository - 图像
string. 当 WebAppKind = webAppContainer || WebAppkind = functionAppContainer 时,需要此选项。

存储容器映像的存储库的名称。 注意:完全限定的映像名称的格式为: {registry or namespace}/{repository}:{tag}。 例如 myregistry.azurecr.io/nginx:latest


DockerImageTag - 标记
string. 可选。 在 时 WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer使用 。

标记是注册表用于将版本信息应用于 Docker 映像的机制。 注意:完全限定的映像名称的格式为: {registry or namespace}/{repository}:{tag}。 例如 myregistry.azurecr.io/nginx:latest


DockerImageTag - 标记
string. 可选。 在 时 WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppkind = webAppHyperVContainer使用 。

标记是注册表用于将版本信息应用于 Docker 映像的机制。 注意:完全限定的映像名称的格式为: {registry or namespace}/{repository}:{tag}。 例如 myregistry.azurecr.io/nginx:latest


DockerImageTag - 标记
string. 可选。 在 时 WebAppKind = webAppContainer || WebAppkind = functionAppContainer使用 。

标记是注册表用于将版本信息应用于 Docker 映像的机制。 注意:完全限定的映像名称的格式为: {registry or namespace}/{repository}:{tag}。 例如 myregistry.azurecr.io/nginx:latest


VirtualApplication - 虚拟应用程序
string. 可选。 在 时 WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != functionApp && webAppKind != functionAppLinux && WebAppKind != ""使用 。

指定已在Azure 门户中配置的虚拟应用程序的名称。 部署到网站根目录不需要此选项。 在部署 Web 项目之前,必须已配置虚拟应用程序。


VirtualApplication - 虚拟应用程序
string. 可选。 在 时 WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && WebAppKind != functionApp && webAppKind != functionAppLinux && WebAppKind != ""使用 。

指定已在Azure 门户中配置的虚拟应用程序的名称。 部署到网站根目录不需要此选项。 在部署 Web 项目之前,必须已配置虚拟应用程序。


packageForLinux - 包或文件夹
输入别名: Packagestring. 当 ConnectionType = PublishProfile || WebAppKind = webApp || WebAppKind = apiApp || WebAppKind = functionApp || WebAppKind = mobileApp || WebAppKind = webAppLinux || webAppKind = functionAppLinux 时,需要此选项。 默认值:$(System.DefaultWorkingDirectory)/**/*.zip

包的文件路径,或包含 MSBuild 生成的应用服务内容的文件夹,或者压缩的 zip 或 war 文件。

变量为 BuildRelease。 支持通配符

例如 $(System.DefaultWorkingDirectory)/\*\*/\*.zip$(System.DefaultWorkingDirectory)/\*\*/\*.war


RuntimeStack - 运行时堆栈
string. 可选。 在 时 WebAppKind = webAppLinux使用 。

指定 Linux 上的 Function App 的框架和版本。


RuntimeStackFunction - 运行时堆栈
string. 可选。 在 时 WebAppKind = functionAppLinux使用 。 允许的值: 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) ) 。

指定框架和版本。 有关支持的运行时版本,请参阅Azure Functions运行时版本概述。 旧值(如 ) DOCKER|microsoft/azure-functions-* 已弃用。 请使用下拉列表中的新值。


RuntimeStackFunction - 运行时堆栈
string. 可选。 在 时 WebAppKind = functionAppLinux使用 。 允许的值: DOCKER|microsoft/azure-functions-dotnet-core2.0:2.0 (.NET) 、 DOCKER|microsoft/azure-functions-node8:2.0 (JavaScript) 。

指定框架和版本。


StartupCommand - 启动命令
string. 可选。 在 时 WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = functionAppLinux || WebAppKind = webAppHyperVContainer使用 。

指定“启动”命令。 例如:

dotnet exec filename.dll

dotnet filename.dll


StartupCommand - 启动命令
string. 可选。 在 时 WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = functionAppLinux || WebAppkind = webAppHyperVContainer使用 。

指定“启动”命令。 例如:

dotnet exec filename.dll

dotnet filename.dll


StartupCommand - 启动命令
string. 可选。 在 时 WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = functionAppLinux使用 。

指定“启动”命令。 例如:

dotnet exec filename.dll

dotnet filename.dll


StartupCommand - 启动命令
string. 可选。 在 时 WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = functionAppLinux使用 。

指定“启动”命令。 例如, dotnet rundotnet filename.dll


StartupCommand - 启动命令
string. 可选。 在 时 WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer使用 。

指定“启动”命令。


ScriptType - 部署脚本类型
string. 可选。 在 时 ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer使用 。 允许的值: Inline ScriptFile Path (脚本文件路径) 。

通过提供在成功部署后在Azure 应用服务上运行的脚本来自定义部署。 选择内联部署脚本或脚本文件的路径和名称。 详细了解Azure 应用服务部署


ScriptType - 部署脚本类型
string. 可选。 在 时 ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppkind != functionAppContainer使用 。 允许的值: Inline ScriptFile Path (脚本文件路径) 。

通过提供在成功部署后在Azure 应用服务上运行的脚本来自定义部署。 选择内联部署脚本或脚本文件的路径和名称。 详细了解Azure 应用服务部署


InlineScript - 内联脚本
string. 当 ScriptType == Inline Script && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer 时,需要此选项。 默认值::: You can provide your deployment commands here. One command per line.

要执行的脚本。 可以在此处提供部署命令,每行一个命令。 请参阅以下示例。


InlineScript - 内联脚本
string. 当 ScriptType == Inline Script && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppkind != functionAppContainer 时,需要此选项。 默认值::: You can provide your deployment commands here. One command per line.

要执行的脚本。 可以在此处提供部署命令,每行一个命令。 请参阅以下示例。


ScriptPath - 部署脚本路径
string. 当 ScriptType == File Path && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer 时,需要此选项。

要执行的脚本的路径和名称。


ScriptPath - 部署脚本路径
string. 当 ScriptType == File Path && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppkind != functionAppContainer 时,需要此选项。

要执行的脚本的路径和名称。


WebConfigParameters - 为 Python、Node.js、Go 和 Java 应用生成 web.config 参数
string. 可选。 在 时 WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war使用 。

如果应用程序没有标准,则会生成一个标准Web.config并将其部署到Azure 应用服务。 中的 web.config 值可以编辑,并根据应用程序框架而有所不同。 例如,对于 node.js 应用程序, web.config 将具有启动文件,iis_node模块值。 此编辑功能仅适用于生成的 web.config。 详细了解Azure 应用服务部署


WebConfigParameters - 为 Python、Node.js、Go 和 Java 应用生成 web.config 参数
string. 可选。 在 时 WebAppKind != webAppContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war使用 。

如果应用程序没有标准,则会生成一个标准Web.config并将其部署到Azure 应用服务。 中的 web.config 值可以编辑,并根据应用程序框架而有所不同。 例如,对于 node.js 应用程序, web.config 将具有启动文件,iis_node模块值。 此编辑功能仅适用于生成的 web.config。 详细了解Azure 应用服务部署


AppSettings - 应用设置
string. 可选。 在 时 ConnectionType = AzureRM使用 。

使用语法 -key value编辑 Web 应用应用程序设置。 包含空格的值必须括在双引号中。 示例:-Port 5000 -RequestTimeout 5000-WEBSITE_TIME_ZONE "Eastern Standard Time"。 若要提供两个或更多个键值,键值必须用空格分隔。 示例:-key1 "Value1" -Key2 "Value2"


ConfigurationSettings - 配置设置
string. 可选。 在 时 ConnectionType = AzureRM使用 。

使用语法 -key value编辑 Web 应用配置设置。 包含空格的值必须括在双引号中。 示例:-phpVersion 5.6 -linuxFxVersion node|6.11


enableCustomDeployment - 选择部署方法
输入别名: UseWebDeployboolean. 可选。 在 时 ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar使用 。 默认值:false

如果未选中或为 false,任务将根据应用类型、包格式和其他参数自动检测最佳部署方法。 选中任务助手中的此选项以查看支持的部署方法,并选择一种部署应用的方法。


enableCustomDeployment - 选择部署方法
输入别名: UseWebDeployboolean. 可选。 在 时 ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar使用 。 默认值:false

如果未选中或为 false,任务将根据应用类型、包格式和其他参数自动检测最佳部署方法。 选中任务助手中的此选项以查看支持的部署方法,并选择一种部署应用的方法。


DeploymentType - 部署方法
string. 当 UseWebDeploy == true && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar 时,需要此选项。 允许的值: webDeploy (Web 部署) 、 zipDeploy (Zip 部署) 、 runFromZip (从包) 运行。 默认值:webDeploy

确定应用的部署方法。


DeploymentType - 部署方法
string. 当 UseWebDeploy == true && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar 时,需要此选项。 允许的值: webDeploy (Web 部署) 、 zipDeploy (Zip 部署) 、 runFromZip (从包) 运行。 默认值:webDeploy

确定应用的部署方法。


TakeAppOfflineFlag - 使应用脱机
boolean. 可选。 在 时 UseWebDeploy == true && DeploymentType != runFromZip && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar使用 。 默认值:true

指定此选项可在同步操作开始之前将文件置于app_offline.htm根目录中,使Azure 应用服务脱机。 同步成功完成后,该文件将被移除。


TakeAppOfflineFlag - 使应用脱机
boolean. 可选。 在 时 UseWebDeploy == true && DeploymentType != runFromZip && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar使用 。 默认值:true

指定此选项可在同步操作开始之前将文件置于app_offline.htm根目录中,使Azure 应用服务脱机。 同步成功完成后,该文件将被移除。


SetParametersFile - SetParameters 文件
string. 可选。 在 时 UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar使用 。

要使用的文件的位置 SetParameters.xml


SetParametersFile - SetParameters 文件
string. 可选。 在 时 UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar使用 。

要使用的文件的位置 SetParameters.xml


RemoveAdditionalFilesFlag - 删除目标处的其他文件
boolean. 可选。 在 时 UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar使用 。 默认值:false

指定“true”可删除Azure 应用服务上App 服务包或文件夹中没有匹配文件的文件。 这还将删除与此Azure 应用服务上安装的任何扩展相关的所有文件。 若要防止这种情况,请选中复选框 Exclude files from App_Data folder


RemoveAdditionalFilesFlag - 删除目标处的其他文件
boolean. 可选。 在 时 UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar使用 。 默认值:false

指定“true”可删除Azure 应用服务上App 服务包或文件夹中没有匹配文件的文件。 这还将删除与此Azure 应用服务上安装的任何扩展相关的所有文件。 若要防止这种情况,请选中复选框 Exclude files from App_Data folder


ExcludeFilesFromAppDataFlag - 从App_Data文件夹中排除文件
boolean. 可选。 在 时 UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar使用 。 默认值:true

指定选项,以防止将文件夹中的文件App_Data部署到Azure 应用服务/从中删除。


ExcludeFilesFromAppDataFlag - 从App_Data文件夹中排除文件
boolean. 可选。 在 时 UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar使用 。 默认值:true

指定选项,以防止将文件夹中的文件App_Data部署到Azure 应用服务/从中删除。


AdditionalArguments - 其他参数
string. 可选。 在 时 UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar使用 。 默认值:-retryAttempts:6 -retryInterval:10000

语法 -key:value后面的其他 Web 部署参数。 部署 Azure 应用服务时将应用这些参数。 示例: -disableLink:AppPoolExtension -disableLink:ContentExtension。 详细了解 Web 部署操作设置


AdditionalArguments - 其他参数
string. 可选。 在 时 UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar使用 。 默认值:-retryAttempts:6 -retryInterval:10000

语法 -key:value后面的其他 Web 部署参数。 部署 Azure 应用服务时将应用这些参数。 示例: -disableLink:AppPoolExtension -disableLink:ContentExtension。 详细了解 Web 部署操作设置


RenameFilesFlag - 重命名锁定的文件
boolean. 可选。 在 时 UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar使用 。 默认值:true

指定默认值以在Azure 应用服务应用程序设置中启用 msdeploy 标志MSDEPLOY_RENAME_LOCKED_FILES=1。 如果设置了 选项,则允许 msdeploy 重命名在应用部署期间锁定的文件。


RenameFilesFlag - 重命名锁定的文件
boolean. 可选。 在 时 UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar使用 。 默认值:true

指定默认值以在Azure 应用服务应用程序设置中启用 msdeploy 标志MSDEPLOY_RENAME_LOCKED_FILES=1。 如果设置了 选项,则允许 msdeploy 重命名在应用部署期间锁定的文件。


enableXmlTransform - XML 转换
输入别名: XmlTransformationboolean. 可选。 在 时 WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war使用 。 默认值:false

配置转换将在 *.Release.config*.<EnvironmentName>.config 上运行 *.config file。 配置转换在变量替换之前运行。 仅 Windows 平台支持 XML 转换


enableXmlTransform - XML 转换
输入别名: XmlTransformationboolean. 可选。 在 时 WebAppKind != webAppContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war使用 。 默认值:false

配置转换将在 *.Release.config*.<EnvironmentName>.config 上运行 *.config file。 配置转换在变量替换之前运行。 仅 Windows 平台支持 XML 转换


enableXmlVariableSubstitution - XML 变量替换
输入别名: XmlVariableSubstitutionboolean. 可选。 在 时 WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war使用 。 默认值:false

生成或发布管道中定义的变量将与任何配置文件和文件的 、appSettingsapplicationSettingsconnectionStrings 部分中的键或parameters.xml名称条目configSections进行匹配。 变量替换在配置转换后运行。

如果在发布管道和阶段中定义了相同的变量,则阶段变量将取代发布管道变量。 详细了解 [XML 变量替换]] (/azure/devops/pipelines/tasks/transforms-variable-substitution#xml-variable-替换) 。


enableXmlVariableSubstitution - XML 变量替换
输入别名: XmlVariableSubstitutionboolean. 可选。 在 时 WebAppKind != webAppContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war使用 。 默认值:false

生成或发布管道中定义的变量将与任何配置文件和文件的 、appSettingsapplicationSettingsconnectionStrings 部分中的键或parameters.xml名称条目configSections进行匹配。 变量替换在配置转换后运行。

如果在发布管道和阶段中定义了相同的变量,则阶段变量将取代发布管道变量。 详细了解 [XML 变量替换]] (/azure/devops/pipelines/tasks/transforms-variable-substitution#xml-variable-替换) 。


JSONFiles - JSON 变量替换
string. 可选。 在 时 WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war使用 。

提供用换行符分隔的 JSON 文件列表来替换变量值。 文件名必须相对于根文件夹。 若要替换嵌套或分层的 JSON 变量,请使用 JSONPath 表达式指定它们。 例如,若要替换以下示例中 的值 ConnectionString ,请在生成或发布管道阶段 (或发布管道阶段) 定义一个名为 Data.DefaultConnection.ConnectionString 的变量。

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

变量替换在配置转换后运行。 注意:从替换中排除生成和发布管道变量。 详细了解 JSON 变量替换


JSONFiles - JSON 变量替换
string. 可选。 在 时 WebAppKind != webAppContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war使用 。

提供用换行符分隔的 JSON 文件列表来替换变量值。 文件名必须相对于根文件夹。 若要替换嵌套或分层的 JSON 变量,请使用 JSONPath 表达式指定它们。 例如,若要替换以下示例中 的值 ConnectionString ,请在生成或发布管道阶段 (或发布管道阶段) 定义一个名为 Data.DefaultConnection.ConnectionString 的变量。

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

变量替换在配置转换后运行。 注意:从替换中排除生成和发布管道变量。 详细了解 JSON 变量替换


任务控制选项

除了任务输入,所有任务都有控制选项。 有关详细信息,请参阅 控制选项和常见任务属性

输出变量

此任务定义以下 输出变量,可在下游步骤、作业和阶段中使用。

AppServiceApplicationUrl
所选App 服务的应用程序 URL。

注解

使用此任务可部署到 Azure 上的一系列应用服务。 该任务在运行 Windows、Linux 或 Mac 的跨平台代理上有效,并使用几种不同的底层部署技术

该任务适用于基于 ASP.NETASP.NET CorePHPJavaPythonGoNode.js的 Web 应用程序。

该任务可用于部署到一系列 Azure 应用服务,例如:

任务的先决条件

必须在目标计算机中设置以下先决条件,任务才能正常运行。

  • 应用服务实例。 该任务用于将 Web 应用项目或 Azure 函数项目部署到现有 Azure 应用服务实例,该实例在任务运行之前必须已经存在。 应用服务实例可以从 Azure 门户中创建并其中配置。 或者,Azure PowerShell 任务可用于运行 AzureRM PowerShell 脚本以设置和配置 Web 应用。

  • Azure 订阅。 要部署到 Azure,必须将 Azure 订阅链接到管道。 该任务不适用于 Azure Classic 服务连接,并且不会在任务的设置中列出这些连接。

使用注意事项

  • 该任务仅适用于 Azure 资源管理器 API
  • 若要忽略 SSL 错误,请在管道中使用值true定义名为 VSTS_ARM_REST_IGNORE_SSL_ERRORS 的变量。 如果要部署到配置为自动交换的槽,除非在应用服务配置设置中设置 SCM_SKIP_SSL_VALIDATIONSCM_SKIP_ASE_SSL_VALIDATION1 ,否则交换将失败。
  • 对于面向 Windows 上的 Web 应用的 .NET 应用,请确保启用“重命名锁定的文件”和“使应用脱机”设置,以避免部署失败并出现 ERROR_FILE_IN_USE 错误。 对于零停机时间部署,请使用槽交换选项。
  • 当部署到已配置 Application Insights 的应用程序服务,并且你已启用“移除目标中的其他文件”时,请确保同时启用“从 App_Data 文件夹中排除文件”,以使 Application Insights 扩展保持安全状态。 必需,因为 Application Insights 连续 Web 作业已安装到 App_Data 文件夹中。

部署方法

在此任务中可以使用多种部署方法。 默认值为 Web 部署 (msdeploy.exe)。 若要更改部署选项,请展开“其他部署选项”,并启用“选择部署方法”以从其他基于包的部署选项中进行选择。

该任务根据 Azure 应用服务和代理的类型选择合适的部署技术。 该任务使用的不同部署技术包括:

默认情况下,该任务会尝试根据输入包类型、应用服务类型和代理操作系统选择适当的部署技术。

自动检测逻辑

对于基于 Windows 的代理。

应用服务类型 包类型 部署方法
Linux 上的 WebApp 或 Linux 上的 Function App Folder/Zip/jar
War
Zip 部署
War 部署
用于容器的 Web 应用 (Linux) 或用于容器的函数应用 (Linux) 更新应用设置 NA
Windows 上的 Web 应用、Windows 上的函数应用、API 应用或移动应用 War
Jar
MsBuild 包类型或部署到虚拟应用程序


文件夹/Zip
War Deploy
Zip Deploy
Web Deploy

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

在非 Windows 代理上(对于任何应用服务类型),该任务依赖使用 Kudu REST API 来部署应用。

Web 部署

Web 部署 (msdeploy.exe) 可用于使用 Windows 代理将 Windows 上的 Web 应用或函数应用部署到 Azure 应用服务。 Web 部署功能丰富,提供如下选项:

  • 重命名锁定的文件:通过在Azure 应用服务设置中启用 msdeploy 标志MSDEPLOY\_RENAME\_LOCKED\_FILES=1,重命名 Web 服务器仍在使用的任何文件。 此选项(如果已设置)允许 msdeploy 重命名在应用部署期间锁定的文件。

  • 移除目标中的其他文件:删除 Azure 应用服务中的特定文件,即在即将部署的应用服务工件包或文件夹中没有匹配文件。

  • 从 App_Data 文件夹中排除文件:阻止将 App_Data 文件夹中的文件(位于正在部署的项目包/文件夹中)中的文件部署到 Azure 应用服务

  • 其他 Web 部署参数:部署 Azure 应用服务时将应用的参数。 示例:-disableLink:AppPoolExtension -disableLink:ContentExtension。 有关 Web 部署操作设置的更多示例,请参阅 Web 部署操作设置

从 Web 部署 3.6 在代理上安装 Web 部署。 必须在没有捆绑 SQL 支持的情况下安装 Web 部署 3.5。 安装 Web 部署时,无需选择任何自定义设置。 Web 部署安装在 。C:/Program Files (x86)/IIS/Microsoft Web Deploy V3

Kudu REST API

当目标是 Windows 上的 Web 应用、Linux 上的 Web 应用(内置源)或函数应用时,可以在 Windows 和 Linux 自动化代理上运行 Kudu REST API。 该任务使用 Kudu 将文件复制到 Azure 应用服务。

容器注册表

当目标是用于容器的 Web 应用时,适用于 Windows 和 Linux 自动化代理。 该任务通过设置相应的容器注册表、存储库、映像名称和标记信息来更新应用。 还可以使用任务为容器映像传递启动命令。

Zip 部署

需要 .zip 部署包,并将文件内容部署到 Azure 中应用服务或函数应用的 wwwroot 文件夹中。 此选项将覆盖 wwwroot 文件夹中的所有现有内容。 有关详细信息,请参阅 Azure Functions 的 Zip 部署

从包运行

需要与 Zip 部署相同的部署包。 但是,整个包由函数时装载,而不是将文件部署到 wwwroot 文件夹中,wwwroot 文件夹中的文件变为只读。 有关详细信息,请参阅从包文件运行 Azure Functions

War 部署

需要 .war 部署包,并将文件内容部署到 Azure 中应用服务的 wwwroot 文件夹或 webapps 文件夹。

故障排除

我无法使用 Windows 代理中的Microsoft Entra ID身份验证将 Web 部署到我的Azure 应用服务

Azure 应用服务部署任务支持使用 Microsoft Entra ID 通过 ARM 服务连接连接到 Microsoft Azure,除非存在以下三个条件:

  • 你在 Windows 代理上使用 Web 部署包格式
  • 代理使用较旧版本的 msdeploy.exe (运行,例如在使用 windows-2019 托管代理映像时)
  • 已为Azure 应用服务禁用基本身份验证

如果存在这三个条件,则会收到类似于 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.

若要解决此问题,可以从以下选项中选择(按首选项顺序)。

  1. 更新代理映像。 如果使用托管代理,请从 windows-2019 移动到 windows-2022 (或 windows-latest) 。 如果使用自承载代理,请在代理上安装 Visual Studio 2022,以获取 较新版本的msdeploy.exe
  2. 如果依赖于较旧的代理映像,并且无法更新管道的代理,请考虑拆分作业,以便Azure 应用服务部署任务在 windows-2022 (或 windows-latest) 上运行。
  3. 如果这两个选项都不可行,则可以为Azure 应用服务启用基本身份验证

错误:无法提取 Azure 的访问令牌。 请确认使用的服务主体有效且未过期。

该任务使用服务连接中的服务主体向 Azure 进行身份验证。 如果该服务主体已过期或无权访问应用服务,该任务将会失败并出现此错误。 验证所使用的服务主体的有效期以及该主体是否存在于应用注册中。 有关详细信息,请参阅使用基于角色的访问控制来管理对 Azure 订阅资源的访问此博客文章也提供了有关使用服务主体身份验证的详细信息。

SSL 错误

如果你要在应用服务中使用证书,该证书必须已由受信任的证书颁发机构签名。 如果 Web 应用显示证书验证错误,可能是因为使用了自签名证书。 在生成或发布管道中将名为 VSTS_ARM_REST_IGNORE_SSL_ERRORS 的变量设置为值 true 即可解决该错误。

发布长时间挂起,然后失败

此问题可能是因应用服务计划中容量不足而导致。 若要解决此问题,可以纵向扩展应用服务实例以增加可用的 CPU、RAM 和磁盘空间,或者尝试使用其他应用服务计划。

5xx 错误代码

如果出现 5xx 错误,请检查 Azure 服务的状态

Azure 函数突然停止工作

如果自上次部署以来已超过一年时间,Azure Functions可能会突然停止工作。 如果在“deploymentMethod”中使用“RunFromPackage”进行部署,则会生成过期日期为 1 年的 SAS,并在应用程序配置中将其设置为“WEBSITE_RUN_FROM_PACKAGE”的值。 Azure Functions使用此 SAS 来引用用于执行函数的包文件,因此如果 SAS 已过期,则不会执行函数。 若要解决此问题,请再次部署以生成过期日期为一年的 SAS。

错误:找不到具有指定模式的包

检查任务中提及的包是否在生成或上一阶段中作为项目发布,以及是否已在当前作业中下载。

错误:msBuild 包类型不支持使用 zip 部署选项进行发布

通过 MSBuild 任务创建的 Web 包(使用默认参数)具有嵌套文件夹结构,只能由 Web 部署正确部署。 发布到 zip 部署选项不能用于部署这些包。 若要转换打包结构,请执行以下步骤:

  1. 在“生成解决方案”任务中,将“MSBuild 参数”更改为 /p:DeployOnBuild=true /p:DeployDefaultTarget=WebPublish /p:WebPublishMethod=FileSystem /p:DeleteExistingFiles=True /p:publishUrl="$(System.DefaultWorkingDirectory)\\WebAppContent"

    显示“生成解决方案”值的屏幕截图。

  2. 添加“存档”任务并更改值,如下所示:

    1. 将“要存档的根文件夹或文件”更改为 $(System.DefaultWorkingDirectory)\\WebAppContent

    2. 清除“在存档路径前面附加根文件夹名称”复选框:

      显示“存档”值的屏幕截图。

Windows 上的 Web 应用部署成功,但应用无法正常运行

这可能是因为应用中不存在 web.config。 可以将 web.config 文件添加到源,也可以使用任务的“文件转换”和“变量替换选项”自动生成一个文件。

  • 单击该任务,转到“为 Python、Node.js、Go 和 Java 应用生成 web.config 参数”。

    “生成 web.config 参数”对话框的屏幕截图。

  • 单击“更多”按钮,选择“为 Python、Node.js、Go 和 Java 应用生成 web.config 参数”以编辑参数。

    应用程序框架下拉列表的屏幕截图。

  • 从下拉列表中选择你的应用程序类型。

  • 单击“确定”。 这会填充生成 web.config 所需的 web.config 参数。

注意

此部分已弃用,已替换为文件转换任务。

ERROR_FILE_IN_USE

将 .NET 应用部署到 Windows 上的 Web 应用时,部署可能会失败并出现错误代码 ERROR_FILE_IN_USE。 要解决该错误,请确保在任务中启用“重命名锁定文件”和“使应用脱机”选项。 对于零故障时间部署,请使用槽交换。

你还可以使用“从包运行部署”方法来避免资源锁定。

Web 部署错误

如果使用 Web 部署来部署应用,则在某些错误情况下,Web 部署将在日志中显示错误代码。 若要排查 Web 部署错误,请参阅 Web 部署错误代码

应用服务环境 (ASE) 上的 Web 应用部署无法正常运行

  • 确保 Azure DevOps 生成代理与 ASE 的内部负载均衡器 (ILB) 位于同一 VNET 上(子网可以不同)。 这样,代理便可以从 Azure DevOps 中拉取代码并部署到 ASE。
  • 如果使用 Azure DevOps,则无需从 Internet 访问代理,只需出站访问权限即可连接到 Azure DevOps 服务。
  • 如果使用部署在虚拟网络中的 TFS/Azure DevOps Server,则可以完全隔离代理。
  • 必须使用需要部署到的 Web 应用的 DNS 配置来配置生成代理。 由于虚拟网络中的专用资源在 Azure DNS 中没有条目,因此需要将其添加到代理计算机上的 hosts 文件中。
  • 如果将自签名证书用于 ASE 配置, -allowUntrusted 则需要在 MSDeploy 的部署任务中设置选项。 还建议将 变量 VSTS_ARM_REST_IGNORE_SSL_ERRORS 设置为 true。 如果将证书颁发机构颁发的证书用于 ASE 配置,则没有必要这样做。 如果要部署到配置为自动交换的槽,除非在应用服务配置设置中将 或 SCM_SKIP_ASE_SSL_VALIDATION1 设置为 SCM_SKIP_SSL_VALIDATION ,否则交换将失败。

常见问题

AzureRmWebAppDeployment 任务之间的区别AzureWebApp是什么?

Azure Web 应用任务 (AzureWebApp) 是部署到 Azure Web 应用的最简单方法。 默认情况下,部署发生在 Azure Web 应用中的根应用程序。

Azure 应用服务部署任务 (AzureRmWebAppDeployment) 可以处理更多自定义方案,例如:

  • 修改 Web 包和 XML 参数文件中的配置设置
  • 如果你习惯了 IIS 部署过程,请使用 Web 部署进行部署。
  • 部署到虚拟应用程序
  • 部署到其他应用类型,如容器应用、函数应用、WebJobs 或 API 和移动应用。

注意

用于 Azure Pipelines 的单独文件转换任务也支持文件转换和变量替换。 可以使用文件转换任务对任何配置文件及参数文件应用文件转换和变量替换。

如何配置我的服务连接?

此任务需要 Azure 资源管理器服务连接

如何使用 Application Insights 配置 Web 作业部署?

部署到应用服务时,如果配置了 Application Insights 并启用了 Remove additional files at destination,则还需要启用 Exclude files from the App_Data folder。 启用此选项可使 Application Insights 扩展保持安全状态。 此步骤是必需的,因为 Application Insights 连续 WebJob 已安装到 App_Data 文件夹中。

如果在部署到应用服务时我的代理位于 Web 代理后面,我应该如何配置我的代理?

如果自托管代理需要 Web 代理,你可以在配置期间向自托管代理告知有关该 Web 代理的信息。 这样,你的代理便可以通过 Web 代理连接到 Azure Pipelines 或 Azure DevOps Server。 详细了解如何运行位于 Web 代理后面的自托管代理

示例

部署到特定应用类型

若要部署到特定应用类型,请将 appType 设置为以下任一接受的值:webApp(Windows 上的 Web 应用)、webAppLinux(Linux 上的 Web 应用)、webAppContainer(用于容器的 Web 应用 - Linux)、functionApp(Windows 上的函数应用)、functionAppLinux(Linux 上的函数应用)、functionAppContainer(适用于容器的函数应用 - Linux)、apiApp(API 应用)、mobileApp(移动应用)。 如果未指定,webApp 将被视为默认值。

若要启用任何高级部署选项,请添加 参数 enableCustomDeployment: true 并根据需要包括以下参数。

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

部署到 Azure Web 应用 Linux 容器

以下 YAML 示例部署到 Azure Web 应用容器 (Linux) 。

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)

跨部署槽将 Web 应用部署到 Windows App 服务

以下示例将 Web 应用部署到跨部署槽位的 Windows App 服务。

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'

部署后脚本示例

该任务提供一个选项来自定义部署,方法是提供一个脚本,该脚本将在应用的项目成功复制到应用服务后在 Azure 应用服务上运行。 可以选择在工件文件夹中提供内联部署脚本或脚本文件的路径和名称。

如果要直接还原应用服务上的应用程序依赖项,这非常有用。 还原 Node、PHP 和 python 应用的包有助于避免应用程序依赖项导致大型项目从代理复制到Azure 应用服务时超时。

部署脚本的一个示例如下:

@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
)

要求

要求 说明
管道类型 YAML,经典内部版本,经典版本
运行平台 Agent、DeploymentGroup
需求
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置的变量 任意
代理版本 2.104.1 或更高版本
任务类别 部署

另请参阅

  • 此任务在 GitHub 上是开源的。 欢迎提供反馈和建议。