Szybki start: nawiązywanie połączenia z usługą Azure PostgreSQL przy użyciu GitHub Actions
DOTYCZY: Azure Database for PostgreSQL — pojedynczy serwer
DOTYCZY: Azure Database for PostgreSQL — pojedynczy serwer
Azure Database for PostgreSQL — serwer elastyczny
Rozpocznij pracę z GitHub Actions przy użyciu przepływu pracy w celu wdrożenia aktualizacji bazy danych w Azure Database for PostgreSQL.
Wymagania wstępne
Potrzebne elementy:
- Konto platformy Azure z aktywną subskrypcją. Utwórz bezpłatne konto.
- Repozytorium GitHub z przykładowymi danymi (
data.sql
). Jeśli nie masz konta usługi GitHub, zarejestruj się bezpłatnie. - Serwer Azure Database for PostgreSQL.
Omówienie pliku przepływu pracy
Przepływ pracy GitHub Actions jest definiowany przez plik YAML (yml) w /.github/workflows/
ścieżce w repozytorium. Ta definicja zawiera różne kroki i parametry, które tworzą przepływ pracy.
Plik zawiera dwie sekcje:
Sekcja | Zadania |
---|---|
Authentication | 1. Generuj poświadczenia 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 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> \
--sdk-auth
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 App Service podobnej do poniższej. Skopiuj ten obiekt JSON do późniejszego użycia.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
Kopiowanie parametrów połączenia postgreSQL
W Azure Portal przejdź do serwera Azure Database for PostgreSQL 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
. Parametry połączenia będą wyglądać podobnie do tego.
Ważne
- W przypadku pojedynczego serwera użyj polecenia
user=adminusername@servername
. Zanotuj, że@servername
jest to wymagane. - W przypadku serwera elastycznego użyj polecenia
user= adminusername
bez elementu@servername
.
psql host={servername.postgres.database.azure.com} port=5432 dbname={your_database} user={adminusername} password={your_database_password} sslmode=require
Parametry połączenia będą używane jako wpis tajny usługi GitHub.
Konfigurowanie wpisów tajnych usługi GitHub
W usłudze GitHub przejdź do repozytorium.
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 będą wyewidencjonowywały 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 bazy danych PostgreSQL. Zastąp
POSTGRESQL_SERVER_NAME
ciąg nazwą serwera. Powinien istnieć plik danych 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 sql-file: './data.sql'
Ukończ przepływ pracy, dodając akcję w celu wylogowania 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 }} 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 usługi Azure PostgreSQL nie są już potrzebne, wyczyść wdrożone zasoby, usuwając grupę zasobów i repozytorium GitHub.