Bygg og distribuer databaseprosjekter i GitHub Actions og Azure DevOps
Siden databaser er integrerte komponenter i større løsninger, må utviklere finne effektive måter å administrere databaseutvikling på samme måte som de håndterer applikasjonskode. Denne oppgaven er spesielt utfordrende fordi databaseutvikling er tett sammenvevd med dataene som er lagret i databasen, og legger til lag med kompleksitet.
Heldigvis tilbyr verktøy som GitHub Actions og Azure DevOps Services robuste løsninger for å håndtere disse kompleksitetene. Begge plattformene støtter DACPAC-distribusjon, noe som forenkler prosessen med å distribuere databaseendringer ved å pakke dem inn i en DAC-pakke (Application Component) på datanivå . Denne tilnærmingen sikrer ikke bare konsistens og pålitelighet i databasedistribusjoner, men integreres også sømløst med datasamlebånd for kontinuerlig integrasjon og kontinuerlig distribusjon (CI/CD), noe som gjør det enklere for utviklere å vedlikeholde og oppdatere databaser sammen med programkoden.
Eksemplene i denne enheten forutsetter at du allerede har:
- Et Azure-abonnement med tillatelser til å opprette og administrere ressurser.
- Visual Studio Code installert med følgende utvidelser:
- En GitHub-konto med et privat GitHub-repositorium opprettet som eier.
- En Azure SQL Database konfigurert med Tillat tilgang til Azure-tjenester aktivert. Hurtiginnføring: Opprett en enkelt Azure SQL Database-database.
Bruk GitHub Actions til å koble til Azure SQL Database
Du kan bruke GitHub Actions til å koble til Azure SQL Database og publisere SQL-prosjekter ved hjelp av DACPAC-filer.
Bruk av GitHub-handlinger for å koble til Azure SQL Database har tre hovedtrinn.
- Klon GitHub-repositoriet i Visual Studio Code.
- Opprett et databaseprosjekt i Visual Studio Code.
- Konfigurer kontinuerlig integrasjon (CI) med GitHub Actions.
Klone GitHub-repositoriet
Du kan klone GitHub-repositoriet du opprettet, ved å følge disse trinnene.
- I Visual Studio Code velger du Vis>kommandopalett.
- Skriv inn Git: Klon i kommandopaletten, og velg den deretter.
- Skriv inn URL-en til depotet ditt, og velg Klon.
- Velg eller opprett en mappe for å lagre repositoriumfilene dine.
Opprette et databaseprosjekt i Visual Studio Code
I Visual Studio Code konfigurerer du et nytt databaseprosjekt og lagrer prosjektet i samme mappe der du klonet GitHub-repositoriet.
For mer informasjon om å opprette et databaseprosjekt i Visual Studio Code, se SQL Server Development with Visual Studio Code.
Når du har opprettet databaseprosjektet, legger du til kode for å endre Azure SQL Database. Deretter sender du dem tilbake til GitHub-repositoriet for å sikre at de spores og integreres i versjonskontrollsystemet.
Konfigurere kontinuerlig integrasjon med GitHub Actions
Hvis du vil konfigurere kontinuerlige integrasjoner (CI) med GitHub Actions, oppretter du en fil i banen i repositoriet .yml/.github/workflows/ . Filen .yml har to seksjoner.
- Konfigurer godkjenning
- Opprette en GitHub-arbeidsflyt
Konfigurer godkjenning konfigurerer GitHub-hemmeligheter, og den andre delen oppretter en GitHub Actions-arbeidsflyt.
Autentisering
Først må du opprette en tjenestekontohaver med kommandoen az ad sp create-for-rbac i Azure CLI. Bruk Azure Cloud Shell i Azure-portalen til å kjøre følgende Azure CLI-kode. Erstatt plassholderne med abonnements-ID-en, ressursgruppenavnet og appnavnet.
az ad sp create-for-rbac --name "myML" --role contributor --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> --json-auth
Utdataene er et JSON-objekt med legitimasjonen for rolletilordningen. Lagre filen slik den lagres som en GitHub-hemmelighet.
For det andre, lag SQL-tilkoblingsstrengen. Du kan kopiere dette fra Azure-portalen. Fra Azure SQL Database åpner du Innstillinger>Tilkoblingsstrenger.
Kopier den ADO.NET tilkoblingsstrengen, og erstatt deretter plassholderverdiene for your-database og your-password. Tilkoblingsstrengen ser omtrent slik ut:
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 tilkoblingsstrengen lagres også som en GitHub-hemmelighet.
I GitHub-repositoriet legger du til hemmeligheter i Innstillinger>Sikkerhet ->Hemmeligheter og variabler>Handlinger. Opprett nye hemmeligheter med navn AZURE_CREDENTIALS for å lagre JSON-teksten og AZURE_SQL_CONNECTION_STRING lagre tilkoblingsstrengen.
Du er nå klar til å opprette arbeidsflyten din.
Merk deg
I et produksjonsmiljø bør du vurdere å bruke forvaltede identiteter for GitHub-handlingen for å få tilgang til databasen i stedet for SQL-godkjenning. Hvis du vil ha mer informasjon, kan du se Administrerte identiteter i Microsoft Entra for Azure SQL.
Opprette en GitHub-arbeidsflyt
I GitHub-repositoriet velger du Handlinger og Konfigurer en arbeidsflyt selv. En tom main.yml fil åpnes.
Du kan nå bygge YAML-filen din. Hvis du vil ha detaljert syntaks og retningslinjer, kan du se Arbeidsflyt for GitHub Actions. Name : -taggen angir for eksempel navnet på arbeidsflyten, mens on-verdien bestemmer hendelsene som utløser arbeidsflyten til å kjøre.
Tips
Hurtiginnføringen for GitHub-handlinger får deg i gang med tilleggsfunksjoner i GitHub-handlinger.
Azure SQL Database-distribusjon med Azure DevOps Services
Du kan også distribuere oppdateringer til en Azure SQL Database ved hjelp av Azure DevOps Services. For å komme i gang trenger du en Azure DevOps Services-konto, et versjonskontrollsystem (for eksempel Azure Repos eller GitHub) og Visual Studio Code med SQL Database-utvidelsen installert.
Azure DevOps Services inkluderer Azure Pipelines, som automatisk bygger, tester og distribuerer kode. Ved å bruke Azure Pipelines kan du støtte kontinuerlig integrasjon og kontinuerlig distribusjon (CI/CD) av Azure SQL Database-endringer i prosjektet ditt. Denne integrasjonen sikrer at databaseendringene dine brukes konsekvent og pålitelig.
Azure Pipelines er sømløst integrert med ulike versjonskontrollsystemer, inkludert GitHub og Azure Repos. Azure Pipelines lar deg kjøre SQL-skript som en del av et datasamlebånd, ved å bruke Azure PowerShell-skript til å opprette og fjerne brannmurregler i Azure, noe som sikrer sikker og effektiv databaseadministrasjon.
Hvis du vil ha mer informasjon om distribusjonsalternativer for Azure SQL Database, kan du se Azure SQL-databasedistribusjon i dokumentasjonen for Azure DevOps Services.