Delen via


GitHub Actions gebruiken om verbinding te maken met Azure SQL Database

van toepassing op:Azure SQL Database-

Ga aan de slag met GitHub Actions met behulp van een werkstroom voor het implementeren van database-updates voor Azure SQL Database.

Voorwaarden

U hebt het volgende nodig:

Overzicht van werkstroombestand

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

Het bestand heeft twee secties:

Afdeling Taken
verificatie 1.1. Implementatiereferenties genereren.
implementeren 1. Implementeer de database.

Implementatiereferenties genereren

Als u Azure-aanmeldingsactie met OIDC wilt gebruiken, moet u een federatieve identiteitsreferentie configureren in een Microsoft Entra-toepassing of een door de gebruiker toegewezen beheerde identiteit.

optie 1: Microsoft Entra-toepassing

optie 2: door de gebruiker toegewezen beheerde identiteit

De SQL-verbindingsreeks kopiëren

Ga in de Azure Portal naar uw Azure SQL Database en open Instellingen>verbindingsreeksen. Kopieer de ADO.NET verbindingsreeks. Vervang de tijdelijke aanduidingen voor your_database en your_password.

U stelt de verbindingsreeks in als een GitHub-geheim, AZURE_SQL_CONNECTION_STRING.

De GitHub-geheimen configureren

U moet de client-id van uw toepassing opgeven, directory-id (tenant)en abonnements-id aan de aanmeldingsactie. Deze waarden kunnen rechtstreeks in de werkstroom worden opgegeven of kunnen worden opgeslagen in GitHub-geheimen en waarnaar wordt verwezen in uw werkstroom. Het opslaan van de waarden als GitHub-geheimen is de veiligere optie.

  1. Ga in GitHubnaar uw opslagplaats.

  2. Selecteer Security > Secrets, en variabelen > Actions.

    schermopname van het toevoegen van een geheim

  3. Selecteer Nieuwe opslagplaatsgeheim.

    Notitie

    Als u de werkstroombeveiliging in openbare opslagplaatsen wilt verbeteren, gebruikt u omgevingsgeheimen in plaats van opslagplaatsgeheimen. Als voor de omgeving goedkeuring is vereist, heeft een taak geen toegang tot omgevingsgeheimen totdat een van de vereiste revisoren deze goedkeurt.

  4. Geheimen maken voor AZURE_CLIENT_ID, AZURE_TENANT_IDen AZURE_SUBSCRIPTION_ID. Kopieer deze waarden uit uw Microsoft Entra-toepassing of door de gebruiker toegewezen beheerde identiteit voor uw GitHub-geheimen:

    GitHub-geheim Microsoft Entra-toepassing of door de gebruiker toegewezen beheerde identiteit
    AZURE_CLIENT_ID Klant-ID
    AZURE_SUBSCRIPTION_ID Abonnements-id
    AZURE_TENANT_ID Directory-id (tenant)

    Notitie

    Om veiligheidsredenen raden we u aan GitHub Secrets te gebruiken in plaats van waarden rechtstreeks door te geven aan de werkstroom.

Het geheim van de SQL-verbindingsreeks toevoegen

  1. Ga in GitHubnaar uw opslagplaats.

  2. Ga naar Instellingen in het navigatiemenu.

  3. Selecteer Security > Secrets en variabelen > Actions.

  4. Selecteer Nieuwe opslagplaatsgeheim.

  5. Plak de SQL-verbindingsreeks. Geef het geheim de naam AZURE_SQL_CONNECTION_STRING.

  6. Selecteer Geheimetoevoegen.

Uw werkstroom toevoegen

  1. Ga naar Actions voor uw GitHub-opslagplaats.

  2. Selecteer Zelf uw werkstroom instellen.

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

    name: SQL for GitHub Actions
    
    on:
        push:
            branches: [ main ]
        pull_request:
            branches: [ main ]
    
  4. Wijzig de naam van uw werkstroom SQL for GitHub Actions en voeg de acties voor uitchecken en aanmelden toe. Met deze acties kunt u uw sitecode bekijken en verifiëren met Azure met behulp van het AZURE_CREDENTIALS GitHub-geheim dat u eerder hebt gemaakt.

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

  1. Gebruik de azure SQL Deploy-actie om verbinding te maken met uw SQL-exemplaar. U moet een dacpac-pakket (Database.dacpac) hebben op het hoofdniveau van uw opslagplaats. Gebruik het AZURE_SQL_CONNECTION_STRING GitHub-geheim dat u eerder hebt gemaakt.

    - uses: azure/sql-action@v2
      with:
        connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }}
        path: './Database.dacpac'
        action: 'Publish'
    
  2. 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 map .github/workflows van uw opslagplaats.

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

Uw implementatie controleren

  1. Ga naar Actions voor uw GitHub-opslagplaats.

  2. Open het eerste resultaat om gedetailleerde logboeken te bekijken van de uitvoering van uw werkstroom.

    Logboek van uitgevoerde GitHub-acties

Middelen opschonen

Wanneer uw Azure SQL-database en -opslagplaats niet meer nodig zijn, schoont u de resources op die u hebt geïmplementeerd door de resourcegroep en uw GitHub-opslagplaats te verwijderen.

Volgende stappen