Nawiązywanie połączenia z usługą Azure SQL Database przy użyciu funkcji GitHub Actions
Dotyczy: Azure SQL Database
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ć:
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Repozytorium GitHub z pakietem dacpac (
Database.dacpac
). Jeśli nie masz konta usługi GitHub, zarejestruj się bezpłatnie. - An Azure SQL Database. Szybki start: tworzenie pojedynczej bazy danych usługi Azure SQL Database.
- Plik dacpac do zaimportowania do bazy danych.
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 pozycję Ustawienia>Parametry połączenia. Skopiuj parametry połączenia ADO.NET. Zastąp wartości symboli zastępczych dla your_database
i your_password
.
Ustawisz parametry połączenia jako wpis tajny usługi GitHub. AZURE_SQL_CONNECTION_STRING
Konfigurowanie wpisów tajnych usługi GitHub
W usłudze GitHub przejdź do repozytorium.
Przejdź do pozycji Ustawienia w menu nawigacji.
Wybierz pozycję Wpisy tajne zabezpieczeń > i zmienne > Akcje.
Wybierz pozycję Nowy wpis tajny repozytorium.
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
.Wybierz przycisk Add secret (Dodaj wpis tajny).
Dodawanie wpisu tajnego parametry połączenia SQL
W usłudze GitHub przejdź do repozytorium.
Przejdź do pozycji Ustawienia w menu nawigacji.
Wybierz pozycję Wpisy tajne zabezpieczeń > i zmienne > Akcje.
Wybierz pozycję Nowy wpis tajny repozytorium.
Wklej parametry połączenia SQL. Nadaj wpisowi tajnym nazwę
AZURE_SQL_CONNECTION_STRING
.Wybierz przycisk Add secret (Dodaj wpis tajny).
Dodawanie przepływu pracy
Przejdź do pozycji Akcje dla repozytorium GitHub.
Wybierz pozycję Skonfiguruj przepływ pracy samodzielnie.
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 ]
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 tajnegoAZURE_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 }}
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 tajnegoAZURE_SQL_CONNECTION_STRING
usługi GitHub.- uses: azure/sql-action@v2 with: connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }} path: './Database.dacpac' action: 'Publish'
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
Przejdź do pozycji Akcje dla repozytorium GitHub.
Otwórz pierwszy wynik, aby wyświetlić szczegółowe dzienniki przebiegu przepływu pracy.
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.