Szybki start: nawiązywanie połączenia z usługą Azure Database for MySQL za pomocą funkcji GitHub Actions — serwer elastyczny
Rozpocznij pracę z funkcją GitHub Actions przy użyciu przepływu pracy, aby wdrożyć aktualizacje bazy danych na serwerze elastycznym usługi Azure Database for MySQL.
Wymagania wstępne
Potrzebne będą następujące elementy:
Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
Konto usługi GitHub. Jeśli nie masz konta usługi GitHub, zarejestruj się bezpłatnie.
Repozytorium GitHub z przykładowymi danymi (
data.sql
).Ważne
W tym przewodniku Szybki start założono, że sklonujesz repozytorium GitHub na komputer, aby w razie potrzeby dodać skojarzony adres IP do reguły zapory.
Wystąpienie serwera elastycznego usługi Azure Database for MySQL.
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. 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 MySQL
W witrynie Azure Portal przejdź do wystąpienia serwera elastycznego usługi Azure Database for MySQL 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
.
Ważne
- W przypadku pojedynczego serwera usługi Azure Database for MySQL użyj identyfikatora Uid=adminusername@servername. Zwróć uwagę, że @servername jest wymagany.
- W przypadku serwera elastycznego usługi Azure Database for MySQL użyj identyfikatora Uid=adminusername bez .@servername
Użyjesz parametry połączenia jako wpisu tajnego usługi GitHub.
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 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: CI on: push: branches: [ main ] pull_request: branches: [ main ]
Zmień nazwę przepływu pracy
MySQL 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: MySQL 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 MySQL, aby nawiązać połączenie z wystąpieniem programu MySQL. Zastąp
MYSQL_SERVER_NAME
ciąg nazwą serwera. Plik danych MySQL powinien mieć nazwędata.sql
na poziomie głównym repozytorium.- uses: azure/mysql@v1 with: server-name: MYSQL_SERVER_NAME connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }} sql-file: './data.sql'
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: MySQL 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/mysql@v1 with: server-name: MYSQL_SERVER_NAME connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }} sql-file: './data.sql' # 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 i repozytorium serwera elastycznego usługi Azure Database for MySQL nie są już potrzebne, wyczyść wdrożone zasoby, usuwając grupę zasobów i repozytorium GitHub.