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


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

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

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

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

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

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

Рабочий процесс в 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>",
    (...)
  }

Копирование гибкого сервера База данных Azure для PostgreSQL строка подключения

В портал 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

  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 и добавьте действия для выхода и входа. Эти действия проверяют код сайта и проходят проверку подлинности в 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.

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