Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Начало работы с GitHub Actions с помощью рабочего процесса для развертывания обновлений базы данных в Базе данных Azure для PostgreSQL.
Предпосылки
Тебе нужно:
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Репозиторий GitHub с примером данных (
data.sql). Если у вас нет учетной записи GitHub, зарегистрируйтесь бесплатно. - Гибкий сервер базы данных Azure для PostgreSQL.
- Создайте базу данных Azure для PostgreSQL.
Общие сведения о файле рабочего процесса
Рабочий процесс в GitHub Actions определяется файлом .yml, который размещается в папке репозитория /.github/workflows/. Это определение содержит разные шаги и параметры рабочего процесса.
Этот файл содержит два раздела:
| Секция | Tasks |
|---|---|
| Аутентификация | 1. Создание учетных данных для развертывания. |
| Развертывание | 1. Развертывание базы данных. |
Создание учетных данных для развертывания.
Чтобы использовать действие входа Azure с OIDC, необходимо настроить федеративные учетные данные удостоверения в приложении Microsoft Entra или управляемом удостоверении, назначаемом пользователем.
Вариант 1. Приложение Microsoft Entra
- Создайте приложение Microsoft Entra с субъектом-службой с помощью портала Azure, Azure CLI или Azure PowerShell.
- Скопируйте значения для идентификатора клиента, идентификатора подписки и идентификатора каталога (клиента), чтобы использовать его позже в рабочем процессе GitHub Actions.
- Назначьте соответствующую роль субъекту-службе, портал Azure, Azure CLI или Azure PowerShell.
- Настройте учетные данные федеративного удостоверения в приложении Microsoft Entra, чтобы доверять токенам, выдаваемым GitHub Actions в вашем репозитории GitHub.
Вариант 2. Управляемое удостоверение, назначаемое пользователем
- Создайте управляемое удостоверение, назначаемое пользователем.
- Скопируйте значения для идентификатора клиента, идентификатора подписки и идентификатора каталога (клиента), чтобы использовать его позже в рабочем процессе GitHub Actions.
- Назначьте соответствующую роль управляемому удостоверению, назначенному пользователем.
- Настройте учетные данные федеративного удостоверения в управляемом удостоверении , назначаемом пользователем, для доверия маркеров, выданных GitHub Actions в репозитории GitHub.
Скопируйте строку подключения базы данных PostgreSQL для Azure
В портал Azure перейдите к База данных Azure для PostgreSQL гибкому экземпляру сервера и в меню ресурсов в разделе "Параметры" выберите "Подключить". На этой странице используйте поле со списком "Имя базы данных", чтобы выбрать имя базы данных, к которой требуется подключиться.
Разверните узел Connect из раздела приложения и скопируйте ADO.NET строка подключения и замените заполнитель {your_password} фактическим паролем. Строка подключения выглядит примерно так.
Server={servername.postgres.database.azure.com};Database={your_database};Port=5432;User Id={adminusername};Password={your_password};Ssl Mode=Require;
Вы используете строка подключения в качестве секрета GitHub.
Настройка секретов GitHub
Необходимо указать идентификатор клиента приложения, идентификатор каталога (клиента) и идентификатор подписки для действия входа. Эти значения могут быть указаны непосредственно в рабочем процессе или храниться в секретах GitHub с указанием ссылок на них в рабочем процессе. Сохранение значений в виде секретов GitHub является более безопасным вариантом.
В GitHub перейдите в репозиторий.
Выберите > переменных>".
Нажмите Создать секрет репозитория.
Замечание
Чтобы повысить безопасность рабочих процессов в общедоступных репозиториях, используйте секреты среды вместо секретов репозитория. Если среда требует утверждения, задание не сможет получить доступ к секретам среды, пока один из обязательных рецензентов не утвердит его.
Создайте секреты для
AZURE_CLIENT_ID,AZURE_TENANT_IDиAZURE_SUBSCRIPTION_ID. Скопируйте эти значения из приложения Microsoft Entra или назначенного пользователем управляемого удостоверения для секретов GitHub.Секрет GitHub Приложение Microsoft Entra или назначенное пользователем управляемое удостоверение AZURE_CLIENT_ID Идентификатор клиента AZURE_SUBSCRIPTION_ID ID подписки AZURE_TENANT_ID (идентификатор арендатора Azure) Идентификатор каталога (арендатора) Замечание
По соображениям безопасности рекомендуется использовать секреты GitHub, а не передавать значения непосредственно в рабочий процесс.
Добавление рабочего процесса
Перейдите в раздел Actions (Действия) для репозитория GitHub.
Выберите Set up your workflow yourself (Настроить рабочий процесс самостоятельно).
Удалите все содержимое в файле рабочего процесса после раздела
on:. После этого рабочий процесс должен выглядеть примерно так.name: CI on: push: branches: [ main ] pull_request: branches: [ main ]Переименуйте рабочий процесс
PostgreSQL for GitHub Actionsи добавьте действия для выхода и входа. Эти действия проверяют код сайта и проходят проверку подлинности в 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@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}Используйте действие развертывания 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@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - 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.
Связанный контент
- Интеграция Azure и GitHub.
- Как подключиться к серверу.