Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
Instancja elastycznego serwera 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
Aby użyć Azure Login z OIDC, należy skonfigurować poświadczenie tożsamości federacyjnej w aplikacji Microsoft Entra lub przydzielonej tożsamości zarządzanej przez użytkownika.
Opcja 1: aplikacja Microsoft Entra
- Utwórz aplikację Microsoft Entra z jednostką usługi za pomocą portalu Azure, Azure CLI lub Azure PowerShell.
- Skopiuj wartości identyfikatora klienta, identyfikatora subskrypcji i identyfikatora katalogu (dzierżawy), aby użyć ich później w przepływie pracy funkcji GitHub Actions.
- Przypisz odpowiednią rolę do jednostki usługi za pomocą portalu Azure , Azure CLIlub Azure PowerShell.
- Skonfiguruj poświadczenie tożsamości federacyjnej w aplikacji Microsoft Entra, aby zaufać tokenom wystawionym przez GitHub Actions w repozytorium GitHub.
Opcja 2. Tożsamość zarządzana przypisana przez użytkownika
- Utwórz przypisaną przez użytkownika zarządzaną tożsamość.
- Skopiuj wartości identyfikatora klienta, identyfikatora subskrypcji i identyfikatora katalogu (dzierżawy), aby użyć ich później w przepływie pracy funkcji GitHub Actions.
- Przypisz odpowiednią rolę swojej tożsamości zarządzanej przypisanej użytkownikowi.
- Skonfiguruj poświadczenie tożsamości federacyjnej dla tożsamości zarządzanej przypisanej przez użytkownika, aby zaufane tokeny wystawione przez GitHub Actions były akceptowane przez twoje repozytorium GitHub.
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
Musisz podać identyfikator klienta aplikacji , identyfikator katalogu (dzierżawy) oraz identyfikator subskrypcji do wykonania akcji logowania. Te wartości można podać bezpośrednio w przepływie pracy lub przechowywać w wpisach tajnych usługi GitHub i odwoływać się do nich w przepływie pracy. Zapisanie wartości jako wpisów tajnych usługi GitHub jest bezpieczniejszą opcją.
W usłudze GitHub przejdź do repozytorium.
Wybierz pozycję Wpisy tajne zabezpieczeń > i zmienne > Akcje.
Wybierz pozycję Nowy wpis tajny repozytorium.
Uwaga / Notatka
Aby zwiększyć bezpieczeństwo przepływu pracy w repozytoriach publicznych, użyj sekretów środowiska zamiast sekretów repozytorium. Jeśli środowisko wymaga zatwierdzenia, zadanie nie może uzyskać dostępu do tajnych danych środowiska, dopóki nie zostanie zatwierdzone przez jednego z wymaganych recenzentów.
Utwórz wpisy tajne dla ,
AZURE_CLIENT_IDAZURE_TENANT_IDiAZURE_SUBSCRIPTION_ID. Skopiuj te wartości ze swojej aplikacji Microsoft Entra lub z tożsamości zarządzanej przypisanej przez użytkownika do sekretów GitHub.Wpis tajny usługi GitHub Aplikacja Microsoft Entra lub tożsamość zarządzana przypisana przez użytkownika AZURE_CLIENT_ID ID klienta AZURE_SUBSCRIPTION_ID Identyfikator subskrypcji AZURE_TENANT_ID Identyfikator katalogu (dzierżawcy) Uwaga / Notatka
Ze względów bezpieczeństwa zalecamy używanie GitHub Secrets zamiast przekazywania wartości bezpośrednio do workflow.
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 Actionsi dodaj akcje wyewidencjonowania i logowania. Te akcje sprawdzają kod witryny i uwierzytelniają się na platformie Azure przy użyciu utworzonego wcześniej wpisu tajnegoAZURE_CREDENTIALSusł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@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}Użyj akcji Wdrażanie usługi Azure MySQL, aby nawiązać połączenie z wystąpieniem programu MySQL. Zastąp
MYSQL_SERVER_NAMEciąg nazwą serwera. Plik danych MySQL powinien mieć nazwędata.sqlna 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/workflowsfolderze 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@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - 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.