Zadanie usługi Azure Pipelines — Azure Database for PostgreSQL — serwer elastyczny

DOTYCZY: Azure Database for PostgreSQL — serwer elastyczny

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

Wymagania wstępne

Korzystanie z pliku SQL

Poniższy przykład ilustruje sposób przekazywania argumentów bazy danych i uruchamiania 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: |
      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 danych wejściowych zadań można wyświetlić podczas korzystania z zadania interfejsu wiersza polecenia platformy Azure z usługą Azure Pipelines.

Parametr Opis
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.
Scripttype (Wymagane) Podaj typ skryptu. Obsługiwane skrypty to program PowerShell, program PowerShell Core, bat, powłoka i skrypt. 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,ps i pscore.
scriptLocation (Wymagane) Podaj ścieżkę do skryptu, na przykład rzeczywistą ścieżkę pliku lub użyj Inline script jej podczas podawania wbudowanych skryptów. Domyślna wartość to scriptPath.
scriptPath (Wymagane) W pełni kwalifikowana ścieżka skryptu (.ps1 lub .bat lub .cmd w przypadku korzystania z agenta .ps1 opartego na systemie Windows lub w przypadku korzystania z agenta opartego na systemie Linux) lub .sh ścieżki względem domyślnego katalogu roboczego.
Inlinescript (Wymagane) Skrypty można napisać w tekście tutaj. W przypadku korzystania z agenta systemu Windows należy użyć programu PowerShell lub programu PowerShell Core lub skryptów wsadowych, podczas gdy używasz agentów opartych na systemie Linux, użyj skryptów programu PowerShell Core lub 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/programu PowerShellCore/powłoki: az --version az account show
Przykład dla partii: call az --version call az account show.
Argumenty (Opcjonalnie) Podaj wszystkie argumenty przekazane do skryptu. -SERVERNAME mydemoserverPrzykłady: .
PowerShellErrorActionPreference (Opcjonalnie) Poprzedza wiersz $ErrorActionPreference = "VALUE" u góry skryptu programu PowerShell/programu 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 uznawane tylko wtedy, gdy punkt końcowy platformy Azure ma schemat uwierzytelniania jednostki usługi. Wartość domyślna to false.
useGlobalConfig (Opcjonalnie) Jeśli jest to wartość false, to zadanie będzie używać własnego oddzielnego katalogu konfiguracji interfejsu wiersza polecenia platformy Azure. 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. Pusty to katalog główny repozytorium (kompilacja) lub artefakty (wydanie), czyli $(System.DefaultWorkingDirectory).
failOnStandardError (Opcjonalnie) Jeśli to prawda, to zadanie zakończy się niepowodzeniem, gdy wszelkie 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 false.
PowerShellIgnoreLASTEXITCODE (Opcjonalnie) Jeśli jest to fałsz, wiersz if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } jest dołączany na końcu skryptu. Spowoduje 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 false.

Masz problemy z zadaniem interfejsu wiersza polecenia, zobacz , jak rozwiązywać problemy z kompilacją i wydaniem.

Następne kroki

Poniżej przedstawiono kilka powiązanych zadań, których można użyć do wdrożenia za pomocą usługi Azure Pipelines.