Azure Pipelines для База данных Azure для MySQL — гибкий сервер
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для MySQL — гибкий сервер
Вы можете автоматически развертывать обновления базы данных для гибкого сервера Базы данных Azure для MySQL после каждой успешной сборки с помощью Azure Pipelines. Задачу Azure CLI можно использовать для обновления базы данных с помощью файла SQL или встроенного скрипта SQL для базы данных. Эту задачу можно выполнять в кроссплатформенных агентах в операционных системах Linux, macOS или Windows.
Необходимые компоненты
Учетная запись Azure. Если у вас ее нет, получите бесплатную пробную версию.
Подключение к службе Azure Resource Manager для учетной записи Azure
В размещенных агентах Майкрософт Azure CLI установлен заранее. Однако при использовании частных агентов установите Azure CLI на компьютерах, на которых выполняется агент сборки и выпуска. Если агент уже запущен на компьютере, на котором установлен Azure CLI, перезапустите агент, чтобы обеспечить обновление всех соответствующих промежуточных переменных.
В качестве отправной точки в этом кратком руководстве используются ресурсы, созданные в соответствии со следующими материалами:
- Создайте экземпляр гибкого сервера База данных Azure для MySQL с помощью портал Azure или 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 | (Необязательный параметр) Если значение true, эта задача завершится сбоем, когда в поток StandardError записываются ошибки. Снимите флажок, чтобы игнорировать стандартные ошибки и использовать коды выхода для определения состояния. По умолчанию используется значение false. |
powerShellIgnoreLASTEXITCODE | (Необязательно.) При значении false строка if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } добавляется в конец скрипта. Это приведет к тому, что последний код выхода из внешней команды будет считаться кодом выхода для PowerShell. В противном случае строка не добавляется в конец скрипта. По умолчанию используется значение false. |
Если у вас возникли проблемы с задачей CLI, см. раздел об устранении неполадок со сборкой и выпуском.
Следующие шаги
Ниже приведены некоторые связанные задачи, которые необходимо выполнить для развертывания в Azure.