Quickstart: GitHub Actions gebruiken om verbinding te maken met Azure Database for PostgreSQL - Flexible Server

VAN TOEPASSING OP: Azure Database for PostgreSQL - Enkele server Azure Database for PostgreSQL - Flexibele server

Belangrijk

Azure Database for PostgreSQL - Enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan om een upgrade uit te voeren naar Azure Database for PostgreSQL - Flexible Server. Zie Wat gebeurt er met Azure Database for PostgreSQL Enkele server voor meer informatie over migreren naar Azure Database for PostgreSQL - Flexible Server.

Ga aan de slag met GitHub Actions met behulp van een werkstroom voor het implementeren van database-updates op flexibele Azure Database for PostgreSQL-server.

Vereisten

U hebt het volgende nodig:

Overzicht van werkstroom bestand

Een GitHub Actions-werkstroom wordt gedefinieerd door een YAML-bestand (.yml) in het pad /.github/workflows/ in uw opslagplaats. Deze definitie bevat de verschillende stappen en parameters die deel uitmaken van de werkstroom.

Het bestand heeft twee secties:

Sectie Opdrachten
Verificatie 1. Implementatiereferenties genereren.
Implementatie 1. Implementeer de database.

Genereer implementatiereferenties

Maak een service-principal met de opdracht az ad sp create-for-rbac in de Azure CLI. Voer deze opdracht uit met Azure Cloud Shell in de Azure Portal of door de knop Uitproberen te selecteren.

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

De parameter --json-auth is beschikbaar in Azure CLI-versies >= 2.51.0. Versies vóór dit gebruik --sdk-auth met een afschaffingswaarschuwing.

Vervang in het bovenstaande voorbeeld de tijdelijke aanduidingen door uw abonnements-id, resourcegroepnaam en app-naam. De uitvoer is een JSON-object met de roltoewijzingsreferenties die toegang bieden tot uw App Service-app, vergelijkbaar met hieronder. Kopieer dit JSON-object voor later gebruik.

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

De flexibele Azure Database for PostgreSQL-server kopiëren verbindingsreeks

Ga in Azure Portal naar uw exemplaar van flexibele Azure Database for PostgreSQL-server en open Instellingen> Verbinding maken iontekenreeksen. Kopieer de verbindingsreeks voor ADO.NET. Vervang de plaatsaanduidingswaarden door your_database en your_password. De verbindingsreeks ziet er ongeveer als volgt uit.

Belangrijk

  • Gebruik user=adminusername@servername voor Azure Database for PostgreSQL enkele server. Let op: @servername is vereist.
  • Gebruik voor flexibele Azure Database for PostgreSQL-server user= adminusername zonder de @servername.
psql host={servername.postgres.database.azure.com} port=5432 dbname={your_database} user={adminusername} password={your_database_password} sslmode=require

U gebruikt de verbindingsreeks als gitHub-geheim.

De GitHub-geheimen configureren

  1. Ga in GitHub naar uw opslagplaats.

  2. Ga naar Instellingen in het navigatiemenu.

  3. Selecteer Acties voor beveiligingsgeheimen > en variabelen>.

    Schermopname van het toevoegen van een geheim

  4. Selecteer Nieuw opslagplaatsgeheim.

  5. Plak de volledige JSON-uitvoer van de Azure CLI-opdracht in het waardeveld van het geheim. Geef het geheim de naam AZURE_CREDENTIALS.

  6. Selecteer Geheim toevoegen.

Voeg uw werkstroom toe

  1. Ga naar Acties voor uw GitHub-opslagplaats.

  2. Selecteer Uw werkstroom zelf instellen.

  3. Verwijder alles na de sectie on: van uw werkstroombestand. Uw resterende werkstroom kan er bijvoorbeeld als volgt uitzien.

    name: CI
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
  4. Wijzig de naam van uw werkstroom PostgreSQL for GitHub Actions en voeg de acties voor uitchecken en aanmelden toe. Met deze acties controleert u uw sitecode en verifieert u met Azure met behulp van de GitHub-geheimen die u eerder hebt gemaakt.

    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. Gebruik de azure PostgreSQL-implementatieactie om verbinding te maken met uw flexibele Azure Database for PostgreSQL-serverexemplaren. Vervang POSTGRESQL_SERVER_NAME door de naam van uw server. U moet beschikken over een azure Database for PostgreSQL Flexible Server-gegevensbestand met de naam data.sql op het hoofdniveau van uw opslagplaats.

     - uses: azure/postgresql@v1
       with:
        connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }}
        server-name: POSTGRESQL_SERVER_NAME
        plsql-file: './data.sql'
    
  6. Voltooi uw werkstroom door een actie toe te voegen om u af te melden bij Azure. Dit is de voltooide werkstroom. Het bestand wordt weergegeven in de .github/workflows map van uw opslagplaats.

    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
    

Beoordeel uw implementatie

  1. Ga naar Acties voor uw GitHub-opslagplaats.

  2. Open het eerste resultaat om gedetailleerde logboeken van de uitvoering van de werkstroom weer te geven.

    Logboek van De uitvoering van GitHub Actions.

Resources opschonen

Wanneer uw flexibele Server-database en -opslagplaats van Azure Database for PostgreSQL niet meer nodig zijn, moet u de resources opschonen die u hebt geïmplementeerd door de resourcegroep en uw GitHub-opslagplaats te verwijderen.

Volgende stappen