使用管道在同一个应用程序服务上部署多个Web作业,将所有作业替换为最后一个作业

问题描述 投票:0回答:2

构建工件包含用于 Web 作业并包含在发布管道中的单独文件夹。 当尝试使用管道在同一应用程序服务上部署时,实际上将所有现有的内容替换为最后部署的 Web 作业。 两项作业部署的任务均成功。

非常感谢任何帮助。

azure-devops azure-webjobs azure-cloud-services azure-webjobs-continuous
2个回答
1
投票

在“Azure App Service 部署”任务中,在“其他部署选项”下,选择“Web 部署”作为“部署方法”。


0
投票

我已经设法找到一种使用 AzureCLI 任务而不是使用应用服务部署来部署多个 Webjob 的方法。设置起来比较麻烦,但是没有一个应用服务部署任务对我有用。我尝试使用“Web 部署”,它要么根本没有部署,要么会删除所有现有的网络作业。

这是我制作的快速清理样本,因此可能需要一些更正:

- ${{each artifact in parameters.artifactsToDeploy}}:
  - task: AzureCLI@2
        displayName: 'deploy webjob'
        inputs:
          azureSubscription: YOURAZURESUB
          scriptType: 'ps'
          scriptLocation: 'inlineScript'
          inlineScript: |
            # Variables
            $WEBAPP_NAME = WEBAPPNAME
            $RESOURCE_GROUP = RESOURCEGROUP
            $WEBJOB_NAME = WEBJOBNAME
            $WEBJOB_TYPE = WEBJOBTYPE
            $ZIP_PATH = ARTIFACTZIPPATH

            # Get the publishing credentials
            $publishingProfile = az webapp deployment list-publishing-profiles --name $WEBAPP_NAME --resource-group $RESOURCE_GROUP --query "[?publishMethod=='MSDeploy']" --output json | ConvertFrom-Json
            $PUBLISH_URL = $publishingProfile.publishUrl
            $USERNAME = $publishingProfile.userName
            $PASSWORD = $publishingProfile.userPWD

            # Encode username and password for basic auth
            $AUTH = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$($USERNAME):$($PASSWORD)"))

            
            $TARGET_URL = "https://$WEBAPP_NAME.scm.azurewebsites.net/api/zip/site/wwwroot/App_Data/jobs/$WEBJOB_TYPE/$WEBJOB_NAME/"

            Write-Host "Deploying $WEBJOB_NAME to $TARGET_URL"

            Invoke-RestMethod -Uri $TARGET_URL -Method Put -InFile $ZIP_PATH -Headers @{ Authorization = "Basic $AUTH" }
© www.soinside.com 2019 - 2024. All rights reserved.