Delen via


Quickstart: GitHub Actions gebruiken om verbinding te maken met Azure Database for MySQL - Flexible Server

VAN TOEPASSING OP: Azure Database for MySQL - Enkele server Azure Database for MySQL - Flexibele server

Belangrijk

Azure Database for MySQL enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan een upgrade uit te voeren naar een flexibele Azure Database for MySQL-server. Zie Wat gebeurt er met Azure Database for MySQL Enkele server voor meer informatie over migreren naar Azure Database for MySQL Flexibele server ?

Ga aan de slag met GitHub Actions met behulp van een werkstroom om database-updates te implementeren op een flexibele Azure Database for MySQL-server.

Vereisten

U hebt het volgende nodig:

Overzicht van werkstroom bestand

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

Het bestand heeft twee secties:

Sectie Opdrachten
Verificatie 1. Implementatiereferenties genereren.
Implementatie 1. Implementeer de database.

Genereer implementatiereferenties

Maak een service-principal met de opdracht az ad sp create-for-rbac in de Azure CLI. Voer deze opdracht uit met Azure Cloud Shell in de Azure Portal of door de knop Uitproberen te selecteren.

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

De parameter --json-auth is beschikbaar in Azure CLI-versies >= 2.51.0. Versies vóór dit gebruik --sdk-auth met een afschaffingswaarschuwing.

Vervang in het bovenstaande voorbeeld de tijdelijke aanduidingen door uw abonnements-id, resourcegroepnaam en app-naam. De uitvoer is een JSON-object met de roltoewijzingsreferenties die toegang bieden tot uw App Service-app, vergelijkbaar met hieronder. Kopieer dit JSON-object voor later gebruik.

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

MySQL-verbindingsreeks kopiëren

Ga in Azure Portal naar uw flexibele azure Database for MySQL-serverexemplaren en open instellingenverbindingstekenreeksen>. Kopieer de verbindingsreeks voor ADO.NET. Vervang de plaatsaanduidingswaarden door your_database en your_password.

Belangrijk

  • Gebruik Uid=adminusername@servername voor azure Database for MySQL enkele server. Let op de @servername is vereist.
  • Gebruik voor Flexibele Azure Database for MySQL-server Uid=adminusername zonder de @servername.

U gebruikt de verbindingsreeks als een GitHub-geheim.

GitHub-geheimen configureren

  1. Ga in GitHub naar uw opslagplaats.

  2. Ga naar Instellingen in het navigatiemenu.

  3. Selecteer Acties voor beveiligingsgeheimen > en variabelen>.

    Schermopname van het toevoegen van een geheim

  4. Selecteer Nieuw opslagplaatsgeheim.

  5. Plak de volledige JSON-uitvoer van de Azure CLI-opdracht in het waardeveld van het geheim. Geef het geheim de naam AZURE_CREDENTIALS.

  6. Selecteer Geheim toevoegen.

Voeg uw werkstroom toe

  1. Ga naar Acties voor uw GitHub-opslagplaats.

  2. Selecteer Uw werkstroom zelf instellen.

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

    name: CI
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
  4. Wijzig de naam van uw werkstroom MySQL 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: 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@v1
                with:
                    creds: ${{ secrets.AZURE_CREDENTIALS }}
    
  5. Gebruik de Azure MySQL-implementatie-actie om verbinding te maken met uw MySQL-exemplaar. Vervang MYSQL_SERVER_NAME door de naam van uw server. U moet een MySQL-gegevensbestand met de naam data.sql hebben op het niveau van de hoofdmap van uw opslagplaats.

    - uses: azure/mysql@v1
      with:
        server-name: MYSQL_SERVER_NAME
        connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }}
        sql-file: './data.sql'
    
  6. 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 .github/workflows map van uw opslagplaats.

    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@v1
                with:
                  creds: ${{ secrets.AZURE_CREDENTIALS }}
    
              - 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
    

Beoordeel uw implementatie

  1. Ga naar Acties voor uw GitHub-opslagplaats.

  2. Open het eerste resultaat om gedetailleerde logboeken van de uitvoering van de werkstroom weer te geven.

    Logboek van De uitvoering van GitHub Actions.

Resources opschonen

Wanneer uw flexibele Azure Database for MySQL-serverdatabase en -opslagplaats niet meer nodig zijn, moet u de resources opschonen die u hebt geïmplementeerd door de resourcegroep en uw GitHub-opslagplaats te verwijderen.

Volgende stappen