Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
- Konto platformy 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 Azure CLI 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 usługi Azure Database for PostgreSQL.
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.