Azure Pipelines voor Azure Database for MySQL - Flexibele server
U kunt uw database-updates automatisch implementeren in Azure Database for MySQL Flexible Server na elke geslaagde build met Azure Pipelines. U kunt de Azure CLI-taak gebruiken om de database bij te werken met een SQL-bestand of een inline SQL-script voor de database. Deze taak kan worden uitgevoerd op platformoverschrijdende agents die worden uitgevoerd op Linux-, macOS- of Windows-besturingssystemen.
Vereisten
Een Azure-account. Als u geen account hebt, kunt u een gratis proefversie krijgen.
Azure Resource Manager-serviceverbinding met uw Azure-account
Door Microsoft gehoste agents hebben Azure CLI vooraf geïnstalleerd. Als u echter privéagents gebruikt, installeert u Azure CLI op de computers waarop de build- en releaseagent wordt uitgevoerd. Als een agent al wordt uitgevoerd op de computer waarop de Azure CLI is geïnstalleerd, start u de agent opnieuw om ervoor te zorgen dat alle relevante fasevariabelen worden bijgewerkt.
In deze snelstartgids worden de resources die in een van deze handleidingen zijn gemaakt, als uitgangspunt gebruikt:
- Maak een Azure Database for MySQL Flexible Server-exemplaar met behulp van de quickstart: Een exemplaar van Azure Database for MySQL maken met Azure Portal of Quickstart: Een exemplaar van Azure Database for MySQL - Flexible Server maken met behulp van de Azure CLI.
SQL-bestand gebruiken
In het volgende voorbeeld ziet u hoe u databaseargumenten doorgeeft en een opdracht uitvoert execute
- 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
Inline SQL-script gebruiken
In het volgende voorbeeld ziet u hoe u een inline SQL-script uitvoert met behulp van execute
de opdracht.
- 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;"
Taakinvoer
U ziet de volledige lijst met alle taakinvoer bij het gebruik van Azure CLI-taken met Azure Pipelines.
Parameter | Description |
---|---|
azureSubscription | (Vereist) Geef het Azure Resource Manager-abonnement op voor de implementatie. Deze parameter wordt alleen weergegeven wanneer de geselecteerde taakversie 0.* is, omdat Azure CLI-taak v1.0 alleen Azure Resource Manager-abonnementen ondersteunt. |
scriptType | (Vereist) Geef het type script op. Ondersteunde scripts zijn PowerShell, PowerShell Core, Bat, Shell en script. Wanneer u een Linux-agent uitvoert, selecteert u een van de volgende opties: bash of pscore . Wanneer u een Windows-agent uitvoert, selecteert u een van de volgende opties: batch enps pscore . |
scriptLocation | (Vereist) Geef het pad naar het script op, bijvoorbeeld een echt bestandspad of gebruik Inline script bij het opgeven van de scripts inline. De standaardwaarde is scriptPath . |
scriptPath | (Vereist) Volledig gekwalificeerd pad van het script (.ps1 of .bat of .cmd bij het gebruik van een Windows-agent anders .ps1 of .sh bij het gebruik van linux-agent) of een pad ten opzichte van de standaardwerkmap. |
inlineScript | (Vereist) U kunt uw scripts hier inline schrijven. Wanneer u een Windows-agent gebruikt, gebruikt u PowerShell of PowerShell Core of batchscripting, terwijl u PowerShell Core- of shellscripts gebruikt bij het gebruik van agents op basis van Linux. Gebruik voor batchbestanden het voorvoegsel 'aanroepen' vóór elke Azure-opdracht. U kunt ook vooraf gedefinieerde en aangepaste variabelen aan dit script doorgeven met behulp van argumenten. Voorbeeld voor PowerShell/PowerShellCore/shell: az --version az account show Voorbeeld voor batch: call az --version call az account show . |
Argumenten | (Optioneel) Geef alle argumenten op die aan het script zijn doorgegeven. Voor voorbeelden -SERVERNAME mydemoserver . |
powerShellErrorActionPreference | (Optioneel) Hiermee wordt de regel $ErrorActionPreference = 'VALUE' boven aan uw PowerShell/PowerShell Core-script voorafgegaan. De standaardwaarde is gestopt. Ondersteunde waarden zijn stoppen, doorgaan en stilContinue. |
addSpnToEnvironment | (Optioneel) Hiermee voegt u de service-principal-id en sleutel toe van het Azure-eindpunt dat u hebt gekozen voor de uitvoeringsomgeving van het script. U kunt deze variabelen gebruiken: $env:servicePrincipalId, $env:servicePrincipalKey en $env:tenantId in uw script. Dit wordt alleen uitgevoerd wanneer het Azure-eindpunt een verificatieschema voor service-principals heeft. De standaardwaarde is false. |
useGlobalConfig | (Optioneel) Als dit onwaar is, gebruikt deze taak een eigen afzonderlijke Azure CLI-configuratiemapvoor De Azure CLI-configuratiemap. Dit kan worden gebruikt om Azure CLI-taken parallel uit te voeren" Standaardwaarde: onwaar |
workingDirectory | (Optioneel) Huidige werkmap waarin het script wordt uitgevoerd. Leeg is de hoofdmap van de opslagplaats (build) of artefacten (release), namelijk $(System.DefaultWorkingDirectory). |
failOnStandardError | (Optioneel) Als dit waar is, mislukt deze taak wanneer er fouten naar de StandardError-stroom worden geschreven. Schakel het selectievakje uit om standaardfouten te negeren en afhankelijk te zijn van afsluitcodes om de status te bepalen. De standaardwaarde is false. |
powerShellIgnoreLASTEXITCODE | (Optioneel) Als dit onwaar is, wordt de regel if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } toegevoegd aan het einde van het script. Hierdoor wordt de laatste afsluitcode van een externe opdracht doorgegeven als afsluitcode van PowerShell. Anders wordt de regel niet toegevoegd aan het einde van het script. De standaardwaarde is false. |
Als u problemen ondervindt met CLI-taken, raadpleegt u hoe u problemen met build en release kunt oplossen. |