Opret og udrul databaseprojekter i GitHub Actions og Azure DevOps

Fuldført

Da databaser er integrerede komponenter i større løsninger, skal udviklere finde effektive måder at administrere databaseudvikling på samme måde, som de håndterer applikationskode. Denne opgave er særligt udfordrende, fordi databaseudvikling er tæt sammenflettet med de data, der er gemt i databasen, hvilket tilføjer lag af kompleksitet.

Heldigvis tilbyder værktøjer som GitHub Actions og Azure DevOps Services robuste løsninger til håndtering af disse kompleksiteter. Begge platforme understøtter DACPAC-implementering, hvilket forenkler processen med at implementere databaseændringer ved at pakke dem ind i en DAC-pakke (Application Component) på dataniveau . Denne tilgang sikrer ikke kun konsistens og pålidelighed i databaseudrulninger, men integreres også problemfrit med CI/CD-pipelines (Continuous Integration and Continuous Deployment), hvilket gør det nemmere for udviklere at vedligeholde og opdatere databaser sammen med deres applikationskode.

Eksemplerne i denne enhed forudsætter, at du allerede har:

Brug GitHub Actions til at oprette forbindelse til Azure SQL Database

Du kan bruge GitHub Actions til at oprette forbindelse til din Azure SQL Database og publicere SQL-projekter ved hjælp af DACPAC-filer.

Brug af GitHub-handlinger til at oprette forbindelse til Azure SQL Database har tre hovedtrin.

  1. Klon GitHub-lageret i Visual Studio Code.
  2. Opret et databaseprojekt i Visual Studio Code.
  3. Konfigurer kontinuerlig integration (CI) med GitHub Actions.

Klon GitHub-lageret

Du kan klone det GitHub-lager, du har oprettet, ved at følge disse trin.

  1. I Visual Studio Code skal du vælge Vis>kommandopalet.
  2. Skriv Git: Klon på kommandopaletten, og vælg den derefter.
  3. Indtast URL-adressen til dit lager, og vælg Klon.
  4. Vælg eller opret en mappe til at gemme dine lagerfiler.

Opret et databaseprojekt i Visual Studio Code

I Visual Studio Code skal du konfigurere et nyt databaseprojekt og gemme projektet i den samme mappe, hvor du klonede GitHub-lageret.

For mere information om oprettelse af et databaseprojekt i Visual Studio Code, se SQL Server Development with Visual Studio Code.

Når du har oprettet dit databaseprojekt, skal du tilføje kode for at ændre din Azure SQL Database. Derefter skal du bekræfte dem tilbage til dit GitHub-lager for at sikre, at de spores og integreres i dit versionskontrolsystem.

Konfigurer løbende integration med GitHub Actions

Hvis du vil konfigurere CI (Continuous Integration) med GitHub Actions, skal du oprette en fil i stien .yml/.github/workflows/ i dit lager. Filen .yml har to sektioner.

  1. Konfigurer godkendelse
  2. Opret en GitHub-arbejdsproces

Konfigurer godkendelse konfigurerer GitHub-hemmeligheder, og det andet afsnit opretter en GitHub Actions-arbejdsproces.

Godkendelse

Først skal du oprette en tjenesteprincipal med kommandoen az ad sp create-for-rbac i Azure CLI. Brug Azure Cloud Shell på Azure Portal til at køre følgende Azure CLI-kode. Erstat pladsholderne med dit abonnements-id, ressourcegruppenavn og appnavn.

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

Outputtet er et JSON-objekt med legitimationsoplysningerne for rolletildelingen. Gem filen, som den gemmes som en GitHub-hemmelighed.

For det andet skal du oprette SQL-forbindelsesstrengen. Du kan kopiere dette fra Azure Portal. Åbn Indstillinger>Forbindelsesstrenge fra din Azure SQL Database.

Skærmbillede, der viser forbindelsesindstillingerne for Azure SQL Database.

Kopiér den ADO.NET forbindelsesstreng, og erstat derefter pladsholderværdierne for din database og din adgangskode. Forbindelsesstrengen ser sådan ud:

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;

Denne forbindelsesstreng gemmes også som en GitHub-hemmelighed.

I dit GitHub-lager tilføjer du hemmeligheder i Indstillinger>Sikkerhed ->Hemmeligheder og variabler>Handlinger. Opret nye hemmeligheder, der er navngivet AZURE_CREDENTIALS for at gemme JSON-teksten og AZURE_SQL_CONNECTION_STRING gemme forbindelsesstrengen.

Du er nu klar til at oprette din arbejdsgang.

Notat

I et produktionsmiljø kan du overveje at bruge administrerede identiteter til din GitHub-handling for at få adgang til databasen i stedet for SQL-godkendelse. Du kan finde flere oplysninger under Administrerede identiteter i Microsoft Entra til Azure SQL.

Opret en GitHub-arbejdsproces

I dit GitHub-lager skal du vælge Handlinger og selv konfigurere en arbejdsproces. Der åbnes en tom main.yml fil.

Du kan nu bygge din YAML-fil. Du kan finde en detaljeret syntaks og retningslinjer i arbejdsprocessen for GitHub-handlinger. Tagget name: angiver f.eks. navnet på arbejdsprocessen, mens værdien on bestemmer de hændelser, der udløser arbejdsprocessen til at køre.

Tips

Hurtig start til GitHub-handlinger får dig i gang med yderligere funktioner i GitHub-handlinger.

Udrulning af Azure SQL Database med Azure DevOps Services

Du kan også udrulle opdateringer til en Azure SQL Database ved hjælp af Azure DevOps Services. For at komme i gang skal du bruge en Azure DevOps Services-konto, et versionskontrolsystem (f.eks. Azure Repos eller GitHub) og Visual Studio Code med SQL Database-udvidelsen installeret.

Azure DevOps Services omfatter Azure Pipelines, som automatisk bygger, tester og udruller kode. Ved hjælp af Azure Pipelines kan du understøtte løbende integration og løbende udrulning (CI/CD) af Azure SQL Database-ændringer i dit projekt. Denne integration sikrer, at dine databaseændringer anvendes konsekvent og pålideligt.

Azure Pipelines er problemfrit integreret med forskellige versionskontrolsystemer, herunder GitHub og Azure Repos. Azure Pipelines giver dig mulighed for at køre SQL-scripts som en del af en pipeline ved hjælp af Azure PowerShell-scripts til at oprette og fjerne firewallregler i Azure, hvilket sikrer sikker og effektiv databaseadministration.

Du kan finde flere oplysninger om udrulningsmuligheder for Azure SQL Database under Udrulning af Azure SQL-database i dokumentationen til Azure DevOps Services.