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:
- Een Azure-account met een actief abonnement. Maak gratis een account.
- 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 om in uw database te importeren.
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
- Maak een Microsoft Entra-toepassing met een service-principal via Azure Portal, Azure CLIof Azure PowerShell-.
- Kopieer de waarden voor client-id, abonnements-iden directory-id (tenant) voor later gebruik in uw GitHub Actions-werkstroom.
- Wijs een juiste rol toe aan uw service-principal door Azure Portal, Azure CLIof Azure PowerShell-.
- Configureer een federatieve identiteitsreferentie in een Microsoft Entra-toepassing om tokens te vertrouwen die door GitHub Actions zijn uitgegeven aan uw GitHub-opslagplaats.
optie 2: door de gebruiker toegewezen beheerde identiteit
- een door de gebruiker toegewezen beheerde identiteit maken.
- Kopieer de waarden voor client-id, abonnements-iden directory-id (tenant) voor later gebruik in uw GitHub Actions-werkstroom.
- wijs een juiste rol toe aan uw door de gebruiker toegewezen beheerde identiteit.
- Configureer een federatieve identiteitsreferentie voor een door de gebruiker toegewezen beheerde identiteit om tokens te vertrouwen die door GitHub Actions zijn uitgegeven aan uw GitHub-opslagplaats.
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.
Ga in GitHubnaar uw opslagplaats.
Selecteer Security > Secrets, en variabelen > Actions.
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.
Geheimen maken voor
AZURE_CLIENT_ID
,AZURE_TENANT_ID
enAZURE_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
Ga in GitHubnaar uw opslagplaats.
Ga naar Instellingen in het navigatiemenu.
Selecteer Security > Secrets en variabelen > Actions.
Selecteer Nieuwe opslagplaatsgeheim.
Plak de SQL-verbindingsreeks. Geef het geheim de naam
AZURE_SQL_CONNECTION_STRING
.Selecteer Geheimetoevoegen.
Uw werkstroom toevoegen
Ga naar Actions voor uw GitHub-opslagplaats.
Selecteer Zelf uw werkstroom instellen.
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 ]
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@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
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 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 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
Ga naar Actions voor uw GitHub-opslagplaats.
Open het eerste resultaat om gedetailleerde logboeken te bekijken van de uitvoering van uw werkstroom.
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.