Zadanie Azure Pipelines — elastyczny serwer Azure Database dla PostgreSQL

Aktualizacje bazy danych można wdrożyć automatycznie na serwerze elastycznym Azure Database for PostgreSQL po każdej pomyślnej kompilacji przy użyciu Azure Pipelines. Za pomocą zadania Azure CLI zaktualizuj bazę danych przy użyciu pliku SQL lub wbudowanego skryptu SQL względem bazy danych. Uruchom to zadanie na agentach międzyplatformowych działających w systemach operacyjnych Linux, macOS lub Windows.

Wymagania wstępne

Korzystanie z pliku SQL

W poniższym przykładzie pokazano, jak przekazać argumenty bazy danych i uruchomić execute polecenie .

- 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

Używanie wbudowanego skryptu SQL

Poniższy przykład ilustruje sposób uruchamiania wbudowanego skryptu SQL przy użyciu execute polecenia .

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

Dane wejściowe zadania

Pełną listę wszystkich parametrów wejściowych zadania można zobaczyć, używając zadania Azure CLI w Azure Pipelines.

Parameter Description
azureSubscription (Wymagane) Podaj subskrypcję usługi Azure Resource Manager dla wdrożenia. Ten parametr jest wyświetlany tylko wtedy, gdy wybrana wersja zadania to 0.* jako zadanie interfejsu wiersza polecenia platformy Azure w wersji 1.0 obsługuje tylko subskrypcje usługi Azure Resource Manager.
typ skryptu (Wymagane) Podaj typ skryptu. Obsługiwane typy skryptów to PowerShell, PowerShell Core, BAT, Shell i Script. W przypadku uruchamiania na agencie systemu Linux wybierz jedną z następujących opcji: bash lub pscore. Podczas uruchamiania agenta systemu Windows wybierz jedną z następujących opcji: batch, psi pscore.
scriptLocation (Wymagane) Podaj ścieżkę do skryptu, na przykład rzeczywistą ścieżkę pliku, lub użyj Inline script, gdy podajesz skrypty bezpośrednio w treści. Domyślna wartość to scriptPath.
scriptPath (Wymagane) W pełni kwalifikowana ścieżka dostępu do skryptu (.ps1, .bat lub .cmd w przypadku korzystania z agenta opartego na systemie Windows, w przeciwnym razie .ps1 lub .sh w przypadku korzystania z agenta opartego na systemie Linux) lub ścieżka względna względem domyślnego katalogu roboczego.
inlineScript (Wymagane) Tutaj możesz wpisać skrypty bezpośrednio. W przypadku korzystania z agenta systemu Windows użyj programu PowerShell, programu PowerShell Core lub skryptów wsadowych, natomiast w przypadku agentów opartych na systemie Linux użyj programu PowerShell Core lub skryptów powłoki. W przypadku plików wsadowych użyj prefiksu "call" przed każdym poleceniem platformy Azure. Można również przekazać wstępnie zdefiniowane i niestandardowe zmienne do tego skryptu przy użyciu argumentów.
Przykład dla programu PowerShell/PowerShell Core/powłoki: az --version az account show
Przykład partii: call az --version call az account show.
arguments (Opcjonalnie) Podaj wszystkie argumenty przekazane do skryptu. -SERVERNAME mydemoserverPrzykłady: .
PowerShellErrorActionPreference (Opcjonalnie) Dodaje wiersz $ErrorActionPreference = 'VALUE' na początku skryptu PowerShell/PowerShell Core. Wartość domyślna to zatrzymanie. Obsługiwane wartości to zatrzymanie, kontynuowanie i dyskretnieKontynuj.
addSpnToEnvironment (Opcjonalnie) Dodaje identyfikator jednostki usługi i klucz punktu końcowego platformy Azure wybranego do środowiska wykonywania skryptu. Możesz użyć tych zmiennych: $env:servicePrincipalId, $env:servicePrincipalKey i $env:tenantId w skrypcie. Jest to uwzględniane tylko wtedy, gdy punkt końcowy Azure ma schemat uwierzytelniania Service Principal. Wartość domyślna to fałsz.
useGlobalConfig (Opcjonalnie) Jeśli ta wartość ma wartość false, zadanie używa własnego oddzielnego katalogu konfiguracji Azure CLI. Może to służyć do uruchamiania zadań interfejsu wiersza polecenia platformy Azure w wersjach równoległych "
Wartość domyślna: false
workingDirectory (Opcjonalnie) Bieżący katalog roboczy, w którym jest uruchamiany skrypt. Puste oznacza katalog główny repozytorium (kompilacja) lub artefaktów (wydanie), którym jest $(System.DefaultWorkingDirectory).
failOnStandardError (Opcjonalnie) Jeśli to prawda, to zadanie kończy się niepowodzeniem, gdy wszystkie błędy są zapisywane w strumieniu StandardError. Usuń zaznaczenie pola wyboru, aby ignorować standardowe błędy i polegać na kodach zakończenia w celu określenia stanu. Wartość domyślna to fałsz.
PowerShellIgnoreLASTEXITCODE (Opcjonalnie) Jeśli jest to fałsz, wiersz if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } jest dołączany na końcu skryptu. Powoduje to propagację ostatniego kodu zakończenia z zewnętrznego polecenia jako kodu zakończenia programu PowerShell. W przeciwnym razie wiersz nie jest dołączany na końcu skryptu. Wartość domyślna to fałsz.

Jeśli masz problemy z zadaniem CLI, zobacz jak rozwiązywać problemy z Build and Release.