Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете автоматически развертывать обновления базы данных для гибкого сервера Базы данных 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 для MySQL с помощью портал Azure или краткого руководства. Создание экземпляра База данных Azure для MySQL — Гибкий сервер с помощью 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, узнайте, как устранить неполадки со сборкой и выпуском. |