Megosztás a következőn keresztül:


A GitHub Actions használata az Azure SQL Database-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 SQL Database-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 Tevékenységek
Hitelesítés 1.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

Hozzon létre egy egyszerű szolgáltatást az az ad sp create-for-rbac paranccsal az Azure CLI-ben. Futtassa ezt a parancsot az Azure Cloud Shell használatával az Azure Portalon, vagy a Kipróbálás gombra kattintva.

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

A paraméter --json-auth az Azure CLI 2.51.0-s verzióiban >érhető el. A használat --sdk-auth előtti verziók elavultsági figyelmeztetéssel.

A fenti példában cserélje le a helyőrzőket az előfizetés azonosítójára, az erőforráscsoport nevére és az alkalmazás nevére. A kimenet egy JSON-objektum, amelynek szerepkör-hozzárendelési hitelesítő adatai az alábbiakhoz hasonló hozzáférést biztosítanak az App Service-alkalmazáshoz. Másolja ezt a JSON-objektumot későbbre.

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

Az SQL-kapcsolati sztring másolása

Az Azure Portalon nyissa meg az Azure SQL Database-t, és nyissa meg Gépház> Csatlakozás ion-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. A kapcsolati sztring ehhez a kimenethez hasonlóan néz ki.

Server=tcp:my-sql-server.database.windows.net,1433;Initial Catalog={your-database};Persist Security Info=False;User ID={admin-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

A kapcsolati sztring GitHub-titkos kódként fogja beállítani. AZURE_SQL_CONNECTION_STRING

A GitHub titkos kulcsainak konfigurálása

  1. A GitHubon nyissa meg az adattárat.

  2. Nyissa meg a Gépház a navigációs menüben.

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

    Screenshot of adding a secret

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

  5. Illessze be az Azure CLI parancs teljes JSON-kimenetét a titkos kód értékmezőjébe. Adja meg a titkos nevet AZURE_CREDENTIALS.

  6. Válassza az Add secret (Titkos kód hozzáadása) lehetőséget.

Az SQL-kapcsolati sztring titkos kód hozzáadása

  1. A GitHubon nyissa meg az adattárat.

  2. Nyissa meg a Gépház a navigációs menüben.

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

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

  5. Illessze be az SQL-kapcsolati sztring. Adja meg a titkos nevet AZURE_SQL_CONNECTION_STRING.

  6. Válassza az Add secret (Titkos kód hozzáadása) lehetőséget.

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: SQL for GitHub Actions
    
    on:
        push:
            branches: [ main ]
        pull_request:
            branches: [ main ]
    
  4. Nevezze át a munkafolyamatot SQL 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: SQL 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@v1
               with:
                creds: ${{ secrets.AZURE_CREDENTIALS }}
    

  1. Az Azure SQL Deploy művelet használatával csatlakozzon az SQL-példányhoz. Az adattár gyökérszintjén dacpac-csomagnak (Database.dacpac) kell lennie. Használja a AZURE_SQL_CONNECTION_STRING korábban létrehozott GitHub-titkos kulcsot.

    - uses: azure/sql-action@v2
      with:
        connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }}
        path: './Database.dacpac'
        action: 'Publish'
    
  2. Végezze el a munkafolyamatot úgy, hogy hozzáad egy műveletet az Azure kijelentkezéséhez. Itt található a befejezett munkafolyamat. A fájl megjelenik az .github/workflows adattár mappájában.

    name: SQL 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@v1
               with:
                creds: ${{ secrets.AZURE_CREDENTIALS }}
             - uses: azure/sql-action@v2
               with:
                connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }}
                path: './Database.dacpac'
                action: 'Publish'
    
                # 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.

    Log of GitHub actions run

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

Ha az Azure SQL-adatbázisra és az 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.

Következő lépések