Szybki start: nawiązywanie połączenia z usługą Azure PostgreSQL przy użyciu GitHub Actions

DOTYCZY: Azure Database for PostgreSQL — pojedynczy serwer

DOTYCZY: Azure Database for PostgreSQL — pojedynczy serwer Azure Database for PostgreSQL — serwer elastyczny

Rozpocznij pracę z GitHub Actions przy użyciu przepływu pracy w celu wdrożenia aktualizacji bazy danych w Azure Database for PostgreSQL.

Wymagania wstępne

Potrzebne elementy:

Omówienie pliku przepływu pracy

Przepływ pracy GitHub Actions jest definiowany przez plik YAML (yml) w /.github/workflows/ ścieżce w repozytorium. Ta definicja zawiera różne kroki i parametry, które tworzą przepływ pracy.

Plik zawiera dwie sekcje:

Sekcja Zadania
Authentication 1. Generuj poświadczenia wdrożenia.
Wdrażanie 1. Wdróż bazę danych.

Generowanie poświadczeń wdrożenia

Utwórz jednostkę usługi za pomocą polecenia az ad sp create-for-rbac w interfejsie wiersza polecenia platformy Azure. Uruchom to polecenie za pomocą usługi Azure Cloud Shell w Azure Portal lub wybierając przycisk Wypróbuj.

az ad sp create-for-rbac --name "myML" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
                            --sdk-auth

W powyższym przykładzie zastąp symbole zastępcze identyfikatorem subskrypcji, nazwą grupy zasobów i nazwą aplikacji. Dane wyjściowe to obiekt JSON z poświadczeniami przypisania roli, które zapewniają dostęp do aplikacji App Service podobnej do poniższej. Skopiuj ten obiekt JSON do późniejszego użycia.

  {
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
  }

Kopiowanie parametrów połączenia postgreSQL

W Azure Portal przejdź do serwera Azure Database for PostgreSQL i otwórz pozycję Ustawienia>Parametry połączenia. Skopiuj parametry połączenia ADO.NET. Zastąp wartości symboli zastępczych dla your_database i your_password. Parametry połączenia będą wyglądać podobnie do tego.

Ważne

  • W przypadku pojedynczego serwera użyj polecenia user=adminusername@servername . Zanotuj, że @servername jest to wymagane.
  • W przypadku serwera elastycznego użyj polecenia user= adminusername bez elementu @servername.
psql host={servername.postgres.database.azure.com} port=5432 dbname={your_database} user={adminusername} password={your_database_password} sslmode=require

Parametry połączenia będą używane jako wpis tajny usługi GitHub.

Konfigurowanie wpisów tajnych usługi GitHub

  1. W usłudze GitHub przejdź do repozytorium.

  2. Wybierz pozycję Wpisy tajne zabezpieczeń > i zmienne > Akcje.

    Zrzut ekranu przedstawiający dodawanie wpisu tajnego

  3. Wybierz pozycję Nowy wpis tajny repozytorium.

  4. Wklej całe dane wyjściowe JSON z polecenia interfejsu wiersza polecenia platformy Azure do pola wartości wpisu tajnego. Nadaj wpisowi tajnym nazwę AZURE_CREDENTIALS.

  5. Wybierz przycisk Add secret (Dodaj wpis tajny).

Dodawanie przepływu pracy

  1. Przejdź do pozycji Akcje dla repozytorium GitHub.

  2. Wybierz pozycję Skonfiguruj przepływ pracy samodzielnie.

  3. Usuń wszystko po on: sekcji pliku przepływu pracy. Na przykład pozostały przepływ pracy może wyglądać następująco.

    name: CI
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
  4. Zmień nazwę przepływu pracy PostgreSQL for GitHub Actions i dodaj akcje wyewidencjonowania i logowania. Te akcje będą wyewidencjonowywały kod witryny i uwierzytelniają się na platformie Azure przy użyciu utworzonych wcześniej wpisów tajnych usługi 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. Użyj akcji Wdrażanie usługi Azure PostgreSQL, aby nawiązać połączenie z wystąpieniem bazy danych PostgreSQL. Zastąp POSTGRESQL_SERVER_NAME ciąg nazwą serwera. Powinien istnieć plik danych PostgreSQL o nazwie data.sql na poziomie głównym repozytorium.

     - uses: azure/postgresql@v1
       with:
        connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }}
        server-name: POSTGRESQL_SERVER_NAME
        sql-file: './data.sql'
    
  6. Ukończ przepływ pracy, dodając akcję w celu wylogowania platformy Azure. Oto ukończony przepływ pracy. Plik zostanie wyświetlony w .github/workflows folderze repozytorium.

    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 }}
        sql-file: './data.sql'
    
        # Azure logout
    - name: logout
      run: |
         az logout
    

Przeglądanie wdrożenia

  1. Przejdź do pozycji Akcje dla repozytorium GitHub.

  2. Otwórz pierwszy wynik, aby wyświetlić szczegółowe dzienniki przebiegu przepływu pracy.

    Dziennik uruchamiania funkcji GitHub Actions

Czyszczenie zasobów

Gdy baza danych i repozytorium usługi Azure PostgreSQL nie są już potrzebne, wyczyść wdrożone zasoby, usuwając grupę zasobów i repozytorium GitHub.

Następne kroki