Azure Pipelines для База данных Azure для MySQL — отдельный сервер

ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для MySQL — отдельный сервер

Начните работу с Базой данных Azure для MySQL, развернув обновление базы данных с помощью Azure Pipelines. Azure Pipelines позволяет создавать, тестировать и развертывать ресурсы с использованием технологий непрерывной интеграции (CI) и непрерывной поставки (CD) в Azure DevOps.

Для этого вы примените задачу развертывания Базы данных Azure для MySQL Задача развертывания База данных Azure для MySQL работает только с одним сервером База данных Azure для MySQL.

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

Для этого потребуются следующие компоненты.

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

Создание конвейера

Вы примените простейший конвейер в качестве основы для своего конвейера.

  1. Войдите в свою организацию Azure DevOps и откройте нужный проект.

  2. В этом проекте перейдите к странице Pipelines (Конвейеры). Выберите действие создания конвейера сборки.

  3. Пройдите через шаги мастера, выбрав GitHub в качестве расположения исходного кода.

  4. Возможно, вам придется выполнить вход в GitHub. Для этого введите учетные данные GitHub.

  5. Когда появится список репозиториев, выберите нужный репозиторий.

  6. Azure Pipelines выполнит анализ этого репозитория и предложит варианты конфигурации. Выберите Простейший конвейер.

    Screenshot of Select Starter pipeline.

Создание секрета

Вам нужно знать имя сервера базы данных, имя пользователя SQL и пароль для этого пользователя SQL, чтобы применить эти данные в задаче развертывания Базы данных Azure для MySQL.

Для обеспечения безопасности пароль SQL лучше всего сохранить в секретной переменной через пользовательский интерфейс параметров конвейера.

  1. Перейдите на страницу Pipelines (Конвейеры), выберите соответствующий конвейер и нажмите кнопку Edit (Изменить).

  2. Выберите Переменные.

  3. Добавьте новую переменную с именем SQLpass и щелкните Сохранить секрет значения, чтобы зашифровать и сохранить эту переменную.

    Screenshot of adding a secret variable.

  4. Поочередно щелкните ОК и Сохранить, чтобы добавить переменную.

Проверка разрешений для базы данных

Чтобы получить доступ к базе данных MySQL из Azure Pipelines, необходимо настроить для базы данных прием подключений от ресурсов Azure.

  1. Откройте ресурс базы данных на портале Azure.

  2. Выберите Безопасность подключения.

  3. Задайте для параметра Разрешить доступ к службам Azure значение Да.

    Screenshot of setting MySQL to allow Azure connections.

Добавление задачи развертывания Базы данных Azure для MySQL

В этом примере мы создадим новую базу данных с именем quickstartdb и добавим в нее таблицу inventory. Предложенный встроенный скрипт SQL выполнит следующие действия:

  • удалит базу данных quickstartdb, если она существует, и создаст новую базу данных quickstartdb;
  • удалит таблицу inventory, если она существует, и создаст новую таблицу inventory;
  • вставит три строки в inventory;
  • отобразит все строки;
  • изменит значение первой строки в inventory;
  • удалит вторую строку из inventory.

Вам потребуется заменить в задаче развертывания следующие значения.

Входные данные Description Пример
azureSubscription Проверка подлинности с использованием подписки Azure и подключения к службе. My Subscription
ServerName Имя сервера Базы данных Azure для MySQL. fabrikam.mysql.database.azure.com
SqlUsername Имя пользователя в Базе данных Azure для MySQL. mysqladmin@fabrikam
SqlPassword Пароль для этого имени пользователя. Это значение нужно определить как секретную переменную. $(SQLpass)

trigger:
- main

pool:
  vmImage: ubuntu-latest

steps:
- task: AzureMysqlDeployment@1
  inputs:
    azureSubscription: '<your-subscription>
    ServerName: '<db>.mysql.database.azure.com'
    SqlUsername: '<username>@<db>'
    SqlPassword: '$(SQLpass)'
    TaskNameSelector: 'InlineSqlTask'
    SqlInline: |
      DROP DATABASE IF EXISTS quickstartdb;
      CREATE DATABASE quickstartdb;
      USE quickstartdb;
      
      -- Create a table and insert rows
      DROP TABLE IF EXISTS inventory;
      CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);
      INSERT INTO inventory (name, quantity) VALUES ('banana', 150);
      INSERT INTO inventory (name, quantity) VALUES ('orange', 154);
      INSERT INTO inventory (name, quantity) VALUES ('apple', 100);
      
      -- Read
      SELECT * FROM inventory;
      
      -- Update
      UPDATE inventory SET quantity = 200 WHERE id = 1;
      SELECT * FROM inventory;
      
      -- Delete
      DELETE FROM inventory WHERE id = 2;
      SELECT * FROM inventory;
    IpDetectionMethod: 'AutoDetect'

Развертывание и проверка ресурсов

Щелкните Сохранить и выполнить, чтобы развернуть конвейер. Будет запущено задание конвейера, и через несколько минут состояние задания примет значение Success.

Вы можете убедиться, что конвейер успешно выполнен, в сведениях о задаче AzureMysqlDeployment в этом выполнении конвейера.

Откройте эту задачу и убедитесь, что в последних двух записях отображаются две строки inventory. Этих строк только две, так как вторая строка уже удалена.

Screenshot to show reviewing final table results.

Очистка ресурсов

Завершив работу с конвейером, удалите ресурс quickstartdb из Базы данных Azure для MySQL. Вы также можете удалить созданный конвейер развертывания.

Следующие шаги