Поделиться через


Azure Pipelines для База данных Azure для MySQL — гибкий сервер

Вы можете автоматически развертывать обновления базы данных для гибкого сервера Базы данных Azure для MySQL после каждой успешной сборки с помощью Azure Pipelines. Задачу Azure CLI можно использовать для обновления базы данных с помощью SQL-файла или встроенного скрипта SQL. Эту задачу можно запустить на кроссплатформенных агентах, работающих в операционных системах Linux, macOS или Windows.

Необходимые компоненты

  • Учетная запись Azure. Если у вас ее нет, получите бесплатную пробную версию.

  • Подключение к службе Azure Resource Manager для учетной записи Azure

  • Размещенные агенты Майкрософт предварительно установлены в Azure CLI. Однако если вы используете частные агенты, установите Azure CLI на компьютерах, на которые выполняется агент сборки и выпуска. Если агент уже запущен на компьютере, на котором установлена Azure CLI, перезапустите агент, чтобы обновить все соответствующие переменные этапа.

В качестве отправной точки в этом кратком руководстве используются ресурсы, созданные в соответствии со следующими материалами:

Использование файла SQL

В следующем примере показано, как передать аргументы базы данных и выполнить execute команду.

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
    inlineScript: |
      az login --allow-no-subscription
      az mysql flexible-server execute --name $(SERVERNAME) \
      --admin-user $(DBUSER) --admin-password '$(DBPASSWORD)' \
      --database-name $(DBNAME) \
      --file-path /code/sql/db-schema-update.sql

Использование встроенного скрипта SQL

В следующем примере показано, как запустить встроенный скрипт SQL с помощью execute команды.

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
      -INLINESCRIPT
    inlineScript: |
      az login --allow-no-subscription
      az mysql flexible-server execute --name $(SERVERNAME) \
      --admin-user $(DBUSER) --admin-password '$(DBPASSWORD)' \
      --database-name $(DBNAME) \
      --query-text "UPDATE items SET items.retail = items.retail * 0.9 WHERE items.id =100;"

Входные данные задачи

Полный список всех входных данных задачи можно просмотреть при использовании задачи Azure CLI с Azure Pipelines.

Параметр Описание
azureSubscription (Обязательно.) Укажите подписку Azure Resource Manager для развертывания. Этот параметр отображается, только если выбранная версия задачи имеет значение 0.*, так как задача Azure CLI версии 1.0 поддерживает только подписки Azure Resource Manager.
scriptType (Обязательный параметр) Укажите тип скрипта. Поддерживаются скрипты PowerShell, PowerShell Core, Bat, Shell и script. При запуске на агенте Linux выберите один из следующих вариантов: bash или pscore. При запуске на агенте Windows выберите один из следующих вариантов: batch, ps и pscore.
scriptLocation (Обязательный параметр) Укажите путь к скрипту, например реальный путь к файлу, или используйте Inline script при использовании встроенных скриптов. Значение по умолчанию — scriptPath.
scriptPath (Обязательный параметр) Укажите полный путь к скрипту (PS1, BAT или CMD при использовании агента на основе Windows и .ps1 или .sh при использовании агента на основе Linux) или путь относительно рабочего каталога по умолчанию.
inlineScript (Обязательный параметр) Здесь можно ввести встроенные скрипты. Для агента Windows используйте PowerShell или PowerShell Core или пакетные скрипты, а для агентов на основе Linux используйте скрипты PowerShell Core или командной оболочки. Для пакетных файлов используйте префикс «call» перед каждой командой Azure. В этот скрипт также можно передать стандартные и пользовательские переменные с помощью аргументов.
Пример для PowerShell/PowerShellCore/оболочки: az --version az account show.
Пример для пакетов: call az --version call az account show.
аргументы (Необязательный параметр) Укажите все аргументы, передаваемые в скрипт. Пример: -SERVERNAME mydemoserver.
powerShellErrorActionPreference (Необязательный параметр) Указывается перед строкой $ErrorActionPreference = 'VALUE' в верхней части скрипта PowerShell/PowerShell Core. Значение по умолчанию — stop. Поддерживаемые значения: stop, continue и silentlyContinue.
addSpnToEnvironment (Необязательный параметр) Добавляет идентификатор и ключ субъекта-службы выбранной конечной точки Azure в среду выполнения скрипта. Вы можете использовать в скрипте следующие переменные: $env:servicePrincipalId, $env:servicePrincipalKey и $env:tenantId. Они учитываются, только если конечная точка Azure имеет схему проверки подлинности субъекта-службы. По умолчанию используется значение false.
useGlobalConfig (Необязательно) Если это значение равно false, эта задача будет использовать собственный отдельный каталог конфигурации Azure CLI. Этот параметр можно использовать для выполнения задач Azure CLI в параллельных выпусках.
Значение по умолчанию: false
WorkingDirectory (Необязательный параметр) Текущий рабочий каталог, в котором выполняется скрипт. Empty — это корень репозитория (сборка) или артефакты (выпуск), то есть $(System.DefaultWorkingDirectory).
failOnStandardError (Необязательно) Если это верно, эта задача завершается ошибкой при записи ошибок в поток StandardError. Снимите флажок, чтобы игнорировать стандартные ошибки и использовать коды выхода для определения состояния. По умолчанию используется значение false.
powerShellIgnoreLASTEXITCODE (Необязательно.) При значении false строка if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } добавляется в конец скрипта. Это значение приводит к распространению последнего кода выхода из внешней команды в качестве кода выхода PowerShell. В противном случае строка не добавляется в конец скрипта. По умолчанию используется значение false.
Если у вас возникли проблемы с задачей CLI, узнайте, как устранить неполадки со сборкой и выпуском.