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

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

Внимание

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

Начало работы с GitHub Actions с помощью рабочего процесса для развертывания обновлений базы данных на гибком сервере База данных 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

  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. Переименуйте рабочий процесс 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 }}
    
  5. Используйте действие развертывания 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'
    
  6. Завершите создание рабочего процесса, добавив действие для выхода из 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
    

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

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

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

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

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

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

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