Rövid útmutató: A GitHub Actions használata az Azure Database for PostgreSQL-hez való csatlakozáshoz

Ismerkedés a GitHub Actions szolgáltatással egy munkafolyamat használatával, amely adatbázis-frissítéseket helyez üzembe az Azure Database for PostgreSQL-ben.

Előfeltételek

A következők szükségesek:

Munkafolyamat-fájl áttekintése

A GitHub Actions-munkafolyamatokat egy YAML-fájl (.yml) definiálja az /.github/workflows/ adattár elérési útján. Ez a definíció a munkafolyamatot alkotó különböző lépéseket és paramétereket tartalmazza.

A fájl két szakaszból áll:

Szakasz Tasks
Authentication 1. Üzembehelyezési hitelesítő adatok létrehozása.
Üzembe helyezés 1. Helyezze üzembe az adatbázist.

Üzembehelyezési hitelesítő adatok létrehozása

Az Azure Bejelentkezési művelet OIDC-vel való használatához konfigurálnia kell egy összevont identitás hitelesítő adatait egy Microsoft Entra-alkalmazáson vagy egy felhasználó által hozzárendelt felügyelt identitáson.

1. lehetőség: Microsoft Entra-alkalmazás

2. lehetőség: Felhasználó által hozzárendelt felügyelt identitás

Az Azure Database for PostgreSQL kapcsolati sztringjének másolása

Az Azure Portalon nyissa meg a rugalmas Azure Database for PostgreSQL-kiszolgálópéldányt, és az erőforrásmenü Beállítások területén válassza a Csatlakozás lehetőséget. Ezen a lapon az Adatbázisnév kombinált lista használatával jelölje ki annak az adatbázisnak a nevét, amelyhez csatlakozni szeretne. Nyissa meg a Csatlakozás az alkalmazásból szakaszt, másolja az ADO.NET kapcsolati sztringet, és helyettesítse a helyőrző értékét {your_password} a tényleges jelszóval. A kapcsolati karakterlánc ehhez hasonlóan néz ki.

Server={servername.postgres.database.azure.com};Database={your_database};Port=5432;User Id={adminusername};Password={your_password};Ssl Mode=Require;

A kapcsolati stringet GitHub-titkos kódként használja.

A GitHub titkos kulcsainak konfigurálása

A bejelentkezési művelethez meg kell adnia az alkalmazás ügyfél-, címtár- (bérlői) azonosítóját és előfizetés-azonosítóját. Ezek az értékek közvetlenül a munkafolyamatban is megadhatók, vagy a GitHub titkokban tárolhatók, és a munkafolyamatban hivatkozhatók. Az értékek GitHub-titkos kulcsként való mentése a biztonságosabb megoldás.

  1. A GitHubon nyissa meg az adattárat.

  2. Válassza ki a Biztonsági > titkos kulcsok és változók > műveletek lehetőséget.

    Képernyőkép egy titkos kód hozzáadásáról

  3. Válassza az Új tárház titkos kódját.

    Megjegyzés:

    A nyilvános adattárak munkafolyamat-biztonságának javítása érdekében tárházi titkos kulcsok helyett használjon környezeti titkos kulcsokat . Ha a környezet jóváhagyást igényel, a feladatok nem férhetnek hozzá a környezeti titkos kódokhoz, amíg az egyik szükséges véleményező nem hagyja jóvá.

  4. Titkos kulcsok létrehozása a következőhöz AZURE_CLIENT_ID: , AZURE_TENANT_IDés AZURE_SUBSCRIPTION_ID. Másolja ki ezeket az értékeket a Microsoft Entra-alkalmazásból vagy a felhasználó által hozzárendelt felügyelt identitásból a GitHub-titkos kulcsokhoz:

    GitHub-titkos kód Microsoft Entra-alkalmazás vagy felhasználó által hozzárendelt felügyelt identitás
    AZURE_CLIENT_ID (Az Azure ügyfélazonosító) Ügyfélazonosító
    AZURE_SUBSCRIPTION_ID Előfizetés azonosító
    AZURE_TENANT_ID Címtár (ügyfél) azonosítója

    Megjegyzés:

    Biztonsági okokból azt javasoljuk, hogy a GitHub Titkos kulcsokat használja ahelyett, hogy közvetlenül a munkafolyamatnak ad át értékeket.

Adja hozzá munkafolyamatát

  1. Nyissa meg a GitHub-adattár műveletek elemét.

  2. Válassza a munkafolyamatot állítsa be maga.

  3. Töröljön mindent a on: munkafolyamat-fájl szakasza után. A fennmaradó munkafolyamat például így nézhet ki.

    name: CI
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
  4. Nevezze át a munkafolyamatot PostgreSQL for GitHub Actions, és adja hozzá a fizetési és bejelentkezési műveleteket. Ezek a műveletek ellenőrzik a webhely kódját, és hitelesítik az Azure-ban a korábban létrehozott GitHub-titkos kód(ok) használatával.

    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@v2
        with:
            client-id: ${{ secrets.AZURE_CLIENT_ID }}
            tenant-id: ${{ secrets.AZURE_TENANT_ID }}
            subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
    
  5. Az Azure PostgreSQL Deploy művelettel csatlakozzon az Azure Database for PostgreSQL rugalmas kiszolgálópéldányához. Cserélje le POSTGRESQL_SERVER_NAME a kiszolgáló nevére. Rendelkeznie kell egy Azure Database for PostgreSQL-adatfájllal, amely az adattár gyökérszintjén van elnevezve data.sql .

     - uses: azure/postgresql@v1
       with:
        connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }}
        server-name: POSTGRESQL_SERVER_NAME
        plsql-file: './data.sql'
    
  6. Végezze el a munkafolyamatot úgy, hogy hozzáad egy műveletet az Azure-ból való kijelentkezéshez. Itt található a befejezett munkafolyamat. A fájl megjelenik az .github/workflows adattár mappájában.

    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@v2
        with:
            client-id: ${{ secrets.AZURE_CLIENT_ID }}
            tenant-id: ${{ secrets.AZURE_TENANT_ID }}
            subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
    
    - 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
    

Az üzembe helyezés áttekintése

  1. Nyissa meg a GitHub-adattár műveletek elemét.

  2. Nyissa meg az első eredményt a munkafolyamat futtatásának részletes naplóinak megtekintéséhez.

    A GitHub Actions futtatásának naplója.

Erőforrások tisztítása

Ha az Azure Database for PostgreSQL-adatbázisra és -adattárra már nincs szükség, törölje az üzembe helyezett erőforrásokat az erőforráscsoport és a GitHub-adattár törlésével.