Nawiązywanie połączenia z usługą Azure SQL Database przy użyciu funkcji GitHub Actions

Rozpocznij pracę z funkcją GitHub Actions przy użyciu przepływu pracy, aby wdrożyć aktualizacje bazy danych w usłudze Azure SQL Database.

Wymagania wstępne

Należy wykonać:

Omówienie pliku przepływu pracy

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

Plik zawiera dwie sekcje:

Sekcja Zadania
Authentication 1.1. Generowanie poświadczeń 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 witrynie 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> \
                            --json-auth

Parametr --json-auth jest dostępny w wersjach >interfejsu wiersza polecenia platformy Azure = 2.51.0. Wersje przed tym użyciem --sdk-auth z ostrzeżeniem o wycofaniu.

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 usługi App Service podobnej do poniższej. Skopiuj ten obiekt JSON do późniejszego użycia.

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

Kopiowanie parametry połączenia SQL

W witrynie Azure Portal przejdź do usługi Azure SQL Database i otwórz ciągi Ustawienia> Połączenie ion. Skopiuj parametry połączenia ADO.NET. Zastąp wartości symboli zastępczych dla your_database i your_password. Parametry połączenia wygląda podobnie do tych danych wyjściowych.

Server=tcp:my-sql-server.database.windows.net,1433;Initial Catalog={your-database};Persist Security Info=False;User ID={admin-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

Ustawisz parametry połączenia jako wpis tajny usługi GitHub. AZURE_SQL_CONNECTION_STRING

Konfigurowanie wpisów tajnych usługi GitHub

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

  2. Przejdź do Ustawienia w menu nawigacji.

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

    Screenshot of adding a secret

  4. Wybierz pozycję Nowy wpis tajny repozytorium.

  5. 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.

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

Dodawanie wpisu tajnego parametry połączenia SQL

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

  2. Przejdź do Ustawienia w menu nawigacji.

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

  4. Wybierz pozycję Nowy wpis tajny repozytorium.

  5. Wklej parametry połączenia SQL. Nadaj wpisowi tajnym nazwę AZURE_SQL_CONNECTION_STRING.

  6. 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: SQL for GitHub Actions
    
    on:
        push:
            branches: [ main ]
        pull_request:
            branches: [ main ]
    
  4. Zmień nazwę przepływu pracy SQL for GitHub Actions i dodaj akcje wyewidencjonowania i logowania. Te akcje sprawdzają kod witryny i uwierzytelniają się na platformie Azure przy użyciu utworzonego wcześniej wpisu tajnego AZURE_CREDENTIALS usługi GitHub.

    name: SQL for GitHub Actions
    
    on:
        push:
            branches: [ main ]
        pull_request:
            branches: [ main ]
    
    jobs:
        build:
            runs-on: windows-latest
            steps:
             - uses: actions/checkout@v1
             - uses: azure/login@v1
               with:
                creds: ${{ secrets.AZURE_CREDENTIALS }}
    

  1. Użyj akcji Wdrażanie usługi Azure SQL, aby nawiązać połączenie z wystąpieniem SQL. Pakiet dacpac (Database.dacpac) powinien znajdować się na poziomie głównym repozytorium. Użyj utworzonego wcześniej wpisu tajnego AZURE_SQL_CONNECTION_STRING usługi GitHub.

    - uses: azure/sql-action@v2
      with:
        connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }}
        path: './Database.dacpac'
        action: 'Publish'
    
  2. Ukończ przepływ pracy, dodając akcję w celu wylogowania się z platformy Azure. Oto ukończony przepływ pracy. Plik zostanie wyświetlony w .github/workflows folderze repozytorium.

    name: SQL for GitHub Actions
    
    on:
        push:
            branches: [ main ]
        pull_request:
            branches: [ main ]
    
    jobs:
        build:
            runs-on: windows-latest
            steps:
             - uses: actions/checkout@v1
             - uses: azure/login@v1
               with:
                creds: ${{ secrets.AZURE_CREDENTIALS }}
             - uses: azure/sql-action@v2
               with:
                connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }}
                path: './Database.dacpac'
                action: 'Publish'
    
                # 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.

    Log of GitHub actions run

Czyszczenie zasobów

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

Następne kroki