Bagikan melalui


AzureRmWebAppDeployment@4 - Azure App Service menyebarkan tugas v4

Gunakan tugas ini untuk menyebarkan ke Azure App Service aplikasi web, seluler, atau API menggunakan Docker, Java, .NET, .NET Core, Node.js, PHP, Python, atau Ruby.

Nota

Gunakan AzureFunctionApp@2 untuk menyebarkan aplikasi Azure Functions.

Sintaksis

# 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.

Input

Jenis koneksi
string. Diperlukan. Nilai yang diizinkan: AzureRM (Azure Resource Manager), PublishProfile (Terbitkan Profil). Nilai default: AzureRM.

Tentukan jenis koneksi layanan yang akan digunakan untuk menyebarkan Aplikasi Web.

Tentukan Publish Profile untuk menggunakan Visual Studio yang dibuat Menerbitkan profil.


langganan Azure
Alias input: ConnectedServiceName. string. Diperlukan saat ConnectionType = AzureRM.

Tentukan langganan Azure Resource Manager untuk penyebaran.


PublishProfilePath - Terbitkan jalur profil
string. Diperlukan saat ConnectionType = PublishProfile. Nilai default: $(System.DefaultWorkingDirectory)/**/*.pubxml.

Jalur menerbitkan profil dibuat dari Visual Studio.


PublishProfilePassword - Menerbitkan kata sandi profil
string. Diperlukan saat ConnectionType = PublishProfile.

Disarankan untuk menyimpan kata sandi dalam variabel rahasia dan menggunakan variabel tersebut di sini misalnya $(Password).


appType - jenis App Service
Alias input: WebAppKind. string. Diperlukan saat ConnectionType = AzureRM. Nilai yang diizinkan: webApp (Aplikasi Web di Windows), webAppLinux (Aplikasi Web di Linux), webAppContainer (Aplikasi Web untuk Kontainer (Linux)), webAppHyperVContainer (Aplikasi Web untuk Kontainer (Windows)), functionApp (Aplikasi Fungsi di Windows (Tidak Disarankan, Gunakan Tugas Azure Functions)), functionAppLinux (Aplikasi Fungsi di Linux (Tidak Disarankan, Gunakan Tugas Azure Functions)), functionAppContainer (Aplikasi Fungsi untuk Kontainer (Linux) (Tidak Disarankan, Gunakan Azure Functions untuk Tugas kontainer)), apiApp (Aplikasi API), mobileApp (Aplikasi Seluler). Nilai default: webApp.

Pilih dari Aplikasi Web Di Windows, Aplikasi Web Di Linux, Aplikasi Web untuk Kontainer, Aplikasi Fungsi, Aplikasi Fungsi di Linux, Aplikasi Fungsi untuk Kontainer dan Aplikasi Seluler.


appType - jenis App Service
Alias input: WebAppKind. string. Diperlukan saat ConnectionType = AzureRM. Nilai yang diizinkan: webApp (Aplikasi Web di Windows), webAppLinux (Aplikasi Web di Linux), webAppContainer (Aplikasi Web untuk Kontainer (Linux)), functionApp (Aplikasi Fungsi di Windows), functionAppLinux (Aplikasi Fungsi di Linux), functionAppContainer (Aplikasi Fungsi untuk Kontainer (Linux)), apiApp (Aplikasi API), mobileApp (Aplikasi Seluler). Nilai default: webApp.

Pilih dari Aplikasi Web Di Windows, Aplikasi Web Di Linux, Aplikasi Web untuk Kontainer, Aplikasi Fungsi, Aplikasi Fungsi di Linux, Aplikasi Fungsi untuk Kontainer dan Aplikasi Seluler.


nama App Service
string. Diperlukan saat ConnectionType = AzureRM.

Tentukan nama Azure App Service yang sudah ada. Layanan aplikasi berdasarkan jenis aplikasi yang dipilih hanya akan dicantumkan saat menggunakan asisten tugas.


deployToSlotOrASE - Menyebarkan ke slot atau Lingkungan App Service
Alias input: DeployToSlotOrASEFlag. boolean. Fakultatif. Gunakan saat ConnectionType = AzureRM && WebAppKind != "". Nilai default: false.

Tentukan opsi untuk menyebarkan ke slot penyebaran yang ada atau lingkungan Azure App Service. Untuk kedua target, tugas memerlukan nama Grup Sumber Daya. Jika target penyebaran adalah slot, secara default penyebarannya adalah ke slot Produksi . Nama slot lain yang ada dapat disediakan. Jika target penyebaran adalah lingkungan Azure App Service, biarkan nama slot sebagai Production dan tentukan hanya nama Grup Sumber Daya.


grup Sumber Daya
string. Diperlukan saat DeployToSlotOrASEFlag = true.

Nama grup Sumber Daya diperlukan saat target penyebaran adalah slot penyebaran atau Lingkungan App Service.

Tentukan grup Sumber Daya Azure yang berisi Azure App Service yang ditentukan di atas.


Slot
string. Diperlukan saat DeployToSlotOrASEFlag = true. Nilai default: production.

Tentukan slot yang ada selain slot Produksi.


DockerNamespace - Registri atau Namespace
string. Diperlukan saat WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer.

Nama domain tingkat atas yang unik secara global untuk registri atau namespace spesifik Anda. Catatan: Nama gambar yang sepenuhnya memenuhi syarat akan berformat: {registry or namespace}/{repository}:{tag}. Misalnya, myregistry.azurecr.io/nginx:latest.


DockerNamespace - Registri atau Namespace
string. Diperlukan saat WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppkind = webAppHyperVContainer.

Nama domain tingkat atas yang unik secara global untuk registri atau namespace spesifik Anda. Catatan: Nama gambar yang sepenuhnya memenuhi syarat akan berformat: {registry or namespace}/{repository}:{tag}. Misalnya, myregistry.azurecr.io/nginx:latest.


DockerNamespace - Registri atau Namespace
string. Diperlukan saat WebAppKind = webAppContainer || WebAppkind = functionAppContainer.

Nama domain tingkat atas yang unik secara global untuk registri atau namespace spesifik Anda. Catatan: Nama gambar yang sepenuhnya memenuhi syarat akan berformat: {registry or namespace}/{repository}:{tag}. Misalnya, myregistry.azurecr.io/nginx:latest.


Gambar
string. Diperlukan saat WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer.

Nama repositori tempat gambar kontainer disimpan. Catatan: Nama gambar yang sepenuhnya memenuhi syarat akan berformat: {registry or namespace}/{repository}:{tag}. Misalnya, myregistry.azurecr.io/nginx:latest.


Gambar
string. Diperlukan saat WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppkind = webAppHyperVContainer.

Nama repositori tempat gambar kontainer disimpan. Catatan: Nama gambar yang sepenuhnya memenuhi syarat akan berformat: {registry or namespace}/{repository}:{tag}. Misalnya, myregistry.azurecr.io/nginx:latest.


Gambar
string. Diperlukan saat WebAppKind = webAppContainer || WebAppkind = functionAppContainer.

Nama repositori tempat gambar kontainer disimpan. Catatan: Nama gambar yang sepenuhnya memenuhi syarat akan berformat: {registry or namespace}/{repository}:{tag}. Misalnya, myregistry.azurecr.io/nginx:latest.


Tag
string. Fakultatif. Gunakan saat WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = webAppHyperVContainer.

Tag adalah mekanisme yang digunakan registri untuk menerapkan informasi versi ke gambar Docker. Catatan: Nama gambar yang sepenuhnya memenuhi syarat akan berformat: {registry or namespace}/{repository}:{tag}. Misalnya, myregistry.azurecr.io/nginx:latest.


Tag
string. Fakultatif. Gunakan saat WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppkind = webAppHyperVContainer.

Tag adalah mekanisme yang digunakan registri untuk menerapkan informasi versi ke gambar Docker. Catatan: Nama gambar yang sepenuhnya memenuhi syarat akan berformat: {registry or namespace}/{repository}:{tag}. Misalnya, myregistry.azurecr.io/nginx:latest.


Tag
string. Fakultatif. Gunakan saat WebAppKind = webAppContainer || WebAppkind = functionAppContainer.

Tag adalah mekanisme yang digunakan registri untuk menerapkan informasi versi ke gambar Docker. Catatan: Nama gambar yang sepenuhnya memenuhi syarat akan berformat: {registry or namespace}/{repository}:{tag}. Misalnya, myregistry.azurecr.io/nginx:latest.


aplikasi virtual
string. Fakultatif. Gunakan saat WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != functionApp && webAppKind != functionAppLinux && WebAppKind != "".

Tentukan nama Aplikasi Virtual yang telah dikonfigurasi di portal Microsoft Azure. Opsi ini tidak diperlukan untuk penyebaran ke akar situs web. Aplikasi Virtual harus telah dikonfigurasi sebelum penyebaran proyek web.


aplikasi virtual
string. Fakultatif. Gunakan saat WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && WebAppKind != functionApp && webAppKind != functionAppLinux && WebAppKind != "".

Tentukan nama Aplikasi Virtual yang telah dikonfigurasi di portal Microsoft Azure. Opsi ini tidak diperlukan untuk penyebaran ke akar situs web. Aplikasi Virtual harus telah dikonfigurasi sebelum penyebaran proyek web.


Paket atau folder
Alias input: Package. string. Diperlukan saat ConnectionType = PublishProfile || WebAppKind = webApp || WebAppKind = apiApp || WebAppKind = functionApp || WebAppKind = mobileApp || WebAppKind = webAppLinux || webAppKind = functionAppLinux. Nilai default: $(System.DefaultWorkingDirectory)/**/*.zip.

Jalur file ke paket, atau ke folder yang berisi konten layanan aplikasi yang dihasilkan oleh MSBuild atau file zip atau perang terkompresi.

Variabel adalah Build danRilis . Wildcards didukung.

Misalnya, $(System.DefaultWorkingDirectory)/\*\*/\*.zip atau $(System.DefaultWorkingDirectory)/\*\*/\*.war.


Tumpukan Runtime
string. Fakultatif. Gunakan saat WebAppKind = webAppLinux.

Tentukan kerangka kerja dan versi.


Tumpukan Runtime
string. Fakultatif. Gunakan saat WebAppKind = functionAppLinux. Nilai yang diizinkan: 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)).

Tentukan kerangka kerja dan versi. Lihat ringkasan versi runtime Azure Functions untuk versi runtime yang didukung. Nilai lama seperti DOCKER|microsoft/azure-functions-* tidak digunakan lagi. Silakan gunakan nilai baru dari menu dropdown.


Tumpukan Runtime
string. Fakultatif. Gunakan saat WebAppKind = functionAppLinux. Nilai yang diizinkan: DOCKER|microsoft/azure-functions-dotnet-core2.0:2.0 (.NET), DOCKER|microsoft/azure-functions-node8:2.0 (JavaScript).

Tentukan kerangka kerja dan versi.


perintah Startup
string. Fakultatif. Gunakan saat WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = functionAppLinux || WebAppKind = webAppHyperVContainer.

Tentukan perintah Startup. Misalnya:

filename.dll dotnet exec

dotnet filename.dll.


perintah Startup
string. Fakultatif. Gunakan saat WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = functionAppLinux || WebAppkind = webAppHyperVContainer.

Tentukan perintah Startup. Misalnya:

filename.dll dotnet exec

dotnet filename.dll.


perintah Startup
string. Fakultatif. Gunakan saat WebAppKind = webAppLinux || WebAppKind = webAppContainer || WebAppkind = functionAppContainer || WebAppKind = functionAppLinux.

Tentukan perintah Startup. Misalnya:

filename.dll dotnet exec

dotnet filename.dll.


jenis skrip Penyebaran
string. Fakultatif. Gunakan saat ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer. Nilai yang diizinkan: Inline Script, File Path (Jalur File Skrip).

Menyesuaikan penyebaran dengan menyediakan skrip yang berjalan pada Azure App Service setelah penyebaran berhasil. Pilih skrip penyebaran sebaris atau jalur dan nama file skrip. Pelajari selengkapnya tentangPenyebaran Azure App Service .


jenis skrip Penyebaran
string. Fakultatif. Gunakan saat ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppkind != functionAppContainer. Nilai yang diizinkan: Inline Script, File Path (Jalur File Skrip).

Menyesuaikan penyebaran dengan menyediakan skrip yang berjalan pada Azure App Service setelah penyebaran berhasil. Pilih skrip penyebaran sebaris atau jalur dan nama file skrip. Pelajari selengkapnya tentangPenyebaran Azure App Service .


Skrip Sebaris
string. Diperlukan saat ScriptType == Inline Script && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer. Nilai default: :: You can provide your deployment commands here. One command per line..

Skrip yang akan dijalankan. Anda dapat memberikan perintah penyebaran Anda di sini, satu perintah per baris. Lihat contoh berikut.


Skrip Sebaris
string. Diperlukan saat ScriptType == Inline Script && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppkind != functionAppContainer. Nilai default: :: You can provide your deployment commands here. One command per line..

Skrip yang akan dijalankan. Anda dapat memberikan perintah penyebaran Anda di sini, satu perintah per baris. Lihat contoh berikut.


ScriptPath - jalur skrip Penyebaran
string. Diperlukan saat ScriptType == File Path && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer.

Jalur dan nama skrip yang akan dijalankan.


ScriptPath - jalur skrip Penyebaran
string. Diperlukan saat ScriptType == File Path && ConnectionType = AzureRM && WebAppKind != "" && WebAppKind != webAppContainer && WebAppkind != functionAppContainer.

Jalur dan nama skrip yang akan dijalankan.


WebConfigParameters - Menghasilkan parameter web.config untuk aplikasi Python, Node.js, Go, dan Java
string. Fakultatif. Gunakan saat WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war.

Web.config standar akan dibuat dan disebarkan ke Azure App Service jika aplikasi tidak memilikinya. Nilai dalam web.config dapat diedit dan bervariasi berdasarkan kerangka kerja aplikasi. Misalnya, untuk aplikasi node.js, web.config akan memiliki file Startup dan nilai modul iis_node. Fitur edit ini hanya untuk web.configyang dihasilkan. Pelajari selengkapnya tentangPenyebaran Azure App Service .


WebConfigParameters - Menghasilkan parameter web.config untuk aplikasi Python, Node.js, Go, dan Java
string. Fakultatif. Gunakan saat WebAppKind != webAppContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war.

Web.config standar akan dibuat dan disebarkan ke Azure App Service jika aplikasi tidak memilikinya. Nilai dalam web.config dapat diedit dan bervariasi berdasarkan kerangka kerja aplikasi. Misalnya, untuk aplikasi node.js, web.config akan memiliki file Startup dan nilai modul iis_node. Fitur edit ini hanya untuk web.configyang dihasilkan. Pelajari selengkapnya tentangPenyebaran Azure App Service .


pengaturan Aplikasi
string. Fakultatif. Gunakan saat ConnectionType = AzureRM.

Mengedit pengaturan aplikasi aplikasi web menggunakan sintaks -key value. Nilai yang berisi spasi harus diapit dalam tanda kutip ganda. Contoh: -Port 5000 -RequestTimeout 5000 dan -WEBSITE_TIME_ZONE "Eastern Standard Time". Untuk menyediakan dua nilai kunci atau lebih, nilai kunci harus dipisahkan oleh spasi. Contoh: -key1 "Value1" -Key2 "Value2".


pengaturan Konfigurasi
string. Fakultatif. Gunakan saat ConnectionType = AzureRM.

Mengedit pengaturan konfigurasi aplikasi web menggunakan sintaks -key value. Nilai yang berisi spasi harus diapit dalam tanda kutip ganda. Contoh: -phpVersion 5.6 -linuxFxVersion node|6.11.


enableCustomDeployment - Pilih metode penyebaran
Alias input: UseWebDeploy. boolean. Fakultatif. Gunakan saat ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Nilai default: false.

Jika tidak dicentang atau salah, tugas secara otomatis mendeteksi metode penyebaran terbaik berdasarkan jenis aplikasi, format paket, dan parameter lainnya. Centang opsi ini di asisten tugas untuk melihat metode penyebaran yang didukung, dan pilih salah satu untuk menyebarkan aplikasi Anda.


enableCustomDeployment - Pilih metode penyebaran
Alias input: UseWebDeploy. boolean. Fakultatif. Gunakan saat ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Nilai default: false.

Jika tidak dicentang atau salah, tugas secara otomatis mendeteksi metode penyebaran terbaik berdasarkan jenis aplikasi, format paket, dan parameter lainnya. Centang opsi ini di asisten tugas untuk melihat metode penyebaran yang didukung, dan pilih salah satu untuk menyebarkan aplikasi Anda.


metode Penyebaran
string. Diperlukan saat UseWebDeploy == true && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Nilai yang diizinkan: webDeploy (Web Deploy), zipDeploy (Zip Deploy), runFromZip (Run From Package). Nilai default: webDeploy.

Menentukan metode penyebaran untuk aplikasi.


metode Penyebaran
string. Diperlukan saat UseWebDeploy == true && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Nilai yang diizinkan: webDeploy (Web Deploy), zipDeploy (Zip Deploy), runFromZip (Run From Package). Nilai default: webDeploy.

Menentukan metode penyebaran untuk aplikasi.


TakeAppOfflineFlag - Mengambil Offline Aplikasi
boolean. Fakultatif. Gunakan saat UseWebDeploy == true && DeploymentType != runFromZip && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Nilai default: true.

Tentukan opsi ini untuk membuat Azure App Service offline dengan menempatkan file app_offline.htm di direktori akar sebelum operasi sinkronisasi dimulai. File akan dihapus setelah sinkronisasi berhasil diselesaikan.


TakeAppOfflineFlag - Mengambil Offline Aplikasi
boolean. Fakultatif. Gunakan saat UseWebDeploy == true && DeploymentType != runFromZip && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Nilai default: true.

Tentukan opsi ini untuk membuat Azure App Service offline dengan menempatkan file app_offline.htm di direktori akar sebelum operasi sinkronisasi dimulai. File akan dihapus setelah sinkronisasi berhasil diselesaikan.


file SetParameters
string. Fakultatif. Gunakan saat UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar.

Lokasi file SetParameters.xml yang akan digunakan.


file SetParameters
string. Fakultatif. Gunakan saat UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar.

Lokasi file SetParameters.xml yang akan digunakan.


RemoveAdditionalFilesFlag - Menghapus file tambahan di tujuan
boolean. Fakultatif. Gunakan saat UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Nilai default: false.

Tentukan 'true' untuk menghapus file di Azure App Service yang tidak memiliki file yang cocok dalam paket atau folder App Service. Ini juga akan menghapus semua file yang terkait dengan ekstensi apa pun yang diinstal pada Azure App Service ini. Untuk mencegah hal ini, pilih kotak centang Exclude files from App_Data folder.


RemoveAdditionalFilesFlag - Menghapus file tambahan di tujuan
boolean. Fakultatif. Gunakan saat UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Nilai default: false.

Tentukan 'true' untuk menghapus file di Azure App Service yang tidak memiliki file yang cocok dalam paket atau folder App Service. Ini juga akan menghapus semua file yang terkait dengan ekstensi apa pun yang diinstal pada Azure App Service ini. Untuk mencegah hal ini, pilih kotak centang Exclude files from App_Data folder.


ExcludeFilesFromAppDataFlag - Mengecualikan file dari folder App_Data
boolean. Fakultatif. Gunakan saat UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Nilai default: true.

Tentukan opsi untuk mencegah file di folder App_Data disebarkan ke/dihapus dari Azure App Service.


ExcludeFilesFromAppDataFlag - Mengecualikan file dari folder App_Data
boolean. Fakultatif. Gunakan saat UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Nilai default: true.

Tentukan opsi untuk mencegah file di folder App_Data disebarkan ke/dihapus dari Azure App Service.


AdditionalArguments - Argumen tambahan
string. Fakultatif. Gunakan saat UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Nilai default: -retryAttempts:6 -retryInterval:10000.

Argumen Web Deploy tambahan mengikuti sintaks -key:value. Ini akan diterapkan saat menyebarkan Azure App Service. Contoh: -disableLink:AppPoolExtension -disableLink:ContentExtension. Pelajari selengkapnya tentang Pengaturan Operasi Penyebaran Web.


AdditionalArguments - Argumen tambahan
string. Fakultatif. Gunakan saat UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Nilai default: -retryAttempts:6 -retryInterval:10000.

Argumen Web Deploy tambahan mengikuti sintaks -key:value. Ini akan diterapkan saat menyebarkan Azure App Service. Contoh: -disableLink:AppPoolExtension -disableLink:ContentExtension. Pelajari selengkapnya tentang Pengaturan Operasi Penyebaran Web.


RenameFilesFlag - Mengganti nama file terkunci
boolean. Fakultatif. Gunakan saat UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Nilai default: true.

Tentukan nilai default untuk mengaktifkan bendera msdeploy MSDEPLOY_RENAME_LOCKED_FILES=1 di pengaturan aplikasi Azure App Service. Jika diatur, opsi memungkinkan msdeploy untuk mengganti nama file yang dikunci selama penyebaran aplikasi.


RenameFilesFlag - Mengganti nama file terkunci
boolean. Fakultatif. Gunakan saat UseWebDeploy == true && DeploymentType == webDeploy && ConnectionType = AzureRM && WebAppKind != webAppLinux && WebAppKind != webAppContainer && WebAppkind != functionAppContainer && webAppKind != functionAppLinux && WebAppKind != "" && Package NotEndsWith .war && Package NotEndsWith .jar. Nilai default: true.

Tentukan nilai default untuk mengaktifkan bendera msdeploy MSDEPLOY_RENAME_LOCKED_FILES=1 di pengaturan aplikasi Azure App Service. Jika diatur, opsi memungkinkan msdeploy untuk mengganti nama file yang dikunci selama penyebaran aplikasi.


transformasi XML
Alias input: XmlTransformation. boolean. Fakultatif. Gunakan saat WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. Nilai default: false.

Transformasi konfigurasi akan dijalankan untuk *.Release.config dan *.<EnvironmentName>.config pada *.config file. Transformasi konfigurasi berjalan sebelum substitusi variabel. transformasi XML hanya didukung untuk platform Windows.


transformasi XML
Alias input: XmlTransformation. boolean. Fakultatif. Gunakan saat WebAppKind != webAppContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. Nilai default: false.

Transformasi konfigurasi akan dijalankan untuk *.Release.config dan *.<EnvironmentName>.config pada *.config file. Transformasi konfigurasi berjalan sebelum substitusi variabel. transformasi XML hanya didukung untuk platform Windows.


substitusi variabel XML
Alias input: XmlVariableSubstitution. boolean. Fakultatif. Gunakan saat WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. Nilai default: false.

Variabel yang ditentukan dalam alur build atau rilis akan dicocokkan dengan entri kunci atau nama di bagian configSections, appSettings, applicationSettings, dan connectionStrings dari file konfigurasi dan file parameters.xml apa pun. Substitusi variabel berjalan setelah transformasi konfigurasi.

Jika variabel yang sama didefinisikan dalam alur rilis dan dalam tahap, variabel tahap akan menggantikan variabel alur rilis. Pelajari selengkapnya tentang [substitusi variabel XML]](/azure/devops/pipelines/tasks/transforms-variable-substitution#xml-variable-substitution).


substitusi variabel XML
Alias input: XmlVariableSubstitution. boolean. Fakultatif. Gunakan saat WebAppKind != webAppContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war. Nilai default: false.

Variabel yang ditentukan dalam alur build atau rilis akan dicocokkan dengan entri kunci atau nama di bagian configSections, appSettings, applicationSettings, dan connectionStrings dari file konfigurasi dan file parameters.xml apa pun. Substitusi variabel berjalan setelah transformasi konfigurasi.

Jika variabel yang sama didefinisikan dalam alur rilis dan dalam tahap, variabel tahap akan menggantikan variabel alur rilis. Pelajari selengkapnya tentang [substitusi variabel XML]](/azure/devops/pipelines/tasks/transforms-variable-substitution#xml-variable-substitution).


JSONFiles - substitusi variabel JSON
string. Fakultatif. Gunakan saat WebAppKind != webAppContainer && WebAppKind != webAppHyperVContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war.

Menyediakan daftar file JSON yang dipisahkan baris baru untuk menggantikan nilai variabel. Nama file harus relatif terhadap folder akar. Untuk mengganti variabel JSON yang berlapis atau hierarkis, tentukan variabel tersebut menggunakan ekspresi JSONPath. Misalnya, untuk mengganti nilai ConnectionString dalam sampel di bawah ini, tentukan variabel bernama Data.DefaultConnection.ConnectionString dalam alur build atau rilis (atau tahap alur rilis).

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

Substitusi variabel berjalan setelah transformasi konfigurasi. Catatan: Variabel alur build dan rilis dikecualikan dari substitusi. Pelajari selengkapnya tentang substitusi variabel JSON.


JSONFiles - substitusi variabel JSON
string. Fakultatif. Gunakan saat WebAppKind != webAppContainer && WebAppkind != functionAppContainer && WebAppKind != webAppLinux && webAppKind != functionAppLinux && Package NotEndsWith .war.

Menyediakan daftar file JSON yang dipisahkan baris baru untuk menggantikan nilai variabel. Nama file harus relatif terhadap folder akar. Untuk mengganti variabel JSON yang berlapis atau hierarkis, tentukan variabel tersebut menggunakan ekspresi JSONPath. Misalnya, untuk mengganti nilai ConnectionString dalam sampel di bawah ini, tentukan variabel bernama Data.DefaultConnection.ConnectionString dalam alur build atau rilis (atau tahap alur rilis).

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

Substitusi variabel berjalan setelah transformasi konfigurasi. Catatan: Variabel alur build dan rilis dikecualikan dari substitusi. Pelajari selengkapnya tentang substitusi variabel JSON.


Opsi kontrol tugas

Semua tugas memiliki opsi kontrol selain input tugasnya. Untuk informasi selengkapnya, lihat opsi Kontrol dan properti tugas umum.

Variabel output

Tugas ini mendefinisikan variabel output berikut, yang dapat Anda konsumsi dalam langkah-langkah hilir, pekerjaan, dan tahapan.

AppServiceApplicationUrl
URL Aplikasi dari App Service yang dipilih.

Komentar

  • Prasyarat untuk tugas
  • Catatan penggunaan
  • metode Penyebaran
  • Pemecahan Masalah
  • FAQ

Gunakan tugas ini untuk menyebarkan ke berbagai App Services di Azure. Tugas ini berfungsi pada agen lintas platform yang menjalankan Windows, Linux, atau Mac dan menggunakan beberapa teknologi penyebaran mendasar yang berbeda.

Tugas ini berfungsi untuk ASP.NET, ASP.NET Core, PHP, Java, Python, Go, dan aplikasi web berbasis Node.js.

Tugas dapat digunakan untuk menyebarkan ke berbagai Azure App Services seperti:

Prasyarat untuk tugas

Prasyarat berikut harus disiapkan di komputer target agar tugas berfungsi dengan benar.

  • instans App Service. Tugas ini digunakan untuk menyebarkan proyek Aplikasi Web atau proyek Azure Function ke instans Azure App Service yang sudah ada, yang harus ada sebelum tugas berjalan. Instans App Service dapat dibuat dari portal Microsoft Azure dan dikonfigurasi di sana. Atau, tugas Azure PowerShell dapat digunakan untuk menjalankan skrip Azure PowerShell untuk memprovisikan dan mengonfigurasi Aplikasi Web.

  • langganan Azure. Untuk menyebarkan ke Azure, langganan Azure harus ditautkan ke alur. Tugas tidak berfungsi dengan koneksi layanan Azure Classic, dan tidak akan mencantumkan koneksi ini dalam pengaturan tugas.

Catatan penggunaan

  • Tugas ini hanya berfungsi dengan API Azure Resource Manager .
  • Untuk mengabaikan kesalahan SSL, tentukan variabel bernama VSTS_ARM_REST_IGNORE_SSL_ERRORS dengan nilai true dalam alur. Jika Anda menyebarkan ke slot yang dikonfigurasi untuk pertukaran otomatis, pertukaran akan gagal kecuali Anda mengatur SCM_SKIP_SSL_VALIDATION atau SCM_SKIP_ASE_SSL_VALIDATION ke 1 di pengaturan konfigurasi layanan aplikasi.
  • Untuk aplikasi .NET yang menargetkan Aplikasi Web di Windows, hindari kegagalan penyebaran dengan kesalahan yang ERROR_FILE_IN_USE dengan memastikan bahwa Mengganti nama file terkunci dan pengaturan Ambil Aplikasi Offline diaktifkan. Untuk penyebaran waktu henti nol, gunakan opsi pertukaran slot.
  • Saat menyebarkan ke App Service yang memiliki Application Insights yang dikonfigurasi, dan Anda telah mengaktifkan Menghapus file tambahan ditujuan , pastikan Anda juga mengaktifkan file Kecualikan dari folder App_Data untuk mempertahankan ekstensi Application insights dalam keadaan aman. Ini diperlukan karena pekerjaan web berkelanjutan Application Insights diinstal ke folder App_Data.

Metode penyebaran

Beberapa metode penyebaran tersedia dalam tugas ini. Web Deploy (msdeploy.exe) adalah default. Untuk mengubah opsi penyebaran, perluas Opsi Penyebaran Tambahan dan aktifkan Pilih metode penyebaran untuk memilih dari opsi penyebaran berbasis paket tambahan.

Berdasarkan jenis Azure App Service dan agen, tugas memilih teknologi penyebaran yang sesuai. Berbagai teknologi penyebaran yang digunakan oleh tugas adalah:

  • Penyebaran Web
  • REST API Kudu
  • Container Registry
  • Penyebaran Zip
  • Jalankan dari Paket
  • Penyebaran Perang

Secara default, tugas mencoba memilih teknologi penyebaran yang sesuai berdasarkan jenis paket input, jenis App Service, dan sistem operasi agen.

Deteksi Logika Otomatis

Untuk agen berbasis windows.

Jenis App Service Jenis paket Metode Penyebaran
WebApp di Linux atau Aplikasi Fungsi di Linux Perang
Folder/Zip/jar
Penyebaran
Perang Zip
WebApp untuk Kontainer (Linux) atau Aplikasi Fungsi untuk Kontainer (Linux) Memperbarui pengaturan Aplikasi NA
WebApp di Windows, Aplikasi Fungsi di Windows, Aplikasi API, atau Aplikasi Seluler Jenis paket War
Jar
MsBuild atau sebarkan ke aplikasi virtual


Folder/Zip
Penyebaran Perang
Zip Deploy
Web Deploy

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

Pada agen non-Windows (untuk jenis App Service apa pun), tugas bergantung pada API REST Kudu untuk menyebarkan aplikasi.

Penyebaran Web

Web Deploy (msdeploy.exe) dapat digunakan untuk menyebarkan Aplikasi Web di Windows atau Aplikasi Fungsi ke Azure App Service menggunakan agen Windows. Web Deploy kaya fitur dan menawarkan opsi seperti:

  • Ganti nama file yang dikunci: Ganti nama file apa pun yang masih digunakan oleh server web dengan mengaktifkan bendera msdeploy MSDEPLOY\_RENAME\_LOCKED\_FILES=1 di pengaturan Azure App Service. Opsi ini, jika diatur, memungkinkan msdeploy untuk mengganti nama file yang dikunci selama penyebaran aplikasi.

  • Menghapus file tambahan di tujuan: Menghapus file di Azure App Service yang tidak memiliki file yang cocok dalam paket atau folder artefak App Service yang disebarkan.

  • Mengecualikan file dari folder App_Data: Cegah file di folder App_Data (dalam paket/folder artefak yang sedang disebarkan) yang disebarkan ke Azure App Service

  • argumen Penyebaran Web Tambahan: argumen yang akan diterapkan saat menyebarkan Azure App Service. Contoh: -disableLink:AppPoolExtension -disableLink:ContentExtension. Untuk contoh pengaturan operasi Web Deploy lainnya, lihat Pengaturan Operasi Penyebaran Web.

Instal Web Deploy pada agen dari Web Deploy 3.6. Web Deploy 3.5 harus diinstal tanpa dukungan SQL yang dibundel. Tidak perlu memilih pengaturan kustom apa pun saat menginstal Web Deploy. Web Deploy diinstal pada C:/Program Files (x86)/IIS/Microsoft Web Deploy V3.

REST API Kudu

REST API Kudu bekerja pada agen otomatisasi Windows dan Linux saat target adalah Aplikasi Web di Windows, Web App di Linux (sumber bawaan), atau Aplikasi Fungsi. Tugas ini menggunakan Kudu untuk menyalin file ke layanan Azure App.

Registri Kontainer

Berfungsi pada agen otomatisasi Windows dan Linux saat targetnya adalah Aplikasi Web untuk Kontainer. Tugas memperbarui aplikasi dengan mengatur registri kontainer, repositori, nama gambar, dan informasi tag yang sesuai. Anda juga dapat menggunakan tugas untuk meneruskan perintah startup untuk gambar kontainer.

Penyebaran Zip

Mengharapkan paket penyebaran .zip dan menyebarkan konten file ke folder wwwroot dari App Service atau Aplikasi Fungsi di Azure. Opsi ini menimpa semua konten yang ada di folder wwwroot . Untuk informasi selengkapnya, lihat penyebaran Zip untuk Azure Functions.

Jalankan Dari Paket

Mengharapkan paket penyebaran yang sama dengan Zip Deploy. Namun, alih-alih menyebarkan file ke folder wwwroot, seluruh paket dipasang oleh runtime Functions dan file di folder wwwroot menjadi baca-saja. Untuk informasi selengkapnya, lihat Menjalankan Azure Functions Anda dari file paket.

Penyebaran Perang

Mengharapkan paket penyebaran .war dan menyebarkan konten file ke folder wwwroot atau webapps folder App Service di Azure.

Pemecahan masalah

Saya tidak dapat Menyebarkan Web ke Azure App Service saya menggunakan autentikasi ID Microsoft Entra dari agen Windows saya

Tugas penyebaran Azure App Service mendukung menyambungkan ke Microsoft Azure dengan koneksi layanan ARM menggunakan ID Microsoft Entra, kecuali jika ada tiga kondisi berikut:

  • Anda menggunakan format paket Web Deploy pada agen Windows
  • Agen Anda berjalan dengan versi msdeploy.exe yang lebih lama (misalnya saat menggunakan windows-2019 gambar agen yang dihosting)
  • Autentikasi dasar dinonaktifkan untuk Azure App Service Anda

Jika ketiga kondisi ini ada, Anda akan menerima kesalahan seperti 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.

Untuk mengatasi masalah ini, Anda dapat memilih dari opsi berikut, sesuai urutan preferensi.

  1. Perbarui gambar agen. Jika Anda menggunakan agen yang dihosting, pindahkan dari windows-2019 ke windows-2022 (atau windows-latest). Jika Anda menggunakan agen yang dihost sendiri, instal Visual Studio 2022 di agen untuk mendapatkan versi msdeploy.exeyang lebih baru.
  2. Jika Anda bergantung pada gambar agen yang lebih lama dan tidak dapat memperbarui agen untuk alur Anda, pertimbangkan untuk memisahkan pekerjaan sehingga tugas penyebaran Azure App Service berjalan pada windows-2022 (atau windows-latest).
  3. Jika opsi ini tidak memungkinkan, Anda dapat mengaktifkan autentikasi dasar untuk Azure App Service Anda.

Kesalahan: Tidak dapat mengambil token akses untuk Azure. Verifikasi apakah Perwakilan Layanan yang digunakan valid dan tidak kedaluwarsa.

Tugas ini menggunakan perwakilan layanan dalam koneksi layanan untuk mengautentikasi dengan Azure. Jika perwakilan layanan telah kedaluwarsa atau tidak memiliki izin ke App Service, tugas gagal dengan kesalahan ini. Verifikasi validitas perwakilan layanan yang digunakan dan ada dalam pendaftaran aplikasi. Untuk informasi selengkapnya, lihat Menggunakan kontrol akses berbasis peran untuk mengelola akses ke sumber daya langganan Azure Anda. Posting blog ini juga berisi informasi selengkapnya tentang menggunakan autentikasi perwakilan layanan.

Kesalahan SSL

Jika Anda ingin menggunakan sertifikat di App Service, sertifikat harus ditandatangani oleh otoritas sertifikat tepercaya. Jika aplikasi web memberi Anda kesalahan validasi sertifikat, Anda mungkin menggunakan sertifikat yang ditandatangani sendiri. Atur variabel bernama VSTS_ARM_REST_IGNORE_SSL_ERRORS ke nilai true dalam alur build atau rilis untuk mengatasi kesalahan.

Rilis macet untuk waktu yang lama dan kemudian gagal

Masalah ini bisa menjadi akibat dari kapasitas yang tidak mencukup dalam paket App Service Anda. Untuk mengatasi masalah ini, Anda dapat meningkatkan instans App Service untuk meningkatkan ruang CPU, RAM, dan disk yang tersedia atau mencoba dengan paket App Service yang berbeda.

5kode kesalahan xx

Jika Anda melihat kesalahan 5xx, memeriksa status layanan Azure Anda.

Azure Function tiba-tiba berhenti berfungsi

Azure Functions mungkin tiba-tiba berhenti bekerja jika lebih dari satu tahun telah berlalu sejak penyebaran terakhir. Jika Anda menyebarkan dengan "RunFromPackage" di "deploymentMethod", SAS dengan tanggal kedaluwarsa 1 tahun dihasilkan dan ditetapkan sebagai nilai "WEBSITE_RUN_FROM_PACKAGE" dalam konfigurasi aplikasi. Azure Functions menggunakan SAS ini untuk mereferensikan file paket untuk eksekusi fungsi, jadi jika SAS telah kedaluwarsa, fungsi tidak akan dijalankan. Untuk mengatasi masalah ini, sebarkan lagi untuk menghasilkan SAS dengan tanggal kedaluwarsa satu tahun.

Kesalahan: Tidak ada paket yang ditemukan dengan pola yang ditentukan

Periksa apakah paket yang disebutkan dalam tugas diterbitkan sebagai artefak dalam build atau tahap sebelumnya dan diunduh dalam pekerjaan saat ini.

Kesalahan: Menerbitkan menggunakan opsi penyebaran zip tidak didukung untuk jenis paket msBuild

Paket web yang dibuat melalui tugas MSBuild (dengan argumen default) memiliki struktur folder berlapis yang hanya dapat disebarkan dengan benar oleh Web Deploy. Opsi penyebaran publish-to-zip tidak dapat digunakan untuk menyebarkan paket tersebut. Untuk mengonversi struktur kemasan, lakukan langkah-langkah berikut:

  1. Dalam tugas Solusi build, ubah Argumen MSBuild menjadi :

    Cuplikan layar yang memperlihatkan nilai solusi Build.

  2. Tambahkan tugas Arsip dan ubah nilai sebagai berikut:

    1. Ubah folder atau file Akar untuk mengarsipkan ke $(System.DefaultWorkingDirectory)\\WebAppContent.

    2. Kosongkan kotak centang nama folder akar Prepend ke jalur arsip:

      Cuplikan layar yang memperlihatkan nilai Arsip.

Penyebaran aplikasi web di Windows berhasil tetapi aplikasi tidak berfungsi

Ini mungkin karena web.config tidak ada di aplikasi Anda. Anda dapat menambahkan file web.config ke sumber Anda atau membuatnya secara otomatis menggunakan Opsi Transformasi File dan Penggantian Variabel tugas.

  • Klik tugas dan buka Membuat parameter web.config untuk aplikasi Python, Node.js, Go, dan Java.

    Cuplikan layar dialog Buat parameter web.config.

  • Klik tombol lainnya Hasilkan parameter web.config untuk aplikasi Python, Node.js, Go, dan Java untuk mengedit parameter.

    Cuplikan layar drop-down Kerangka kerja aplikasi.

  • Pilih jenis aplikasi Anda dari menu drop-down.

  • Klik OK. Ini akan mengisi parameter web.config yang diperlukan untuk menghasilkan web.config.

Nota

Bagian ini tidak digunakan lagi dan telah diganti dengan tugas Transformasi File .

ERROR_FILE_IN_USE

Saat menyebarkan aplikasi .NET ke Aplikasi Web di Windows, penyebaran mungkin gagal dengan kode kesalahan ERROR_FILE_IN_USE. Untuk mengatasi kesalahan, pastikan Mengganti nama file terkunci dan opsi Ambil Aplikasi Offline diaktifkan dalam tugas. Untuk penyebaran waktu henti nol, gunakan pertukaran slot.

Anda juga dapat menggunakan metode Run From Package deployment untuk menghindari penguncian sumber daya.

Kesalahan Penyebaran Web

Jika Anda menggunakan penyebaran web untuk menyebarkan aplikasi Anda, dalam beberapa skenario kesalahan Web Deploy akan menampilkan kode kesalahan di log. Untuk memecahkan masalah kesalahan penyebaran web, lihat kode kesalahan Web Deploy.

Penyebaran aplikasi web di App Service Environment (ASE) tidak berfungsi

  • Pastikan bahwa agen build Azure DevOps berada di VNET yang sama (subnet dapat berbeda) dengan Internal Load Balancer (ILB) ASE. Ini akan memungkinkan agen untuk menarik kode dari Azure DevOps dan menyebarkan ke ASE.
  • Jika Anda menggunakan Azure DevOps, agen tidak perlu dapat diakses dari internet tetapi hanya memerlukan akses keluar untuk terhubung ke Azure DevOps Service.
  • Jika Anda menggunakan TFS/Azure DevOps Server yang disebarkan di Virtual Network, agen dapat sepenuhnya terisolasi.
  • Agen build harus dikonfigurasi dengan konfigurasi DNS Aplikasi Web yang perlu disebarkannya. Karena sumber daya privat di Virtual Network tidak memiliki entri di Azure DNS, ini perlu ditambahkan ke file host di komputer agen.
  • Jika sertifikat yang ditandatangani sendiri digunakan untuk konfigurasi ASE, opsi -allowUntrusted perlu diatur dalam tugas penyebaran untuk MSDeploy. Disarankan juga untuk mengatur variabel VSTS_ARM_REST_IGNORE_SSL_ERRORS ke true. Jika sertifikat dari otoritas sertifikat digunakan untuk konfigurasi ASE, ini seharusnya tidak diperlukan. Jika Anda menyebarkan ke slot yang dikonfigurasi untuk pertukaran otomatis, pertukaran akan gagal kecuali Anda mengatur SCM_SKIP_SSL_VALIDATION atau SCM_SKIP_ASE_SSL_VALIDATION ke 1 di pengaturan konfigurasi layanan aplikasi.

Tanya Jawab Umum

Apa perbedaan antara tugas AzureWebApp dan AzureRmWebAppDeployment?

Tugas Azure Web App (AzureWebApp) adalah cara paling sederhana untuk menyebarkan ke Azure Web App. Secara default, penyebaran Anda terjadi pada aplikasi root di Azure Web App.

Tugas Penyebaran Azure App Service (AzureRmWebAppDeployment) dapat menangani lebih banyak skenario kustom, seperti:

Nota

Transformasi file dan substitusi variabel juga didukung oleh tugas Transformasi File terpisah untuk digunakan di Azure Pipelines. Anda dapat menggunakan tugas Transformasi File untuk menerapkan transformasi file dan substitusi variabel pada file konfigurasi dan parameter apa pun.

Bagaimana cara mengonfigurasi koneksi layanan saya?

Tugas ini memerlukan koneksi layanan Azure Resource Manager.

Bagaimana cara mengonfigurasi penyebaran pekerjaan web dengan Application Insights?

Saat Anda menyebarkan ke App Service, jika Anda memiliki Application Insights dikonfigurasi dan Anda telah mengaktifkan Remove additional files at destination, Anda juga perlu mengaktifkan Exclude files from the App_Data folder. Mengaktifkan opsi ini membuat ekstensi Application Insights dalam keadaan aman. Langkah ini diperlukan karena WebJob berkelanjutan Application Insights diinstal ke folder App_Data.

Bagaimana cara mengonfigurasi agen saya jika berada di belakang proksi saat saya menyebarkan ke App Service?

Jika agen yang dihost sendiri memerlukan proksi web, Anda dapat memberi tahu agen tentang proksi selama konfigurasi. Melakukannya memungkinkan agen Anda untuk terhubung ke Azure Pipelines atau Azure DevOps Server melalui proksi. Pelajari selengkapnya tentang menjalankan agen yang dihost sendiri di belakang proksi web.

Contoh

Menyebarkan ke jenis aplikasi tertentu

Untuk menyebarkan ke jenis aplikasi tertentu, atur appType ke salah satu nilai yang diterima berikut: webApp (Aplikasi Web di Windows), webAppLinux (Aplikasi Web di Linux), webAppContainer (Aplikasi Web untuk Kontainer - Linux), functionApp (Aplikasi Fungsi di Windows), functionAppLinux (Aplikasi Fungsi di Linux), functionAppContainer (Aplikasi Fungsi untuk Kontainer - Linux), apiApp (Aplikasi API), mobileApp (Aplikasi Seluler). Jika tidak disebutkan, webApp diambil sebagai nilai default.

Untuk mengaktifkan opsi penyebaran tingkat lanjut, tambahkan parameter enableCustomDeployment: true dan sertakan parameter berikut sesuai kebutuhan.

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

Menyebarkan ke kontainer Linux Azure Web App

Contoh YAML berikut menyebarkan ke kontainer Azure Web App (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)

Menyebarkan aplikasi web ke Windows App Service di seluruh slot penyebaran

Contoh berikut menyebarkan aplikasi web ke Windows App Service di seluruh slot penyebaran.

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'

Contoh skrip Pasca penyebaran

Tugas ini menyediakan opsi untuk menyesuaikan penyebaran dengan menyediakan skrip yang akan berjalan di Azure App Service setelah artefak aplikasi berhasil disalin ke App Service. Anda dapat memilih untuk menyediakan skrip penyebaran sebaris atau jalur dan nama file skrip di folder artefak Anda.

Ini sangat berguna ketika Anda ingin memulihkan dependensi aplikasi Anda langsung di App Service. Memulihkan paket untuk aplikasi Node, PHP, dan python membantu menghindari batas waktu ketika dependensi aplikasi menghasilkan artefak besar yang disalin dari agen ke Azure App Service.

Contoh skrip penyebaran adalah:

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

Persyaratan

Syarat Deskripsi
Jenis alur YAML, Build klasik, Rilis klasik
Berjalan pada Agen, DeploymentGroup
Permintaan Tidak
Kemampuan Tugas ini tidak memenuhi tuntutan apa pun untuk tugas berikutnya dalam pekerjaan.
pembatasan Perintah Apa pun
variabel yang Dapat Diatur Apa pun
Versi agen 2.104.1 atau lebih tinggi
Kategori tugas Menyebarkan

Lihat juga