Azure Pipelines für Azure Database for MySQL – Flexibler Server
Sie können Ihre Datenbankupdates nach jedem erfolgreichen Build mit Azure Pipelines automatisch in Azure Database for MySQL Flexible Server bereitstellen. Mithilfe einer Azure CLI-Aufgabe können Sie die Datenbank entweder mit einer SQL-Datei oder einem Inline-SQL-Skript für die Datenbank aktualisieren. Diese Aufgabe kann auf plattformübergreifenden Agents unter den Betriebssystemen Linux, macOS oder Windows ausgeführt werden.
Voraussetzungen
Ein Azure-Konto. Falls Sie noch kein Konto haben, können Sie eine kostenlose Testversion verwenden.
Eine Azure Resource Manager-Dienstverbindung zu Ihrem Azure-Konto
Bei von Microsoft gehosteten Agents ist Azure CLI vorinstalliert. Wenn Sie aber private Agents verwenden, installieren Sie Azure CLI auf dem/den Computer(n), auf dem/denen der Build- und Release-Agent ausgeführt wird. Wenn ein Agent bereits auf dem Computer ausgeführt wird, auf dem die Azure CLI installiert ist, starten Sie den Agent neu, um sicherzustellen, dass alle relevanten Phasenvariablen aktualisiert werden.
In diesem Schnellstart werden die Ressourcen, die in den folgenden Anleitungen erstellt wurden, als Startpunkt verwendet:
- Erstellen Sie eine Instanz von Azure Database for MySQL – Flexibler Server mithilfe der Anleitungen unter Schnellstart: Erstellen einer Instanz von Azure Database for MySQL mithilfe des Azure-Portals oder Schnellstart: Erstellen einer Instanz von Azure Database for MySQL – Flexibler Server mithilfe der Azure CLI.
Verwenden einer SQL-Datei
Im folgenden Beispiel wird gezeigt, wie Datenbankargumente übergeben und der Befehl execute
ausgeführt wird.
- task: AzureCLI@2
displayName: Azure CLI
inputs:
azureSubscription: <Name of the Azure Resource Manager service connection>
scriptLocation: inlineScript
arguments:
-SERVERNAME mydemoserver `
-DBNAME pollsdb `
-DBUSER pollsdbuser`
-DBPASSWORD pollsdbpassword
inlineScript: |
az login --allow-no-subscription
az mysql flexible-server execute --name $(SERVERNAME) \
--admin-user $(DBUSER) --admin-password '$(DBPASSWORD)' \
--database-name $(DBNAME) \
--file-path /code/sql/db-schema-update.sql
Verwenden eines Inline-SQL-Skripts
Im folgenden Beispiel wird gezeigt, wie ein Inline-SQL-Skript mit dem Befehl execute
ausgeführt wird.
- task: AzureCLI@2
displayName: Azure CLI
inputs:
azureSubscription: <Name of the Azure Resource Manager service connection>
scriptLocation: inlineScript
arguments:
-SERVERNAME mydemoserver `
-DBNAME pollsdb `
-DBUSER pollsdbuser`
-DBPASSWORD pollsdbpassword
-INLINESCRIPT
inlineScript: |
az login --allow-no-subscription
az mysql flexible-server execute --name $(SERVERNAME) \
--admin-user $(DBUSER) --admin-password '$(DBPASSWORD)' \
--database-name $(DBNAME) \
--query-text "UPDATE items SET items.retail = items.retail * 0.9 WHERE items.id =100;"
Aufgabeneingaben
Sie können die vollständige Liste aller Aufgabeneingaben anzeigen, wenn Sie die Azure CLI-Aufgabe bei Azure Pipelines verwenden.
Parameter | BESCHREIBUNG |
---|---|
azureSubscription | (Erforderlich) Geben Sie das Azure Resource Manager-Abonnement für die Bereitstellung an. Dieser Parameter wird nur angezeigt, wenn die ausgewählte Aufgabenversion „0.*“ ist, weil die Azure CLI-Aufgabe v1.0 nur Azure Resource Manager-Abonnements unterstützt. |
scriptType | (Erforderlich) Geben Sie den Typ des Skripts an. Unterstützte Skripts sind PowerShell, PowerShell Core, Bat, Shell und Skript. Wenn Sie einen Linux-Agent ausführen, wählen Sie eine der folgenden Optionen aus: bash oder pscore . Wenn Sie einen Windows-Agent ausführen, wählen Sie eine der folgenden Optionen aus: batch , ps oder pscore . |
scriptLocation | (Erforderlich) Geben Sie den Pfad zum Skript an, z. B. den tatsächlichen Dateipfad, oder verwenden Sie Inline script , wenn Sie die Skripts inline bereitstellen. Der Standardwert ist scriptPath . |
scriptPath | (Erforderlich) Vollqualifizierter Pfad des Skripts („.ps1“, „.bat“ oder „.cmd“ bei Verwendung eines Windows-basierten Agents, oder aber .ps1 oder .sh bei Verwendung eines Linux-basierten Agents) oder ein Pfad relativ zum Standardarbeitsverzeichnis. |
inlineScript | (Erforderlich) Sie können Ihre Skripts hier inline schreiben. Wenn Sie einen Windows-Agent verwenden, verwenden Sie PowerShell oder PowerShell Core oder aber Batchskripts, während Sie bei Verwendung von Linux-basierten Agents PowerShell Core oder Shell-Skripts verwenden müssen. Verwenden Sie bei Batchdateien vor jedem Azure-Befehl das Präfix „call“. Sie können auch vordefinierte und benutzerdefinierte Variablen mithilfe von Argumenten an dieses Skript übergeben. Beispiel für „PowerShell/PowerShellCore/shell“: az --version az account show Beispiel für „Batch“: call az --version call az account show . |
Argumente | (Optional) Geben Sie alle Argumente an, die an das Skript übergeben werden. Beispiele: -SERVERNAME mydemoserver . |
powerShellErrorActionPreference | (Optional) Stellt dem Anfang Ihres PowerShell-/PowerShell Core-Skripts die Zeile $ErrorActionPreference = 'VALUE' voran. Der Standardwert ist „stop“. Unterstützte Werte sind „stop“, „continue“ und „silentlyContinue“. |
addSpnToEnvironment | (Optional) Fügt der Ausführungsumgebung des Skripts die Dienstprinzipal-ID und den Schlüssel des von Ihnen ausgewählten Azure-Endpunkts hinzu. Sie können in Ihrem Skript diese Variablen verwenden: „$env:servicePrincipalId“, „$env:servicePrincipalKey2“ und „$env:tenantId“. Dies wird nur berücksichtigt, wenn es beim Azure-Endpunkt ein Dienstprinzipal-Authentifizierungsschema gibt. Der Standardwert ist „FALSE“. |
useGlobalConfig | (Optional) Wenn der Wert „FALSE“ ist, verwendet diese Aufgabe ein eigenes separates Azure CLI-Konfigurationsverzeichnis. Es kann zur Ausführung von Azure CLI-Aufgaben in parallelen Releases verwendet werden. Standardwert: False |
workingDirectory | (Optional) Aktuelles Arbeitsverzeichnis, in dem das Skript ausgeführt wird. „Leer“ ist der Stamm des Repositorys (Build) oder der Artefakte (Release), bei dem es sich um „$(System.DefaultWorkingDirectory)“ handelt. |
failOnStandardError | (Optional) Wenn der Wert „true“ ist, schlägt diese Aufgabe fehl, wenn Fehler in den „StandardError“-Stream geschrieben werden. Deaktivieren Sie das Kontrollkästchen, damit Standardfehler ignoriert werden, und verwenden Sie Exitcodes, um den Status zu bestimmen. Der Standardwert ist „FALSE“. |
powerShellIgnoreLASTEXITCODE | (Optional) Wenn der Wert „FALSE“ ist, wird die Zeile if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } am Ende Ihres Skripts angefügt. Dadurch wird der letzte Exitcode aus einem externen Befehl als Exitcode von PowerShell weitergegeben. Andernfalls wird die Zeile am Ende Ihres Skripts nicht angefügt. Der Standardwert ist „FALSE“. |
Wenn Probleme bei der CLI-Aufgabe auftreten, lesen Sie Problembehandlung bei Build und Release. |