Краткое руководство. Использование GitHub Actions для подключения к База данных Azure для PostgreSQL — гибкий сервер
ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — отдельный сервер База данных Azure для PostgreSQL — гибкий сервер
Внимание
База данных Azure для PostgreSQL — одиночный сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для PostgreSQL — гибкий сервер. Дополнительные сведения о миграции на База данных Azure для PostgreSQL — гибкий сервер см. в статье "Что происходит с одним сервером База данных Azure для PostgreSQL?".
Начало работы с GitHub Actions с помощью рабочего процесса для развертывания обновлений базы данных на гибком сервере База данных Azure для PostgreSQL.
Необходимые компоненты
Необходимые компоненты:
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Репозиторий GitHub с примером данных (
data.sql
). Если у вас нет учетной записи GitHub, зарегистрируйтесь бесплатно. - Гибкий экземпляр сервера База данных Azure для PostgreSQL.
Общие сведения о файле рабочего процесса
Рабочий процесс в GitHub Actions определяется файлом .yml, который размещается в папке репозитория /.github/workflows/
. Это определение содержит разные шаги и параметры рабочего процесса.
Этот файл содержит два раздела:
Раздел | Задачи |
---|---|
Аутентификация | 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>",
(...)
}
Копирование гибкого сервера База данных Azure для PostgreSQL строка подключения
В портал Azure перейдите к База данных Azure для PostgreSQL гибкому экземпляру сервера и откройте строки Параметры> Подключение ion. Скопируйте строку подключения по протоколу ADO.NET. Замените заполнители значениями для your_database
и your_password
. Строка подключения выглядит примерно так.
Внимание
- Для одного сервера База данных Azure для PostgreSQL используйте
user=adminusername@servername
. Обратите внимание, что часть@servername
является обязательной. - Для База данных Azure для PostgreSQL гибкого сервера используйте
user= adminusername
без@servername
.
psql host={servername.postgres.database.azure.com} port=5432 dbname={your_database} user={adminusername} password={your_database_password} sslmode=require
Вы используете строка подключения в качестве секрета GitHub.
Настройка секретов GitHub
В GitHub перейдите в репозиторий.
Перейдите к Параметры в меню навигации.
Выберите "Секреты безопасности>" и "Действия переменных>".
Нажмите Создать секрет репозитория.
Вставьте все выходные данные JSON, полученные из команды Azure CLI, в поле значения секрета. Присвойте секрету имя
AZURE_CREDENTIALS
.Выберите Добавить секрет.
Добавление рабочего процесса
Перейдите в раздел Actions (Действия) для репозитория GitHub.
Выберите Set up your workflow yourself (Настроить рабочий процесс самостоятельно).
Удалите все содержимое в файле рабочего процесса после раздела
on:
. После этого рабочий процесс должен выглядеть примерно так.name: CI on: push: branches: [ main ] pull_request: branches: [ main ]
Переименуйте рабочий процесс
PostgreSQL for GitHub Actions
и добавьте проверка out и выполните вход. Эти действия проверка код сайта и проверку подлинности с помощью Azure с помощью секретов GitHub, созданных ранее.name: PostgreSQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }}
Используйте действие развертывания Azure PostgreSQL для подключения к База данных Azure для PostgreSQL гибкому экземпляру сервера. Замените
POSTGRESQL_SERVER_NAME
именем сервера. У вас должен быть База данных Azure для PostgreSQL гибкий файл данных сервера с именемdata.sql
на корневом уровне репозитория.- uses: azure/postgresql@v1 with: connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }} server-name: POSTGRESQL_SERVER_NAME plsql-file: './data.sql'
Завершите создание рабочего процесса, добавив действие для выхода из Azure. Готовый рабочий процесс выглядит так: Файл отображается в папке
.github/workflows
репозитория.name: PostgreSQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - uses: azure/login@v1 with: client-id: ${{ secrets.AZURE_CREDENTIALS }} - uses: azure/postgresql@v1 with: server-name: POSTGRESQL_SERVER_NAME connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }} plsql-file: './data.sql' # Azure logout - name: logout run: | az logout
Проверка развертывания
Перейдите в раздел Actions (Действия) для репозитория GitHub.
Откройте первый результат, чтобы проверить подробные журналы выполнения рабочего процесса.
Очистка ресурсов
Если База данных Azure для PostgreSQL гибкой базе данных сервера и репозитория больше не нужны, очистите ресурсы, развернутые путем удаления группы ресурсов и репозитория GitHub.