Rövid útmutató: A GitHub Actions használata az Azure Database for MySQL-hez való csatlakozáshoz – rugalmas kiszolgáló

Ismerkedés a GitHub Actions szolgáltatással egy munkafolyamat használatával, amely adatbázis-frissítéseket helyez üzembe a rugalmas Azure Database for MySQL-kiszolgálón.

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:

Section Tevékenységek
Hitelesítés 1. Üzembehelyezési hitelesítő adatok létrehozása.
Telepíté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

A MySQL-kapcsolati sztring másolása

Az Azure Portalon nyissa meg a rugalmas Azure Database for MySQL-kiszolgálópéldányt, és nyissa meg a Beállítások>kapcsolati sztringeket. Másolja az ADO.NET kapcsolati sztringet. Cserélje le a helyőrző értékeket a következőre your_database : és your_password.

Fontos

  • Önálló Azure Database for MySQL-kiszolgáló esetén használja az Uid=adminusername@servername. Vegye figyelembe, hogy a @servername szükséges.
  • Rugalmas Azure Database for MySQL-kiszolgáló esetén használja a Uid=adminusername nevet a @servername.

A kapcsolati sztring GitHub-titkos kódként fogja használni.

GitHub-titkos kulcsok 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óak, vagy a GitHub titkos kulcsaiban tárolhatók, és a munkafolyamatban hivatkozhatnak gombra. 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 Ügyfélazonosító
    AZURE_SUBSCRIPTION_ID Előfizetés azonosítója
    AZURE_TENANT_ID Címtár (bérlő) 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.

Munkafolyamat hozzáadása

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

  2. Válassza a Munkafolyamat beállítása lehetőséget.

  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 MySQL for GitHub Actions , és adja hozzá a kivételi és bejelentkezési műveleteket. Ezek a műveletek a korábban létrehozott GitHub-titkos kóddal ellenőrzik a webhely kódját, és hitelesítik az AZURE_CREDENTIALS Azure-ban.

    name: MySQL for GitHub Actions
    
    on:
        push:
            branches: [ main ]
        pull_request:
            branches: [ main ]
    
    jobs:
        build:
            runs-on: windows-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 MySQL Deploy művelet használatával csatlakozzon a MySQL-példányhoz. Cserélje le MYSQL_SERVER_NAME a kiszolgáló nevére. Rendelkeznie kell egy MySQL-adatfájllal, amely az adattár gyökérszintjén van elnevezve data.sql .

    - uses: azure/mysql@v1
      with:
        server-name: MYSQL_SERVER_NAME
        connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }}
        sql-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: MySQL for GitHub Actions
    
    on:
      push:
          branches: [ main ]
      pull_request:
          branches: [ main ]
    jobs:
        build:
            runs-on: windows-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/mysql@v1
                with:
                  server-name: MYSQL_SERVER_NAME
                  connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }}
                  sql-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.

    Képernyőkép a GitHub Actions futtatásáról.

Az erőforrások eltávolítása

Ha a rugalmas Azure Database for MySQL-kiszolgáló adatbázisára és adattárára 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.

Következő lépés