Создание и развертывание проектов базы данных в GitHub Actions и Azure DevOps
Поскольку базы данных являются неотъемлемой частью более крупных решений, разработчики должны находить эффективные способы управления разработкой баз данных аналогично тому, как они обрабатывают код приложения. Эта задача особенно сложна, так как разработка баз данных тесно связана с данными, хранящимися в базе данных, добавляя уровни сложности.
К счастью, такие инструменты, как GitHub Actions и Azure DevOps Services , предлагают надежные решения для управления этими сложностями. Обе платформы поддерживают развертывание DACPAC, что упрощает процесс развертывания изменений базы данных путем упаковки их в пакет компонента приложения уровня данных (DAC ). Этот подход не только гарантирует согласованность и надежность развертываний баз данных, но и легко интегрируется с конвейерами непрерывной интеграции и непрерывного развертывания (CI/CD), что упрощает для разработчиков обслуживание и обновление баз данных вместе с кодом приложения.
Примеры в этом уроке предполагают, что у вас уже есть:
- Подписка Azure с разрешениями на создание ресурсов и управление ими.
-
Visual Studio Code установлен со следующими расширениями:
- База данных SQL Проекты.
- Запросы на вытягивание GitHub.
- Учетная запись GitHub с частным репозиторием GitHub, созданным как владелец.
- База данных SQL Azure, настроенный с включенным разрешением доступа к службам Azure. Краткое руководство. Создание одной базы данных База данных SQL Azure.
Применение GitHub Actions для подключения к Базе данных SQL Azure
Вы можете использовать GitHub Actions для подключения к База данных SQL Azure и публикации проектов SQL с помощью DACPAC-файлов.
Использование действий GitHub для подключения к База данных SQL Azure состоит из трех основных шагов.
- Клонируйте репозиторий GitHub в Visual Studio Code.
- Создайте проект базы данных в Visual Studio Code.
- Настройте непрерывную интеграцию (CI) с помощью GitHub Actions.
Клонирование репозитория GitHub
Вы можете клонировать созданный репозиторий GitHub, выполнив следующие действия.
- В Visual Studio Code выберите Просмотр>Палитра команд.
- В палитре команд введите Git: Клонировать, а затем выберите его.
- Введите URL-адрес репозитория и выберите "Клонировать".
- Выберите или создайте папку для хранения файлов репозитория.
Создание проекта базы данных в Visual Studio Code
В Visual Studio Code настройте новый проект базы данных и сохраните проект в той же папке, где клонировали репозиторий GitHub.
Дополнительные сведения о создании проекта базы данных в Visual Studio Code см. в SQL Server Development with Visual Studio Code.
После создания проекта базы данных добавьте код для изменения База данных SQL Azure. Затем зафиксируйте их обратно в репозиторий GitHub, чтобы убедиться, что они отслеживаются и интегрированы в систему управления версиями.
Настройка непрерывной интеграции с GitHub Actions
Чтобы настроить непрерывную интеграцию (CI) с помощью GitHub Actions, создайте .yml файл в пути в /.github/workflows/ репозитории. Файл .yml содержит два раздела.
- Настройка проверки подлинности
- Создание рабочего процесса GitHub
Проверка подлинности настраивает секреты GitHub, а второй раздел создает рабочий процесс GitHub Actions.
Проверка подлинности
Сначала необходимо создать субъект-службу с az ad sp create-for-rbac помощью команды в Azure CLI. Используйте Azure Cloud Shell в портал Azure для выполнения следующего кода Azure CLI. Замените заполнители идентификатором подписки, именем группы ресурсов и именем приложения.
az ad sp create-for-rbac --name "myML" --role contributor --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> --json-auth
Выходные данные — это объект JSON с учетными данными назначения ролей. Сохраните файл в виде секрета GitHub.
Во-вторых, создайте строка подключения SQL. Это можно скопировать из портал Azure. В База данных SQL Azure откройте строки подключения параметров>.
Скопируйте ADO.NET строка подключения и замените значения заполнителей для базы данных и пароля. Строка подключения выглядит примерно так:
Server=tcp:my-sql-server.database.windows.net,1433;Initial Catalog={your-database};Persist Security Info=False;User ID={admin-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
Этот строка подключения также будет храниться в виде секрета GitHub.
В репозитории GitHub вы добавите секреты в > Создайте новые секреты, именованные AZURE_CREDENTIALS для хранения текста JSON и AZURE_SQL_CONNECTION_STRING хранения строка подключения.
Теперь вы готовы создать рабочий процесс.
Примечание.
В рабочей среде рекомендуется использовать управляемые удостоверения для действия GitHub, чтобы получить доступ к базе данных вместо проверки подлинности SQL. Дополнительные сведения см. в разделе "Управляемые удостоверения" в Microsoft Entra для SQL Azure.
Создание рабочего процесса GitHub
В репозитории GitHub выберите "Действия" и настройте рабочий процесс самостоятельно. Откроется пустой файл main.yml .
Теперь вы можете создать файл YAML. Подробные синтаксис и рекомендации см. в разделе "Рабочий процесс для действий GitHub". Например, имя: тег указывает имя рабочего процесса, а значение определяет события, запускающие рабочий процесс.
Совет
Краткое руководство по GitHub Actions позволяет вам работать с дополнительными функциями действий GitHub.
развертывание База данных SQL Azure с помощью Azure DevOps Services
Вы также можете развернуть обновления в База данных SQL Azure с помощью Azure DevOps Services. Чтобы приступить к работе, вам потребуется учетная запись Azure DevOps Services, система управления версиями (например, Azure Repos или GitHub) и Visual Studio Code с установленным расширением База данных SQL.
Azure DevOps Services включает Azure Pipelines, которые автоматически создают, тестируют и развертывают код. С помощью Azure Pipelines вы можете поддерживать непрерывную интеграцию и непрерывное развертывание (CI/CD) База данных SQL Azure изменений в проекте. Эта интеграция гарантирует, что изменения базы данных постоянно и надежно применяются.
Azure Pipelines легко интегрированы с различными системами управления версиями, включая GitHub и Azure Repos. Azure Pipelines позволяет запускать скрипты SQL в рамках конвейера с помощью скриптов Azure PowerShell для создания и удаления правил брандмауэра в Azure, обеспечения безопасного и эффективного управления базами данных.
Дополнительные сведения о вариантах развертывания База данных SQL Azure см. в документации по развертыванию базы данных SQL Azure для Azure DevOps Services.