AzureRmWebAppDeployment@4 - Azure App 服務 部署 v4 工作

使用此工作部署至使用 Docker、Java、.NET、.NET Core、Node.js、PHP、Python 或 Ruby 的 Web、行動或 API 應用程式 Azure App 服務。

注意

使用AzureFunctionApp@1來部署 Azure Functions 應用程式。

使用 Web Deploy/Kudu REST API 更新 Windows 上的 Azure App Services、Linux 上的 Web 應用程式、內建映像或 Docker 容器、ASP.NET、.NET Core、PHP、Python 或 Node.js 型 Web 應用程式、Windows 或 Linux 上的函式應用程式、Docker 容器、Mobile Apps、API 應用程式和 Web 作業。

Syntax

# 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 Resource Manager) , PublishProfile (發佈設定檔) 。 預設值:AzureRM

指定要用來部署 Web 應用程式的服務連線類型。

指定 Publish Profile 使用 Visual Studio 建立 的發行配置檔


ConnectionType - 線上類型
string. 必要。 允許的值: AzureRM (Azure Resource Manager) , PublishProfile (發佈設定檔) 。 預設值:AzureRM

指定要用來部署 Web 應用程式的服務連線類型。


azureSubscription - Azure 訂用帳戶
輸入別名: ConnectedServiceNamestring. 當 ConnectionType = AzureRM 時為必要。

指定部署的 Azure Resource Manager 訂用帳戶。


PublishProfilePath - 發佈配置檔路徑
string. 當 ConnectionType = PublishProfile 時為必要。 預設值:$(System.DefaultWorkingDirectory)/**/*.pubxml

從 Visual Studio 建立的 發行配置文件 路徑。


PublishProfilePassword - 發佈配置文件密碼
string. 當 ConnectionType = PublishProfile 時為必要。

建議您將密碼儲存在秘密變數中,並在這裡使用該變數,例如 $(Password)


appType - App Service類型
輸入別名: WebAppKindstring. 當 ConnectionType = AzureRM 時為必要。 允許的值: webApp (Windows) 上的 Web 應用程式, webAppLinux (Linux) 上的 Web 應用程式、 webAppContainer (適用於容器的 Web 應用程式 (Linux) ) 、 webAppHyperVContainer (適用於容器的 Web 應用程式 (Windows) ) (、 functionApp 不建議在 Windows (上使用 Azure Functions 工作) ) functionAppLinux 、 ( (Linux 上的函式應用程式、不建議使用 Azure Functions 工作) ) 、 functionAppContainer (適用於容器的函式應用程式 (Linux) (不建議使用 Azure Functions 容器工作工作) ) 、 apiApp (API 應用程式) , mobileApp (Mobile App) 。 預設值:webApp

從 Windows 上的 Web 應用程式、Linux 上的 Web 應用程式、適用於容器的 Web 應用程式、函式應用程式、Linux 上的函式應用程式、適用於容器的函式應用程式和行動應用程式進行選擇。


appType - App Service類型
輸入別名: WebAppKindstring. 當 ConnectionType = AzureRM 時為必要。 允許的值: webApp (Windows) 上的 Web 應用程式 (、 webAppLinux Linux) 上的 Web 應用程式、 (適用於容器的 Web 應用程式 (Linux) ) 、 functionAppwebAppContainer (Windows) 上的函式應用程式、 functionAppLinux Linux functionAppContainer) (上的 (函式應用程式、適用於容器的函式應用程式 (Linux) ) 、 apiApp (API 應用程式) , mobileApp (Mobile App) 。 預設值:webApp

從 Windows 上的 Web 應用程式、Linux 上的 Web 應用程式、適用於容器的 Web 應用程式、函式應用程式、Linux 上的函式應用程式、適用於容器的函式應用程式和行動應用程式進行選擇。


WebAppName - App Service 名稱
string. 當 ConnectionType = AzureRM 時為必要。

指定現有 Azure App 服務 的名稱。 只有在使用工作 助理 時,才會列出以所選應用程式類型為基礎的應用程式服務。


deployToSlotOrASE - 部署至位置或 App Service 環境
輸入別名: DeployToSlotOrASEFlagboolean. 選擇性。 使用時機 ConnectionType = AzureRM && WebAppKind != ""。 預設值:false

指定部署至現有部署位置或 Azure App 服務 環境的選項。 針對這兩個目標,工作需要資源組名。 如果部署目標為位置,則部署預設為生產位置。 您可以提供任何其他現有的位置名稱。 如果部署目標是 Azure App 服務 環境,請將位置名稱保留為 Production ,並只指定資源組名。


ResourceGroupName - 資源群組
string. 當 DeployToSlotOrASEFlag = true 時為必要。

當部署目標為部署位置或 App Service 環境 時,需要資源組名。

指定包含上述 Azure App 服務 的 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 檔案所產生之 App Service 內容的資料夾。

變數為 組建發行。 支援通配符

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


RuntimeStack - 運行時間堆疊
string. 選擇性。 使用 時 WebAppKind = webAppLinux

在 Linux 上指定函式應用程式的架構和版本。


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 App 服務 上執行的腳本來自定義部署。 選擇內嵌部署文稿或腳本檔案的路徑和名稱。 深入瞭解 Azure App 服務 部署


ScriptType - 部署腳本類型
string. 選擇性。 使用 時 ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppkind != functionAppContainer。 允許的值: Inline ScriptFile Path (腳本檔案路徑) 。

藉由在部署成功之後,提供在 Azure App 服務 上執行的腳本來自定義部署。 選擇內嵌部署文稿或腳本檔案的路徑和名稱。 深入瞭解 Azure App 服務 部署


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 App 服務。 中的 web.config 值可以編輯,並根據應用程式架構而有所不同。 例如,針對 node.js 應用程式, web.config 將會有啟動檔案和iis_node模組值。 這個編輯功能僅適用於產生的 web.config。 深入瞭解 Azure App 服務 部署


WebConfigParameters - 為 Python、Node.js、Go 和 Java 應用程式產生 web.config 參數
string. 選擇性。 使用時機 WebAppKind != webAppContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war

如果應用程式沒有標準Web.config,則會產生標準並部署到 Azure App 服務。 中的 web.config 值可以編輯,並根據應用程式架構而有所不同。 例如,針對 node.js 應用程式, web.config 將會有啟動檔案和iis_node模組值。 這個編輯功能僅適用於產生的 web.config。 深入瞭解 Azure App 服務 部署


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 Deploy) 、 zipDeploy (Zip Deploy) , 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 Deploy) 、 zipDeploy (Zip Deploy) , 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 App 服務 離線。 同步處理成功完成之後,將會移除檔案。


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 App 服務 離線。 同步處理成功完成之後,將會移除檔案。


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' 以刪除 App Service 套件或資料夾中沒有相符檔案之 Azure App 服務 上的檔案。 這也會移除與此 Azure App 服務 上安裝之任何擴充功能相關的所有檔案。 若要避免這種情況,請選取 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' 以刪除 App Service 套件或資料夾中沒有相符檔案之 Azure App 服務 上的檔案。 這也會移除與此 Azure App 服務 上安裝之任何擴充功能相關的所有檔案。 若要避免這種情況,請選取 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 App 服務 部署/刪除。


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 App 服務 部署/刪除。


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 Deploy自變數。 部署 Azure App 服務 時,將會套用這些專案。 範例: -disableLink:AppPoolExtension -disableLink:ContentExtension。 深入瞭解 Web Deploy 作業設定


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 Deploy自變數。 部署 Azure App 服務 時,將會套用這些專案。 範例: -disableLink:AppPoolExtension -disableLink:ContentExtension。 深入瞭解 Web Deploy 作業設定


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 App 服務 應用程式設定中啟用 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 App 服務 應用程式設定中啟用 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

在建置或發行管線中定義的變數將會與任何組態檔和parameters.xml檔案之 configSectionsappSettingsapplicationSettingsconnectionStrings 區段中的索引鍵或名稱項目進行比對。 變數替代會在組態轉換之後執行。

如果在發行管線和階段中定義相同的變數,階段變數將會取代發行管線變數。 深入瞭解 [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

在建置或發行管線中定義的變數將會與任何組態檔和parameters.xml檔案之 configSectionsappSettingsapplicationSettingsconnectionStrings 區段中的索引鍵或名稱項目進行比對。 變數替代會在組態轉換之後執行。

如果在發行管線和階段中定義相同的變數,階段變數將會取代發行管線變數。 深入瞭解 [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 表示式加以指定。 例如,若要取代下列範例中的 值,請在組建或發行管線中定義名為 Data.DefaultConnection.ConnectionStringConnectionString變數, (或發行管線階段) 。

{
  "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 表示式加以指定。 例如,若要取代下列範例中的 值,請在組建或發行管線中定義名為 Data.DefaultConnection.ConnectionStringConnectionString變數, (或發行管線階段) 。

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

變數替代會在組態轉換之後執行。 注意:建置和發行管線變數會從替代中排除。 深入瞭解 JSON 變數替代


工作控制選項

除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控件選項和一般工作屬性

輸出變數

此工作會定義下列 輸出變數,您可以在下游步驟、作業和階段中取用這些變數。

AppServiceApplicationUrl
所選App Service的應用程式URL。

備註

使用此工作來部署至 Azure 上的 App Services 範圍。 此工作適用於執行 Windows、Linux 或 Mac 的跨平臺代理程式,並使用數種不同的 基礎部署技術

此工作適用於以 ASP.NETASP.NET CorePHPJavaPythonGoNode.js 為基礎的 Web 應用程式。

工作可用來部署至各種 Azure App 服務,例如:

工作的必要條件

您必須在目標機器中設定下列必要條件, () ,工作才能正常運作。

  • App Service 實例。 工作是用來將 Web 應用程式專案或 Azure 函式專案部署至現有的 Azure App 服務 實例,該實例必須在工作執行之前存在。 您可以從 Azure 入口網站 建立 App Service 實例,並在該處設定。 或者,Azure PowerShell 工作可用來執行 AzureRM PowerShell 腳本來布建和設定 Web 應用程式。

  • Azure 訂用帳戶。 若要部署至 Azure,Azure 訂用帳戶必須 連結到管線。 工作無法與 Azure 傳統服務連線搭配運作,而且不會在工作的設定中列出這些連線。

使用注意事項

  • 此工作僅適用於 Azure Resource Manager 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 Service,而且您已啟用 [移除目的地的其他檔案],請確定您也啟用 [從App_Data資料夾中排除檔案],以維持 Application Insights 延伸模組的安全狀態。 這是必要的,因為 Application Insights 連續 Web 作業會安裝到 App_Data 資料夾中。

部署方法

這項工作提供數種部署方法。 Web Deploy (msdeploy.exe) 是預設值。 若要變更部署選項,請展開 [其他部署選項 ],然後啟用 [選取部署方法 ] 以從其他套件型部署選項中選擇。

根據 Azure App 服務 和代理程式的類型,工作會選擇適當的部署技術。 工作所使用的不同部署技術如下:

根據預設,工作會根據輸入套件類型、App Service 類型和代理程式操作系統,嘗試選取適當的部署技術。

自動偵測邏輯

針對以 Windows 為基礎的代理程式。

App Service類型 套件類型 部署方法
Linux 上的 WebApp 或 Linux 上的函式應用程式 Folder/Zip/jar
War
Zip 部署 War Deploy
適用於容器的 WebApp (Linux) 或適用於容器的函式應用程式 (Linux) 更新應用程式設定 NA
Windows 上的 WebApp、Windows 上的函式應用程式、API 應用程式或行動應用程式 War
Jar
MsBuild 套件類型或部署至虛擬應用程式


資料夾/Zip
War Deploy
Zip Deploy Web Deploy


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

對於任何 App Service 類型) 的非 Windows 代理程式 (,工作會依賴 Kudu REST API 來部署應用程式。

Web Deploy

Web Deploy (msdeploy.exe) 可用來使用 Windows 代理程式將 Web 應用程式部署至 Azure App 服務。 Web Deploy 功能豐富,並提供下列選項:

  • 重新命名鎖定的檔案:在 Azure App 服務 設定中啟用 msdeploy 旗MSDEPLOY\_RENAME\_LOCKED\_FILES=1標,重新命名網頁伺服器仍在使用中的任何檔案。 如果設定此選項,可讓 msdeploy 重新命名在應用程式部署期間鎖定的檔案。

  • 在目的地移除其他檔案:刪除 Azure App 服務 中未部署 App Service 成品套件或資料夾中相符檔案的檔案。

  • 從App_Data資料夾中排除檔案:防止App_Data資料夾中的檔案 (在部署) 部署至 Azure App 服務

  • 其他 Web Deploy 自變數:部署 Azure App 服務 時要套用的自變數。 範例: -disableLink:AppPoolExtension -disableLink:ContentExtension. 如需 Web Deploy 作業設定的更多範例,請參閱 Web Deploy 作業設定

Web Deploy 3.6 在代理程式上安裝 Web Deploy。 Web Deploy 3.5 必須安裝,而不需要配套的 SQL 支援。 安裝 Web Deploy 時不需要選擇任何自訂設定。 Web Deploy 安裝在 C:/Program Files (x86)/IIS/Microsoft Web Deploy V3

Kudu REST API

當目標為 Windows 上的 Web 應用程式、Linux 上的 Web 應用程式 (內建來源) 或函式應用程式時,Kudu REST API 可同時在 Windows 和 Linux 自動化代理程式上運作。 工作會使用 Kudu 將檔案複製到 Azure App 服務。

Container Registry

當目標為適用於容器的 Web 應用程式時,適用於 Windows 和 Linux 自動化代理程式。 工作會藉由設定適當的容器登錄、存放庫、映像名稱和標記資訊來更新應用程式。 您也可以使用 工作來傳遞容器映像的啟動命令。

Zip 部署

預期 .zip 部署套件,並將檔案內容部署至 Azure 中 App Service 或函式應用程式的 wwwroot 資料夾。 此選項會覆寫 wwwroot 資料夾中的所有現有內容。 如需詳細資訊,請參閱適用於 Azure Functions 的 Zip 部署

從套件執行

預期與 Zip Deploy 相同的部署套件。 不過,除了將檔案部署至 wwwroot 資料夾,而是由 Functions 運行時間掛接整個套件,而 wwwroot 資料夾中的檔案會變成唯讀的。 如需詳細資訊,請參閱從套件檔案執行 Azure Functions

War Deploy

預期 .war 部署套件,並將檔案內容部署至 Azure 中 App Service 的 wwwroot 資料夾或 webapps 資料夾。

疑難排解

我無法使用 Windows 代理程式的 Microsoft Entra ID 驗證,將 Web Deploy 部署至我的 Azure App 服務

Azure App 服務 部署工作支援使用 Microsoft Entra ID 連線到 Microsoft Azure,除非有下列三個條件:

  • 您在 Windows 代理程式上使用 Web Deploy 套件格式
  • 您的代理程式正在執行舊版 的msdeploy.exe (,例如使用 windows-2019 裝載的代理程式映像)
  • 您的 Azure App 服務 已停用基本身份驗證

如果存在這三個條件,您會收到類似的錯誤 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 App 服務 部署工作在 windows-2022 (或 windows 最新) 上執行。
  3. 如果這兩個選項都無法執行,您可以啟用 Azure App 服務 的基本身份驗證

錯誤:無法擷取 Azure 的存取權杖。 確認使用的服務主體是否有效且未過期。

工作會使用服務連線中的服務主體向 Azure 進行驗證。 如果服務主體已過期或沒有 App Service 的許可權,工作就會失敗,並出現此錯誤。 請確認使用的服務主體是否有效,以及是否存在於應用程式註冊中。 如需詳細資訊,請參閱使用角色型存取控制來管理 Azure 訂用帳戶資源的存取此部落格文章 也包含使用服務主體驗證的詳細資訊。

SSL 錯誤

如果您想要在 App Service 中使用憑證,則必須由受信任的證書頒發機構單位簽署憑證。 如果您的 web 應用程式出現憑證驗證錯誤,您可能使用了自我簽署憑證。 將名為 VSTS_ARM_REST_IGNORE_SSL_ERRORS 的變數設定為組建或發行管線中的值 true ,以解決錯誤。

發行長時間停止回應,然後失敗

此問題可能是 App Service 方案中容量不足的結果。 若要解決此問題,您可以相應增加 App Service 實例,以提高可用的CPU、RAM和磁碟空間,或嘗試使用不同的App Service方案。

5xx 錯誤碼

如果您看到 5xx 錯誤, 請檢查 Azure 服務的狀態

Azure 函式突然停止運作

如果自上次部署以來超過一年,Azure Functions 可能會突然停止運作。 如果您在 「deploymentMethod」 中使用 「RunFromPackage」 進行部署,會產生到期日為 1 年的 SAS,並在應用程式組態中設定為 「WEBSITE_RUN_FROM_PACKAGE」。 Azure Functions 使用此 SAS 來參考套件檔案以進行函式執行,因此如果 SAS 已過期,將不會執行函式。 若要解決此問題,請再次部署,以產生到期日為一年的SAS。

錯誤:找不到具指定模式的套件

請確認工作中所提及的套件已在組建或上一個階段中發行為成品,並已在目前的作業中下載。

錯誤:msBuild 套件類型不支援使用 zip 部署發佈選項

透過 MSBuild 工作所建立的 Web 套件 (具有預設自變數) 具有巢狀資料夾結構,只能由 Web Deploy 正確部署。 發佈至 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 產生 web.config 參數]、[Node.js]、[Go] 和 [Java 應用程式]。

    [產生 web.config 參數] 對話框的螢幕快照。

  • 按兩下 [為 Python 產生 web.config 參數] 按鈕,Node.js、Go 和 Java 應用程式以編輯參數。

    應用程式架構下拉式清單的螢幕快照。

  • 從下拉式清單中選取您的應用程式類型。

  • 按一下 [確定]。 這會填入產生 web.config 所需的 web.config 參數。

注意

本節已被取代,且已取代為 檔案轉換 工作。

ERROR_FILE_IN_USE

將 .NET 應用程式部署至 Windows 上的 Web 應用程式時,部署可能會失敗,錯誤碼 ERROR_FILE_IN_USE。 若要解決此錯誤,請確定工作已啟用 [重新命名鎖定的檔案 ] 和 [ 讓應用程式離線 ] 選項。 針對零停機部署,請使用位置交換。

您也可以使用「從套件部署執行」來避免資源鎖定。

Web 部署錯誤

如果您是使用 web deploy 來部署您的應用程式,在某些錯誤案例中,Web Deploy 會在記錄中顯示錯誤碼。 若要針對 Web 部署錯誤進行疑難解答,請參閱 Web Deploy 錯誤碼

App Service 環境 (ASE) 上的 Web 應用程式部署無法運作

  • 請確定 Azure DevOps 組建代理程式位於相同的 VNET (子網上,) 與 ASE 的內部 Load Balancer (ILB) 不同。 這可讓代理程式從 Azure DevOps 提取程式代碼,並部署至 ASE。
  • 如果您使用 Azure DevOps,則代理程式不需要從因特網存取,但只需要輸出存取才能連線到 Azure DevOps Service。
  • 如果您使用部署在 虛擬網路 中的 TFS/Azure DevOps Server,則可以完全隔離代理程式。
  • 組建代理程式必須設定為部署所需的 Web 應用程式的 DNS 組態。 由於 虛擬網路 中的私人資源在 Azure DNS 中沒有專案,因此這必須新增至代理程式電腦上的主機檔案。
  • 如果自我簽署憑證用於 ASE 設定, -allowUntrusted 則必須在 MSDeploy 的部署工作中設定此選項。 也建議將變數 VSTS_ARM_REST_IGNORE_SSL_ERRORS 設定為 true。 如果證書頒發機構單位的憑證用於 ASE 設定,就不應該這樣做。 如果您要部署到設定為自動交換的插槽,除非您在應用程式服務組態設定中設定 SCM_SKIP_SSL_VALIDATIONSCM_SKIP_ASE_SSL_VALIDATION1 否則交換將會失敗。

常見問題集

AzureRmWebAppDeployment 工作之間的差異AzureWebApp為何?

Azure Web 應用程式工作 (AzureWebApp) 是部署至 Azure Web 應用程式的最簡單方式。 根據預設,會在 Azure Web 應用程式中的根應用程式進行您的部署。

Azure App 服務 部署工作 (AzureRmWebAppDeployment) 可以處理更多自定義案例,例如:

  • 修改 Web 套件和 XML 參數檔案內的組態設定
  • 如果您使用 IIS 部署程式,請使用 Web Deploy 進行部署。
  • 部署至虛擬應用程式
  • 部署到其他應用程式類型,例如容器應用程式、函式應用程式、WebJobs 或 API 和行動應用程式。

注意

個別的檔案轉換工作也支援檔案轉換和變數替代,以在 Azure Pipelines 中使用。 您可以使用檔案轉換工作,在任何組態和參數檔案上套用檔案轉換和變數替代。

如何設定服務連線?

這項工作需要 Azure Resource Manager 服務連線

如何使用 Application Insights 設定 Web 作業部署?

當您部署至 App Service 時,如果您已設定 Application Insights 且已啟用 Remove additional files at destination,則也需要啟用 Exclude files from the App_Data folder。 啟用此選項可讓 Application Insights 延伸模組保持安全狀態。 此步驟是必要的,因為 Application Insights 連續 WebJob 會安裝到 App_Data 資料夾中。

當我部署至 App Service 時,應該如何設定代理程式位於 Proxy 後方?

如果您的自我裝載代理程式需要 Web Proxy,您可以在設定期間通知代理程式有關 Proxy。 這樣做可讓您的代理程式透過 Proxy 連線到 Azure Pipelines 或 Azure DevOps Server。 深入瞭解在 Web Proxy 後方執行自我裝載代理程式

範例

部署至特定應用程式類型

若要部署至特定應用程式類型, 設定appType為下列任一可接受的值: webApp windows) 上的 Web 應用程式 ( (、 webAppLinux Linux 上的 Web 應用程式) (、 webAppContainer (Web App for Containers - Linux) 、Windows functionAppLinux) 上的函式應用程式、Linux (函式應用程式) functionAppContainer 、 (適用於容器的函式應用程式 - Linux functionApp) 、 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 App 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 Service

下列範例會將 Web 應用程式部署到跨部署位置的 Windows App Service。

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'

部署後腳本範例

工作提供自定義部署的選項,方法是提供腳本,以在應用程式成品成功複製到 App Service 之後,於 Azure App 服務 上執行。 您可以選擇提供內嵌部署文稿,或成品資料夾中腳本檔案的路徑和名稱。

當您想要直接在 App Service 上還原應用程式相依性時,這非常有用。 還原 Node、PHP 和 python 應用程式的套件有助於避免應用程式相依性導致將大型成品從代理程式複製到 Azure App 服務 時逾時。

部署文稿的範例如下:

@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
要求
Capabilities 此工作不符合作業中後續工作的任何需求。
命令限制 任何
Settable 變數 任何
代理程式版本 2.104.1 或更新版本
工作類別 部署

另請參閱

  • 此工作在 GitHub 上 開放原始碼。 歡迎提供意見反應和貢獻。