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
- Konto Azure. Jeśli go nie masz, skorzystaj z bezpłatnej wersji próbnej.
- Połączenie usługi Azure Resource Manager z kontem platformy Azure
- Agenci hostowani przez firmę Microsoft mają wstępnie zainstalowany interfejs wiersza polecenia platformy Azure. Jeśli jednak używasz agentów prywatnych, zainstaluj interfejs wiersza polecenia platformy Azure na komputerach z uruchomionym agentem kompilacji i wydania. Jeśli agent jest już uruchomiony na maszynie, na której zainstalowano interfejs wiersza polecenia platformy Azure, uruchom ponownie agenta, aby upewnić się, że wszystkie odpowiednie zmienne etapu są aktualizowane.
- Tworzenie wystąpienia serwera elastycznego usługi Azure Database for PostgreSQL przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure
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 mydemoserver Przykł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.