Share via


Attività di Azure Pipelines - Database di Azure per PostgreSQL - Server flessibile

SI APPLICA A: Database di Azure per PostgreSQL - Server flessibile

È possibile distribuire automaticamente gli aggiornamenti del database in Database di Azure per PostgreSQL server flessibile dopo ogni compilazione corretta con Azure Pipelines. È possibile usare l'attività dell'interfaccia della riga di comando di Azure per aggiornare il database con un file SQL o uno script SQL inline nel database. Questa attività può essere eseguita su agenti multipiattaforma in esecuzione in sistemi operativi Linux, macOS o Windows.

Prerequisiti

  • Un account Azure. Se non è disponibile, ottenere una versione di valutazione gratuita.
  • Connessione al servizio Azure Resource Manager all'account Azure
  • Gli agenti ospitati da Microsoft hanno preinstallato l'interfaccia della riga di comando di Azure. Tuttavia, se si usano agenti privati, installare l'interfaccia della riga di comando di Azure nei computer che eseguono la build e l'agente di rilascio. Se un agente è già in esecuzione nel computer in cui è installata l'interfaccia della riga di comando di Azure, riavviare l'agente per assicurarsi che tutte le variabili di fase pertinenti vengano aggiornate.
  • Creare un'istanza del server flessibile Database di Azure per PostgreSQL usando il portale di Azure o l'interfaccia della riga di comando di Azure

Usare il file SQL

Nell'esempio seguente viene illustrato come passare argomenti di database ed eseguire execute il comando

- 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

Usare lo script SQL inline

Nell'esempio seguente viene illustrato come eseguire uno script SQL inline usando execute il comando .

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

Input dell'attività

È possibile visualizzare l'elenco completo di tutti gli input dell'attività quando si usa l'attività dell'interfaccia della riga di comando di Azure con Azure Pipelines.

Parametro Descrizione
azureSubscription (Obbligatorio) Specificare la sottoscrizione di Azure Resource Manager per la distribuzione. Questo parametro viene visualizzato solo quando la versione dell'attività selezionata è 0.* perché l'attività dell'interfaccia della riga di comando di Azure v1.0 supporta solo le sottoscrizioni di Azure Resource Manager.
scriptType (Obbligatorio) Specificare il tipo di script. Gli script supportati sono PowerShell, PowerShell Core, Bat, Shell e script. Quando si esegue in un agente Linux, selezionare una delle opzioni seguenti: bash o pscore . Quando si esegue l'agente di Windows, selezionare uno dei seguenti: batchepspscore.
scriptLocation (Obbligatorio) Specificare il percorso dello script, ad esempio il percorso del file reale o usare Inline script quando si specificano gli script inline. Il valore predefinito è scriptPath.
scriptPath (Obbligatorio) Percorso completo dello script(.ps1 o .bat o cmd quando si usa l'agente .ps1 basato su Windows o quando si usa l'agente basato su Linux) o .sh un percorso relativo alla directory di lavoro predefinita.
Inlinescript (Obbligatorio) È possibile scrivere gli script inline qui. Quando si usa l'agente Windows, usare PowerShell o PowerShell Core o scripting batch, mentre usare powerShell Core o scripting della shell quando si usano agenti basati su Linux. Per i file batch usare il prefisso "call" prima di ogni comando di Azure. È anche possibile passare variabili predefinite e personalizzate a questo script usando argomenti.
Esempio per PowerShell/PowerShellCore/shell: az --version az account show
Esempio per batch: call az --version call az account show.
arguments (Facoltativo) Specificare tutti gli argomenti passati allo script. Per esempi -SERVERNAME mydemoserver.
powerShellErrorActionPreference (Facoltativo) Antepone la riga $ErrorActionPreference = 'VALUE' nella parte superiore dello script di PowerShell/PowerShell Core. Il valore predefinito è stop. I valori supportati sono stop, continue e silentlyContinue.
addSpnToEnvironment (Facoltativo) Aggiunge l'ID dell'entità servizio e la chiave dell'endpoint di Azure scelto nell'ambiente di esecuzione dello script. È possibile usare queste variabili: $env:servicePrincipalId, $env:servicePrincipalKey e $env:tenantId nello script. Questo viene rispettato solo quando l'endpoint di Azure ha lo schema di autenticazione dell'entità servizio. Il valore predefinito è false.
useGlobalConfig (Facoltativo) Se è false, questa attività userà la propria directory di configurazione separata dell'interfaccia della riga di comando di Azure. Può essere usato per eseguire attività dell'interfaccia della riga di comando di Azure in versioni parallele "
Valore predefinito: false
Workingdirectory (Facoltativo) Directory di lavoro corrente in cui viene eseguito lo script. Empty è la radice del repository (build) o degli artefatti (versione), ovvero $(System.DefaultWorkingDirectory).
failOnStandardError (Facoltativo) In questo caso, questa attività avrà esito negativo quando vengono scritti errori nel flusso StandardError. Deselezionare la casella di controllo per ignorare gli errori standard e basarsi sui codici di uscita per determinare lo stato. Il valore predefinito è false.
powerShellIgnoreLASTEXITCODE (Facoltativo) Se è false, la riga if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } viene aggiunta alla fine dello script. In questo modo, l'ultimo codice di uscita da un comando esterno verrà propagato come codice di uscita di PowerShell. In caso contrario, la riga non viene aggiunta alla fine dello script. Il valore predefinito è false.

Problemi con l'attività dell'interfaccia della riga di comando, vedere come risolvere i problemi di compilazione e rilascio.

Passaggi successivi

Ecco alcune attività correlate che possono essere usate per la distribuzione con Azure Pipelines.