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


Краткое руководство. Использование GitHub Actions для подключения к База данных Azure для MySQL — гибкий сервер

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

Внимание

База данных Azure для MySQL один сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для MySQL гибкого сервера. Дополнительные сведения о миграции на гибкий сервер База данных Azure для MySQL см. в статье "Что происходит с одним сервером База данных Azure для MySQL?"

Начало работы с GitHub Actions с помощью рабочего процесса для развертывания обновлений базы данных на База данных Azure для MySQL гибком сервере.

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

Что вам понадобится:

Общие сведения о файле рабочего процесса

Рабочий процесс в GitHub Actions определяется файлом .yml, который размещается в папке репозитория /.github/workflows/. Это определение содержит разные шаги и параметры рабочего процесса.

Этот файл содержит два раздела:

Section Задачи
Аутентификация 1. Создание учетных данных для развертывания.
Развертывание 1. Развертывание базы данных.

Создание учетных данных для развертывания.

Создайте субъект-службу с помощью командыaz ad sp create-for-rbac в Azure CLI. Чтобы выполнить эту команду, откройте Azure Cloud Shell на портале Azure или нажмите кнопку Попробовать.

az ad sp create-for-rbac --name "myML" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
                            --json-auth

Параметр --json-auth доступен в версиях >Azure CLI = 2.51.0. Версии до этого использования --sdk-auth с предупреждением об нерекомендуемом.

В указанном выше примере замените заполнители соответствующим идентификатором подписки, именем группы ресурсов и именем приложения. Выходные данные содержат объект JSON с учетными данными назначения роли, которые предоставляют доступ к приложению Службы приложений, как показано ниже. Скопируйте этот объект JSON для последующего использования.

  {
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
  }

Скопируйте строку подключения MySQL

В портал Azure перейдите к База данных Azure для MySQL гибкому экземпляру сервера и откройте строки подключения параметров>. Скопируйте строку подключения по протоколу ADO.NET. Замените заполнители значениями для your_database и your_password.

Внимание

  • Для одного сервера База данных Azure для MySQL используйте Uid=adminusername@servername. Обратите внимание, что @servername является обязательным элементом.
  • Для База данных Azure для MySQL гибкого сервера используйте uid=adminusername без @servername.

Эту строку подключения вы примените в качестве секрета GitHub.

Настройка секретов GitHub

  1. В GitHub перейдите в репозиторий.

  2. Перейдите к параметрам в меню навигации .

  3. Выберите "Секреты безопасности>" и "Действия переменных>".

    Снимок экрана: добавление секрета

  4. Нажмите Создать секрет репозитория.

  5. Вставьте все выходные данные JSON, полученные из команды Azure CLI, в поле значения секрета. Присвойте секрету имя AZURE_CREDENTIALS.

  6. Выберите Добавить секрет.

Добавление рабочего процесса

  1. Перейдите в раздел Actions (Действия) для репозитория GitHub.

  2. Выберите Set up your workflow yourself (Настроить рабочий процесс самостоятельно).

  3. Удалите все содержимое в файле рабочего процесса после раздела on:. После этого рабочий процесс должен выглядеть примерно так.

    name: CI
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
  4. Присвойте рабочему процессу имя MySQL for GitHub Actions и добавьте действия для извлечения и входа. Эти действия проверяют код сайта и проходят проверку подлинности в Azure с помощью созданного ранее секрета AZURE_CREDENTIALS GitHub.

    name: MySQL for GitHub Actions
    
    on:
        push:
            branches: [ main ]
        pull_request:
            branches: [ main ]
    
    jobs:
        build:
            runs-on: windows-latest
            steps:
            - uses: actions/checkout@v1
            - uses: azure/login@v1
                with:
                    creds: ${{ secrets.AZURE_CREDENTIALS }}
    
  5. Используйте действие развертывания Azure MySQL для подключения к экземпляру MySQL. Замените MYSQL_SERVER_NAME именем сервера. На корневом уровне репозитория должен размещаться файл данных MySQL с именем data.sql.

    - uses: azure/mysql@v1
      with:
        server-name: MYSQL_SERVER_NAME
        connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }}
        sql-file: './data.sql'
    
  6. Завершите создание рабочего процесса, добавив действие для выхода из Azure. Готовый рабочий процесс выглядит так: Файл отображается в папке .github/workflows репозитория.

    name: MySQL for GitHub Actions
    
    on:
      push:
          branches: [ main ]
      pull_request:
          branches: [ main ]
    jobs:
        build:
            runs-on: windows-latest
            steps:
              - uses: actions/checkout@v1
              - uses: azure/login@v1
                with:
                  creds: ${{ secrets.AZURE_CREDENTIALS }}
    
              - uses: azure/mysql@v1
                with:
                  server-name: MYSQL_SERVER_NAME
                  connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }}
                  sql-file: './data.sql'
    
                # Azure logout
              - name: logout
                run: |
                  az logout
    

Проверка развертывания

  1. Перейдите в раздел Actions (Действия) для репозитория GitHub.

  2. Откройте первый результат, чтобы проверить подробные журналы выполнения рабочего процесса.

    Журнал выполнения GitHub Actions.

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

Если База данных Azure для MySQL гибкой базе данных сервера и репозитория больше не нужны, очистите ресурсы, развернутые путем удаления группы ресурсов и репозитория GitHub.

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