Sdílet prostřednictvím


Úloha Azure Pipelines – Flexibilní server Azure Database for PostgreSQL

PLATÍ PRO: Flexibilní server Azure Database for PostgreSQL

Aktualizace databáze můžete automaticky nasadit na flexibilní server Azure Database for PostgreSQL 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.
  • Vytvoření instance flexibilního serveru Azure Database for PostgreSQL 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>
    scriptType: 'pscore'
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
    inlineScript: |
      az login --allow-no-subscription
      az postgres 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>
    scriptType: 'pscore'
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
      -INLINESCRIPT 
    inlineScript: |
      az login --allow-no-subscription 
      az postgres flexible-server execute --name $(SERVERNAME) --admin-user $(DBUSER) \
      --admin-password '$(DBPASSWORD)'  --database-name $(DBNAME) \
      --querytext "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, které je možné použít k nasazení pomocí Azure Pipelines.