Share via


Tarefa Azure Pipelines - Banco de Dados do Azure para PostgreSQL - Servidor Flexível

APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Flexível

Você pode implantar automaticamente suas atualizações de banco de dados no servidor flexível do Banco de Dados do Azure para PostgreSQL após cada compilação bem-sucedida com o Azure Pipelines. Você pode usar a tarefa CLI do Azure para atualizar o banco de dados com um arquivo SQL ou um script SQL embutido no banco de dados. Essa tarefa pode ser executada em agentes multiplataforma executados em sistemas operacionais Linux, macOS ou Windows.

Pré-requisitos

  • Uma conta do Azure. Se não tiver uma, obtenha uma avaliação gratuita.
  • Ligação do serviço Azure Resource Manager à sua conta do Azure
  • Os agentes hospedados pela Microsoft têm a CLI do Azure pré-instalada. No entanto, se você estiver usando agentes privados, instale a CLI do Azure no(s) computador(es) que executam o agente de compilação e versão. Se um agente já estiver em execução na máquina na qual a CLI do Azure está instalada, reinicie o agente para garantir que todas as variáveis de estágio relevantes sejam atualizadas.
  • Criar um Banco de Dados do Azure para instância de servidor flexível do PostgreSQL usando o portal do Azure ou a CLI do Azure

Usar arquivo SQL

O exemplo a seguir ilustra como passar argumentos de banco de dados e executar execute o 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

Usar script SQL embutido

O exemplo a seguir ilustra como executar um script SQL embutido usando execute o 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;" 

Entradas de tarefas

Você pode ver a lista completa de todas as entradas de tarefas ao usar a tarefa CLI do Azure com o Azure Pipelines.

Parâmetro Description
azureSubscription (Obrigatório) Forneça a assinatura do Azure Resource Manager para a implantação. Esse parâmetro é mostrado somente quando a versão da tarefa selecionada é 0.*, pois a tarefa v1.0 da CLI do Azure dá suporte apenas a assinaturas do Azure Resource Manager.
scriptType (Obrigatório) Forneça o tipo de script. Os scripts suportados são PowerShell, PowerShell Core, Bat, Shell e script. Ao executar em um agente Linux, selecione uma das seguintes opções: bash ou pscore . Ao executar o agente do Windows, selecione uma das seguintes opções: batchepspscore.
scriptLocalização (Obrigatório) Forneça o caminho para o script, por exemplo, caminho de arquivo real ou use Inline script ao fornecer os scripts embutidos. O valor predefinido é scriptPath.
scriptPath (Obrigatório) Caminho totalmente qualificado do script (.ps1 ou .bat ou .cmd ao usar o agente baseado no Windows ou ao usar o agente .ps1 baseado em linux) ou .sh um caminho relativo ao diretório de trabalho padrão.
inlineScript (Obrigatório) Você pode escrever seus scripts em linha aqui. Ao usar o agente do Windows, use PowerShell ou PowerShell Core ou script em lote, enquanto use PowerShell Core ou shell scripting ao usar agentes baseados em Linux. Para arquivos em lote, use o prefixo "call" antes de cada comando do Azure. Você também pode passar variáveis predefinidas e personalizadas para esse script usando argumentos.
Exemplo de PowerShell/PowerShellCore/shell: az --version az account show
Exemplo de lote: call az --version call az account show.
Argumentos (Opcional) Forneça todos os argumentos passados para o script. Por exemplo -SERVERNAME mydemoserver.
powerShellErrorActionPreference (Opcional) Precede a linha $ErrorActionPreference = 'VALUE' na parte superior do script principal do PowerShell/PowerShell. O valor padrão é stop. Os valores suportados são stop, continue e silentlyContinue.
addSpnToEnvironment (Opcional) Adiciona a ID da entidade de serviço e a chave do ponto de extremidade do Azure que você escolheu ao ambiente de execução do script. Você pode usar estas variáveis: $env:servicePrincipalId, $env:servicePrincipalKey e $env: tenantId em seu script. Isso é honrado somente quando o ponto de extremidade do Azure tem o esquema de autenticação da Entidade de Serviço. O valor predefinido é false.
useGlobalConfig (Opcional) Se isso for falso, essa tarefa usará seu próprio diretório de configuração separado da CLI do Azure. Isso pode ser usado para executar tarefas da CLI do Azure em versões paralelas "
Valor padrão: false
diretório de trabalho (Opcional) Diretório de trabalho atual onde o script é executado. Vazio é a raiz do repositório (build) ou artefatos (release), que é $(System.DefaultWorkingDirectory).
failOnStandardError (Opcional) Se isso for verdade, essa tarefa falhará quando quaisquer erros forem gravados no fluxo StandardError. Desmarque a caixa de seleção para ignorar erros padrão e confiar nos códigos de saída para determinar o status. O valor predefinido é false.
powerShellIgnoreLASTEXITCODE (Opcional) Se isso for falso, a linha if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } será anexada ao final do script. Isso fará com que o último código de saída de um comando externo seja propagado como o código de saída do PowerShell. Caso contrário, a linha não será anexada ao final do script. O valor predefinido é false.

Tendo problemas com a tarefa CLI, veja como solucionar problemas de compilação e lançamento.

Próximos passos

Aqui estão algumas tarefas relacionadas que podem ser usadas para implantar com o Azure Pipelines.