Rychlý start: Použití GitHub Actions pro připojení k Azure PostgreSQL

PLATÍ PRO: Azure Database for PostgreSQL – Jednoúčelový server Azure Database for PostgreSQL – flexibilní server

Důležité

Azure Database for PostgreSQL – Jeden server je na cestě vyřazení z provozu. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for PostgreSQL. Další informace o migraci na flexibilní server Azure Database for PostgreSQL najdete v tématu Co se děje s Azure Database for PostgreSQL jednoúčelovým serverem?

Začněte s GitHub Actions nasazením aktualizací databáze do Azure Database for PostgreSQL pomocí pracovního postupu.

Požadavky

Budete potřebovat:

Přehled souboru pracovního postupu

Pracovní postup GitHub Actions je definován souborem YAML (.yml) v /.github/workflows/ cestě ve vašem úložišti. Tato definice obsahuje různé kroky a parametry, které tvoří pracovní postup.

Soubor má dvě části:

Sekce Úkoly
Authentication 1. Vygenerujte přihlašovací údaje pro nasazení.
Nasazení 1. Nasaďte databázi.

Generování přihlašovacích údajů nasazení

Vytvořte instanční objekt pomocí příkazu az ad sp create-for-rbac v Azure CLI. Spusťte tento příkaz se službou Azure Cloud Shell v Azure Portal nebo výběrem tlačítka Vyzkoušet.

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

Ve výše uvedeném příkladu nahraďte zástupné symboly ID vašeho předplatného, názvem skupiny prostředků a názvem aplikace. Výstupem je objekt JSON s přihlašovacími údaji přiřazení role, které poskytují přístup k vaší App Service aplikaci, podobně jako níže. Zkopírujte tento objekt JSON pro pozdější použití.

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

Zkopírování připojovacího řetězce PostgreSQL

V Azure Portal přejděte na server Azure Database for PostgreSQL a otevřetePřipojovací řetězcenastavení>. Zkopírujte připojovací řetězec pro ADO.NET. Nahraďte zástupné hodnoty pro your_database a your_password. Připojovací řetězec vypadá nějak takto.

Důležité

  • Pro jednoúčelový server použijte user=adminusername@servername . Všimněte si, že @servername je povinné.
  • Pro flexibilní server použijte user= adminusername bez .@servername
psql host={servername.postgres.database.azure.com} port=5432 dbname={your_database} user={adminusername} password={your_database_password} sslmode=require

Připojovací řetězec použijete jako tajný kód GitHubu.

Konfigurace tajných kódů GitHubu

  1. V GitHubu přejděte do svého úložiště.

  2. V navigační nabídce přejděte na Nastavení .

  3. Vyberte Tajné kódy zabezpečení > a proměnné > Akce.

    Snímek obrazovky s přidáním tajného kódu

  4. Vyberte Nový tajný klíč úložiště.

  5. Vložte celý výstup JSON z příkazu Azure CLI do pole hodnoty tajného kódu. Dejte tajnému kódu název AZURE_CREDENTIALS.

  6. Vyberte Add secret (Přidat tajný kód).

Přidání pracovního postupu

  1. Přejděte na Akce pro vaše úložiště GitHub.

  2. Vyberte Nastavit pracovní postup sami.

  3. Odstraňte všechno za oddílem on: souboru pracovního postupu. Například zbývající pracovní postup může vypadat takto.

    name: CI
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
  4. Přejmenujte pracovní postup PostgreSQL for GitHub Actions a přidejte akce rezervace a přihlášení. Tyto akce prověří kód lokality a ověří se v Azure pomocí tajných kódů GitHubu, které jste vytvořili dříve.

    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. Pomocí akce Azure PostgreSQL Nasadit se připojte k instanci PostgreSQL. Nahraďte POSTGRESQL_SERVER_NAME názvem vašeho serveru. Datový soubor PostgreSQL byste měli mít na data.sql kořenové úrovni úložiště.

     - uses: azure/postgresql@v1
       with:
        connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }}
        server-name: POSTGRESQL_SERVER_NAME
        plsql-file: './data.sql'
    
  6. Dokončete pracovní postup přidáním akce pro odhlášení z Azure. Tady je dokončený pracovní postup. Soubor se zobrazí ve .github/workflows složce úložiště.

    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
    

Kontrola nasazení

  1. Přejděte na Akce pro vaše úložiště GitHub.

  2. Otevřením prvního výsledku zobrazíte podrobné protokoly o spuštění pracovního postupu.

    Protokol spuštění GitHub Actions

Vyčištění prostředků

Pokud už databázi a úložiště Azure PostgreSQL nepotřebujete, vyčistěte nasazené prostředky odstraněním skupiny prostředků a úložiště GitHub.

Další kroky