Создать слот развертывания для WebApp в Azure DevOps конвейере - PullRequest
2 голосов
/ 16 марта 2020

Я хотел бы выполнить следующие операции из конвейера Azure DevOps:

  • Создать новый слот развертывания для существующего WebApp (staging)
  • Развернуть приложение на новый слот
  • Поменять staging слот с production
  • Удалить прежний production, теперь staging слот

То, что у меня пока есть:

  • Развертывание приложения в новый слот
  • Замена staging слота с производством
  • Удаление прежнего production, теперь staging слота

YAML:

- task: AzureRmWebAppDeployment@4
  inputs:
    ConnectionType: 'AzureRM'
    azureSubscription: 'BizSpark(...)'
    appType: 'webApp'
    WebAppName: 'foo'
    deployToSlotOrASE: true
    ResourceGroupName: 'Default-WestEurope'
    SlotName: 'staging'
    packageForLinux: '$(Build.ArtifactStagingDirectory)/**/*.zip'

- task: AzureAppServiceManage@0
  inputs:
    azureSubscription: 'BizSpark(..)'
    Action: 'Swap Slots'
    WebAppName: 'foo'
    ResourceGroupName: 'Default-WestEurope'
    SourceSlot: 'staging'

- task: AzureAppServiceManage@0
  inputs:
    azureSubscription: 'BizSpark(..)'
    Action: 'Delete Slot'
    WebAppName: 'foo'
    ResourceGroupName: 'Default-WestEurope'
    Slot: 'staging'

Однако задача AzureAppServiceManage не предоставляет метод для создания слота развертывания.

Как это можно сделать?

Ответы [ 2 ]

1 голос
/ 20 марта 2020

Я мог бы создать слот WebbApp в azure devops конвейере, используя powershell и размещенный агент Microsft, вот задача:

согласно примеру документации :

- task: AzureCLI@2
    displayName: Azure CLI   
     inputs:
      azureSubscription: <Name of the Azure Resource Manager service connection>
      scriptType: ps
      scriptLocation: inlineScript
      inlineScript: |
          az --version
          az account show

и для встроенного скрипта я использовал "создание слота развертывания az webapp" Azure CLI Command :

az webapp deployment slot create --name
                                 --resource-group
                                 --slot
                                 [--configuration-source]
                                 [--subscription]

это помогает?

1 голос
/ 17 марта 2020

Создание слота развертывания для WebApp в Azure конвейер DevOps

Боюсь, что нет такого готового способа создать слот развертывания для WebApp в Azure конвейере DevOps.

Как состояние задачи Azure App Service Management, мы могли бы знать:

Задача Azure Управление службами приложений используется для Запуск / остановка / перезапуск службы приложений, слот подкачки, установка расширений, включение непрерывного мониторинга или запуск / остановка всех непрерывных веб-заданий в Azure службе приложений.

Не поддерживает создание развертывания слот для WebApp в конвейере Azure devops. И AFAIK, никакая другая задача в настоящее время не поддерживает эту функцию в Azure devops конвейере.

Как решение этого вопроса, так же, как комментарий juunas, Обычно это достигается с помощью развертывания шаблона ARM .

Мы могли бы использовать следующий шаблон ARM для предоставления слотов развертывания для Azure службы приложений:

{
    "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "siteName": {
            "type": "string"
        },
        "slotName": {
            "type": "string"
        }
    },
    "resources": [
        {
            "apiVersion": "2015-04-01",
            "type": "Microsoft.Web/Sites/Slots",
            "name": "[concat(parameters('siteName'), '/', parameters('slotName'))]",
            "location": "[resourceGroup().location]",
            "properties": {},
            "resources": []
        }
    ]
}

Затем мы могли бы развертывать шаблоны ARM с помощью Azure devops.

Вы можете проверить этот блог и этот блог для получения дополнительной информации.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...