Flexibilní server Azure Pipelines pro Azure Database for MySQL

PLATÍ PRO: Flexibilní server Azure Database for MySQL

Aktualizace databáze můžete automaticky nasadit na flexibilní server Azure Database for MySQL po každém úspěšném sestavení pomocí Azure Pipelines. Úlohu Azure CLI můžete použít k aktualizaci databáze pomocí souboru SQL nebo vloženého skriptu SQL pro databázi. Tuto úlohu lze spustit na agentech pro různé platformy běžících v operačních systémech Linux, macOS nebo Windows.

Požadavky

  • Účet Azure. Pokud ho nemáte, můžete získat bezplatnou zkušební verzi.

  • Připojení služby Azure Resource Manager k vašemu účtu Azure

  • Agenti hostovaní Microsoftem mají předinstalované Azure CLI. Pokud ale používáte privátní agenty, nainstalujte Azure CLI na počítače, na kterých běží agent sestavení a verze. Pokud už agent běží na počítači, na kterém je nainstalované Rozhraní příkazového řádku Azure, restartujte agenta, aby se zajistilo, že se aktualizují všechny relevantní proměnné fáze.

Tento rychlý start jako výchozí bod využívá prostředky vytvořené v některém z těchto průvodců:

  • Vytvořte instanci flexibilního serveru Azure Database for MySQL pomocí webu Azure Portal nebo Azure CLI.

Použití souboru SQL

Následující příklad ukazuje, jak předat argumenty databáze a spustit execute příkaz

- 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

Použití vloženého skriptu SQL

Následující příklad ukazuje, jak spustit vložený skript SQL pomocí execute příkazu .

- 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;" 

Vstupy úkolů

Úplný seznam všech vstupů úloh můžete zobrazit při použití úlohy Azure CLI se službou Azure Pipelines.

Parametr Popis
AzureSubscription (Povinné) Zadejte předplatné Azure Resource Manageru pro nasazení. Tento parametr se zobrazí jenom v případě, že vybraná verze úlohy je 0.* jako úloha Azure CLI verze 1.0 podporuje pouze předplatná Azure Resource Manageru.
scriptType (Povinné) Zadejte typ skriptu. Podporované skripty jsou PowerShell, PowerShell Core, Bat, Shell a skript. Při spuštění v agentu linuxu vyberte jednu z následujících možností: bash nebo pscore . Při spuštění agenta systému Windows vyberte jednu z následujících možností:ps batcha pscore.
scriptLocation (Povinné) Zadejte cestu ke skriptu, například skutečnou cestu k souboru nebo použijte Inline script při zadávání vložených skriptů. Výchozí hodnota je scriptPath.
scriptPath (Povinné) Plně kvalifikovaná cesta skriptu(.ps1 nebo .bat nebo .cmd při použití agenta .ps1 založeného na Systému Windows nebo .sh při použití linuxového agenta) nebo cesty vzhledem k výchozímu pracovnímu adresáři.
inlineScript (Povinné) Skripty můžete napsat přímo tady. Pokud používáte agenta Pro Windows, použijte PowerShell, PowerShell Core nebo dávkové skriptování, zatímco při použití linuxových agentů použijte PowerShell Core nebo skriptování prostředí. Pro dávkové soubory použijte před každým příkazem Azure předponu "call". Předdefinované a vlastní proměnné můžete do tohoto skriptu předat také pomocí argumentů.
Příklad pro PowerShell, PowerShellCore/shell: az --version az account show
Příklad dávky: call az --version call az account show.
argumenty (Volitelné) Zadejte všechny argumenty předané skriptu. Příklady -SERVERNAME mydemoserver.
powerShellErrorActionPreference (Volitelné) Předpne řádek $ErrorActionPreference = VALUE v horní části skriptu PowerShellu nebo PowerShellu Core. Výchozí hodnota je zastavena. Podporované hodnoty jsou stop, continue a silentlyContinue.
addSpnToEnvironment (Volitelné) Přidá ID instančního objektu a klíč koncového bodu Azure, který jste zvolili do spouštěcího prostředí skriptu. Můžete použít tyto proměnné: $env:servicePrincipalId, $env:servicePrincipalKey a $env:tenantId ve skriptu. Toto se respektuje jenom v případě, že koncový bod Azure má schéma ověřování instančního objektu. Výchozí hodnota je false.
useGlobalConfig (Volitelné) Pokud je tato hodnota false, použije tato úloha svůj vlastní samostatný konfigurační adresář Azure CLI. Dá se použít ke spouštění úloh Azure CLI v paralelních verzích.
Výchozí hodnota: false
workingDirectory (Volitelné) Aktuální pracovní adresář, ve kterém se skript spouští. Prázdný je kořen úložiště (sestavení) nebo artefaktů (verze), což je $(System.DefaultWorkingDirectory).
failOnStandardError (Volitelné) Pokud je to pravda, tato úloha selže při zápisu chyb do streamu StandardError. Zrušte zaškrtnutí políčka, pokud chcete ignorovat standardní chyby, a při určování stavu se spoléháte na ukončovací kódy. Výchozí hodnota je false.
powerShellIgnoreLASTEXITCODE (Volitelné) Pokud je tato hodnota false, řádek if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } se připojí na konec skriptu. To způsobí, že se poslední ukončovací kód z externího příkazu rozšíří jako ukončovací kód PowerShellu. Jinak se řádek nepřidá na konec skriptu. Výchozí hodnota je false.

Problémy s úlohou rozhraní příkazového řádku najdete v tématu řešení potíží s sestavením a vydáním.

Další kroky

Tady jsou některé související úlohy nasazení do Azure.