Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:Azure SQL-Datenbank
Verwenden Sie als Einstieg in GitHub Actions einen Workflow zum Bereitstellen von Datenbankupdates für Azure SQL-Datenbank.
Voraussetzungen
Erforderlich:
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Ein GitHub-Repository mit einem DACPAC-Paket (
Database.dacpac). Wenn Sie kein GitHub-Konto besitzen, können Sie sich kostenlos registrieren. - Azure SQL-Datenbank. Schnellstart: Erstellen einer Azure SQL-Einzeldatenbank.
- Eine DACPAC-Datei , die in Ihre Datenbank importiert werden soll.
Übersicht über die Workflowdatei
Ein GitHub Actions-Workflow wird durch eine YAML-Datei (.yml) im Pfad /.github/workflows/ in Ihrem Repository definiert. Diese Datei enthält die Schritte und Parameter, aus denen der Workflow besteht.
Die Datei besteht aus zwei Abschnitten:
| `Section` | Aufgaben |
|---|---|
| Authentifizierung | 1. Generieren von Anmeldeinformationen für die Bereitstellung. |
| Bereitstellen | 2. Stellen Sie die Datenbank bereit. |
Generieren von Anmeldeinformationen für die Bereitstellung
Um die Aktion Azure-Anmeldung mit OIDC zu verwenden, müssen Sie Anmeldeinformationen für eine Verbundidentität in einer Microsoft Entra-Anwendung oder eine benutzerseitig zugewiesene verwaltete Identität konfigurieren.
Option 1: Microsoft Entra-Anwendung
- Erstellen Sie eine Microsoft Entra-Anwendung mit einem Dienstprinzipal im Azure-Portal, mit Azure CLI oder Azure PowerShell.
- Kopieren Sie die Werte für Client-ID, Abonnement-ID, und Verzeichnis-ID (Mandanten-ID), um sie später in Ihrem GitHub Actions-Workflow zu verwenden.
- Weisen Sie Ihrem Dienstprinzipal über das Azure-Portal, die Azure CLI oder Azure PowerShell eine geeignete Rolle zu.
- Konfigurieren Sie Verbundidentitäts-Anmeldeinformationen für eine Microsoft Entra-Anwendung, um Token zu vertrauen, die von GitHub Actions an Ihr GitHub-Repository ausgestellt wurden.
Option 2: Benutzerseitig zugewiesene verwaltete Identität
- Erstellen Sie eine benutzerseitig zugewiesene verwaltete Identität.
- Kopieren Sie die Werte für Client-ID, Abonnement-ID, und Verzeichnis-ID (Mandanten-ID), um sie später in Ihrem GitHub Actions-Workflow zu verwenden.
- Weisen Sie der benutzerseitig zugewiesenen verwalteten Identität eine geeignete Rolle zu.
- Konfigurieren Sie Verbundidentitäts-Anmeldeinformationen für eine benutzerseitig zugewiesene verwaltete Identität, um Token zu vertrauen, die von GitHub Actions an Ihr GitHub-Repository ausgegeben werden.
Kopieren der SQL-Verbindungszeichenfolge
Wechseln Sie im Azure-Portal zur Azure SQL-Datenbank, und öffnen Sie Einstellungen>Verbindungszeichenfolgen. Kopieren Sie die ADO.NET-Verbindungszeichenfolge. Ersetzen Sie die Platzhalterwerte für your_database und your_password.
Sie legen die Verbindungszeichenfolge als GitHub-Geheimnis fest, AZURE_SQL_CONNECTION_STRING.
Konfigurieren der GitHub-Geheimnisse
Sie müssen die Client-ID Ihrer Anwendung, die Verzeichnis-ID (Mandanten-ID) und die Abonnement-ID für die Anmeldeaktion bereitstellen. Diese Werte können entweder direkt im Workflow bereitgestellt werden oder in GitHub-Geheimnissen gespeichert und darauf in Ihrem Workflow verwiesen werden. Das Speichern der Werte als GitHub-Geheimnisse ist die sicherere Option.
Wechseln Sie in GitHub zu Ihrem Repository.
Wählen Sie Security > Secrets and variables > Actions (Sicherheit > Geheimnisse und Variablen > Aktionen) aus.
Wählen Sie New repository secret (Neues Repositorygeheimnis) aus.
Hinweis
Um die Sicherheit von Workflows in öffentlichen Repositorys zu verbessern, verwenden Sie Umgebungsgeheimnisse anstelle von geheimen Repositorygeheimnissen. Wenn für die Umgebung eine Genehmigung erforderlich ist, kann ein Auftrag erst dann auf Umgebungsgeheimnisse zugreifen, wenn einer der erforderlichen Reviewer den Auftrag genehmigt hat.
Erstellen Sie Geheimnisse für
AZURE_CLIENT_ID,AZURE_TENANT_IDundAZURE_SUBSCRIPTION_ID. Kopieren Sie diese Werte aus Ihrer Microsoft Entra-Anwendung oder benutzerseitig zugewiesenen verwalteten Identität für Ihre GitHub-Geheimnisse:GitHub-Geheimnis Microsoft Entra-Anwendung oder benutzerseitig zugewiesene verwaltete Identität AZURE_CLIENT_ID Kunden-ID AZURE_SUBSCRIPTION_ID Abonnement-ID AZURE_TENANT_ID Verzeichnis-ID (Mandant) Hinweis
Aus Sicherheitsgründen empfehlen wir die Verwendung von GitHub-Geheimnissen, anstatt Werte direkt an den Workflow zu übergeben.
Hinzufügen der geheimen SQL-Verbindungszeichenfolge
Wechseln Sie in GitHub zu Ihrem Repository.
Gehen Sie im Navigationsmenü auf Einstellungen.
Wählen Sie Security > Secrets and variables > Actions (Sicherheit > Geheimnisse und Variablen > Aktionen) aus.
Wählen Sie New repository secret (Neues Repositorygeheimnis) aus.
Fügen Sie Ihre SQL-Verbindungszeichenfolge ein. Geben Sie dem Geheimnis den Namen
AZURE_SQL_CONNECTION_STRING.Klicken Sie auf Add secret (Geheimnis hinzufügen).
Hinzufügen des Workflows
Navigieren Sie für Ihr GitHub-Repository zu Actions (Aktionen).
Wählen Sie Set up your workflow yourself (Workflow selbst einrichten) aus.
Löschen Sie alles nach dem Abschnitt
on:Ihrer Workflowdatei. Ihr verbleibender Workflow kann z. B. wie folgt aussehen.name: SQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ]Benennen Sie den Workflow in
SQL for GitHub Actionsum, und fügen Sie die Aktionen zum Auschecken und Anmelden hinzu. Diese Aktionen checken Ihren Websitecode aus und authentifizieren mit Azure mithilfe des zuvor von Ihnen erstellten GitHub-GeheimnissesAZURE_CREDENTIALS.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 }}
Verwenden Sie die Aktion für die Azure SQL-Bereitstellung, um eine Verbindung mit Ihrer SQL-Instanz herzustellen. Sie sollten über ein DACPAC-Paket (
Database.dacpac) auf der Stammebene Ihres Repositorys verfügen. Verwenden Sie denAZURE_SQL_CONNECTION_STRINGzuvor erstellten GitHub-Geheimschlüssel.- uses: azure/sql-action@v2.3 with: connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }} path: './Database.dacpac' action: 'publish'Vervollständigen Sie Ihren Workflow, indem Sie eine Aktion zum Abmelden von Azure hinzufügen. Hier sehen Sie den vollständigen Workflow. Die Datei erscheint im Ordner
.github/workflowsIhres Repositorys.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 }} - uses: azure/sql-action@v2.3 with: connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }} path: './Database.dacpac' action: 'publish' # Azure logout - name: logout run: | az logout
Überprüfen der Bereitstellung
Navigieren Sie für Ihr GitHub-Repository zu Actions (Aktionen).
Öffnen Sie das erste Ergebnis, um ausführliche Protokolle zur Ausführung des Workflows anzuzeigen.
Bereinigen von Ressourcen
Wenn Ihre Azure SQL-Datenbank und das Repository nicht mehr benötigt werden, bereinigen Sie die bereitgestellten Ressourcen, indem Sie die Ressourcengruppe und Ihr GitHub-Repository löschen.