Szybki start: nawiązywanie połączenia z usługą Azure Database for PostgreSQL za pomocą funkcji GitHub Actions — serwer elastyczny
DOTYCZY: Azure Database for PostgreSQL — 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 PostgreSQL.
Wymagania wstępne
Należy wykonać:
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Repozytorium GitHub z przykładowymi danymi (
data.sql
). Jeśli nie masz konta usługi GitHub, zarejestruj się bezpłatnie. - Wystąpienie serwera elastycznego usługi Azure Database for PostgreSQL.
- Utwórz wystąpienie usługi Azure Database for PostgreSQL — serwer elastyczny.
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. |
Wdróż | 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 serwera elastycznego usługi Azure Database for PostgreSQL parametry połączenia
W witrynie Azure Portal przejdź do wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL, a następnie z menu zasobów w obszarze Ustawienia wybierz pozycję Połącz. Na tej stronie użyj pola kombi Nazwa bazy danych, aby wybrać nazwę bazy danych, z którą chcesz nawiązać połączenie. Rozwiń sekcję Połącz z aplikacji i skopiuj ADO.NET parametry połączenia i zastąp wartość {your_password}
symbolu zastępczego rzeczywistym hasłem. Parametry połączenia wygląda podobnie do tego.
Server={servername.postgres.database.azure.com};Database={your_database};Port=5432;User Id={adminusername};Password={your_password};Ssl Mode=Require;
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
PostgreSQL for GitHub Actions
i dodaj akcje wyewidencjonowania i logowania. Te akcje sprawdzają 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 }}
Użyj akcji Wdrażanie usługi Azure PostgreSQL, aby nawiązać połączenie z wystąpieniem serwera elastycznego usługi Azure Database for PostgreSQL. Zastąp
POSTGRESQL_SERVER_NAME
ciąg nazwą serwera. Powinien istnieć plik danych serwera elastycznego usługi Azure Database for PostgreSQL o nazwiedata.sql
na poziomie głównym repozytorium.- uses: azure/postgresql@v1 with: connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }} server-name: POSTGRESQL_SERVER_NAME plsql-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: 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 }} plsql-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 elastyczna baza danych i repozytorium serwera usługi Azure Database for PostgreSQL nie są już potrzebne, wyczyść wdrożone zasoby, usuwając grupę zasobów i repozytorium GitHub.
Powiązana zawartość
- Integracja z platformą Azure i usługą GitHub.
- Jak nawiązać połączenie z serwerem.