Schnellstart: Verwenden von GitHub Actions zum Herstellen einer Verbindung mit Azure Database for PostgreSQL – Flexibler Server

GILT FÜR: Azure Database for PostgreSQL – Einzelserver Azure Database for PostgreSQL – Flexible Server

Wichtig

Azure Database for PostgreSQL – Single Server wird eingestellt. Es wird dringend empfohlen, ein Upgrade auf Azure Database for PostgreSQL – Flexibler Server auszuführen. Weitere Informationen zum Migrieren zu Azure Database for PostgreSQL – Flexibler Server finden Sie unter Was geschieht mit Azure Database for PostgreSQL – Single Server?.

Verwenden Sie als Einstieg in GitHub Actions einen Workflow zum Bereitstellen von Datenbankupdates für Azure Database for PostgreSQL – Flexibler Server.

Voraussetzungen

Erforderlich:

Übersicht über die Workflowdatei

Ein GitHub Actions-Workflow wird durch eine YAML-Datei (.yml) im Pfad /.github/workflows/ in Ihrem Repository definiert. Diese Definition enthält die verschiedenen Schritte und Parameter, die den Workflow bilden.

Die Datei besteht aus zwei Abschnitten:

`Section` Aufgaben
Authentifizierung 1. Generieren von Anmeldeinformationen für die Bereitstellung.
Bereitstellen 1. Bereitstellen der Datenbank.

Generieren von Anmeldeinformationen für die Bereitstellung

Generieren Sie in der Azure CLI mit dem Befehl az ad sp create-for-rbac einen Dienstprinzipal. Führen Sie diesen Befehl mit Azure Cloud Shell im Azure-Portal oder durch Auswählen der Schaltfläche Ausprobieren aus.

az ad sp create-for-rbac --name "myML" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
                            --json-auth

Der Parameter --json-auth ist in Azure CLI-Versionen >= 2.51.0 verfügbar. Frühere Versionen nutzen --sdk-auth mit einer Einstellungswarnung.

Ersetzen Sie im obigen Beispiel die Platzhalter durch Ihre Abonnement-ID, den Ressourcengruppennamen und den App-Namen. Die Ausgabe ist ein JSON-Objekt mit den Anmeldeinformationen für die Rollenzuweisung, die ähnlich wie unten Zugriff auf Ihre App Service-App gewähren. Kopieren Sie dieses JSON-Objekt zur späteren Verwendung.

  {
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
  }

Kopieren der Verbindungszeichenfolge von Azure Database for PostgreSQL – Flexibler Server

Wechseln Sie im Azure-Portal zu Ihrer Instanz von Azure Database for PostgreSQL – Flexibler Server, und öffnen Sie Einstellungen>Verbindungszeichenfolgen. Kopieren Sie die ADO.NET-Verbindungszeichenfolge. Ersetzen Sie die Platzhalterwerte für your_database und your_password. Die Verbindungszeichenfolge sieht ähnlich aus wie dies.

Wichtig

  • Für Azure Database for PostgreSQL – Einzelserver verwenden Sie user=adminusername@servername. Beachten Sie, dass @servername erforderlich ist.
  • Für Azure Database for PostgreSQL – Flexible Server verwenden Sie user= adminusername ohne @servername.
psql host={servername.postgres.database.azure.com} port=5432 dbname={your_database} user={adminusername} password={your_database_password} sslmode=require

Sie verwenden die Verbindungszeichenfolge als GitHub-Geheimnis.

Konfigurieren der GitHub-Geheimnisse

  1. Wechseln Sie in GitHub zu Ihrem Repository.

  2. Gehen Sie im Navigationsmenü auf Einstellungen.

  3. Wählen Sie Security > Secrets and variables > Actions (Sicherheit > Geheimnisse und Variablen > Aktionen) aus.

    Screenshot des Hinzufügens eines Geheimnisses

  4. Wählen Sie New repository secret (Neues Repositorygeheimnis) aus.

  5. Fügen Sie die gesamte JSON-Ausgabe aus dem Azure CLI-Befehl in das Wertfeld des Geheimnisses ein. Geben Sie dem Geheimnis den Namen AZURE_CREDENTIALS.

  6. Klicken Sie auf Add secret (Geheimnis hinzufügen).

Hinzufügen des Workflows

  1. Navigieren Sie für Ihr GitHub-Repository zu Actions (Aktionen).

  2. Wählen Sie Set up your workflow yourself (Workflow selbst einrichten) aus.

  3. Löschen Sie alles nach dem Abschnitt on: Ihrer Workflowdatei. Der verbleibende Workflow könnte beispielsweise wie folgt aussehen:

    name: CI
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
  4. Benennen Sie den Workflow in PostgreSQL for GitHub Actions um, und fügen Sie die Aktionen zum Auschecken und Anmelden hinzu. Diese Aktionen checken Ihren Websitecode aus und authentifizieren mit Azure mithilfe des/der von Ihnen zuvor erstellten GitHub-Geheimnisse(s).

    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 }}
    
  5. Verwenden Sie die Aktion „Azure PostgreSQL Deploy“, um eine Verbindung mit Ihrer Instanz von Azure Database for PostgreSQL – Flexibler Server herzustellen. Ersetzen Sie POSTGRESQL_SERVER_NAME durch den Namen Ihres Servers. Sie sollten über eine Datendatei für Azure Database for PostgreSQL – Flexibler Server namens data.sql auf der Stammebene Ihres Repositorys verfügen.

     - uses: azure/postgresql@v1
       with:
        connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }}
        server-name: POSTGRESQL_SERVER_NAME
        plsql-file: './data.sql'
    
  6. Vervollständigen Sie Ihren Workflow, indem Sie eine Aktion zum Abmelden von Azure hinzufügen. Hier sehen Sie den vollständigen Workflow. Die Datei erscheint im Ordner .github/workflows Ihres Repositorys.

    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
    

Überprüfen der Bereitstellung

  1. Navigieren Sie für Ihr GitHub-Repository zu Actions (Aktionen).

  2. Öffnen Sie das erste Ergebnis, um ausführliche Protokolle zur Ausführung des Workflows anzuzeigen.

    Protokoll zur Ausführung von GitHub Actions

Bereinigen von Ressourcen

Wenn Sie die Datenbank und das Repository von Azure Database for PostgreSQL – Flexibler Server nicht mehr benötigen, bereinigen Sie die bereitgestellten Ressourcen, indem Sie die Ressourcengruppe und Ihr GitHub-Repository löschen.

Nächste Schritte