GitHub Actions gebruiken om verbinding te maken met Azure SQL Database
Aan de slag met GitHub Actions met behulp van een werkstroom voor het implementeren van database-updates voor Azure SQL Database.
Vereisten
U hebt het volgende nodig:
- Een Azure-account met een actief abonnement. Gratis een account maken
- Een GitHub-opslagplaats met een dacpac-pakket (
Database.dacpac
). Als u geen GitHub-account hebt, kunt u zich gratis registreren. - Een Azure SQL Database. Quickstart: Een individuele Azure SQL Database-database maken.
- Een DACPAC-bestand dat u in uw database wilt importeren.
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.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>",
(...)
}
SQL-verbindingsreeks kopiëren
Ga in het Azure Portal naar uw Azure SQL Database en open Instellingen>Verbindingsreeksen. Kopieer de verbindingsreeks voor ADO.NET. Vervang de plaatsaanduidingswaarden door your_database
en your_password
. De verbindingsreeks ziet er ongeveer als volgt uit.
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;
U stelt de verbindingsreeks in als een GitHub-geheim. AZURE_SQL_CONNECTION_STRING
De GitHub-geheimen configureren
Ga in GitHub naar uw opslagplaats.
Ga naar Instellingen in het navigatiemenu.
Selecteer Acties voor beveiligingsgeheimen > en variabelen>.
Selecteer Nieuw opslagplaatsgeheim.
Plak de volledige JSON-uitvoer van de Azure CLI-opdracht in het waardeveld van het geheim. Geef het geheim de naam
AZURE_CREDENTIALS
.Selecteer Geheim toevoegen.
Het SQL-verbindingsreeks-geheim toevoegen
Ga in GitHub naar uw opslagplaats.
Ga naar Instellingen in het navigatiemenu.
Selecteer Acties voor beveiligingsgeheimen > en variabelen>.
Selecteer Nieuw opslagplaatsgeheim.
Plak uw SQL-verbindingsreeks. Geef het geheim de naam
AZURE_SQL_CONNECTION_STRING
.Selecteer Geheim toevoegen.
Voeg uw werkstroom toe
Ga naar Acties voor uw GitHub-opslagplaats.
Selecteer Uw werkstroom zelf instellen.
Verwijder alles na de sectie
on:
van uw werkstroombestand. Uw resterende werkstroom kan er bijvoorbeeld als volgt uitzien.name: SQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ]
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 hetAZURE_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@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }}
Gebruik de Azure SQL-implementatie-actie om verbinding te maken met uw SQL-exemplaar. U moet een dacpac-pakket (
Database.dacpac
) hebben op het niveau van de hoofdmap van uw opslagplaats. Gebruik hetAZURE_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'
Voltooi uw werkstroom door een actie toe te voegen aan de afmelding van Azure. Dit is de voltooide werkstroom. Het bestand wordt weergegeven in de
.github/workflows
map 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@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
Beoordeel uw implementatie
Ga naar Acties voor uw GitHub-opslagplaats.
Open het eerste resultaat om gedetailleerde logboeken van de uitvoering van de werkstroom weer te geven.
Resources opschonen
Wanneer uw Azure SQL-database en -opslagplaats niet meer nodig zijn, moet u de resources opschonen die u hebt geïmplementeerd door de resourcegroep en de GitHub-opslagplaats te verwijderen.