Compartilhar via


Azure Pipelines para Banco de Dados do Azure para MySQL – Servidor Flexível

APLICA-SE A: Banco de Dados do Azure para MySQL – 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 MySQL após cada build bem-sucedido com o Azure Pipelines. Você pode usar a tarefa da 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 em execução em sistemas operacionais Linux, macOS ou Windows.

Pré-requisitos

  • Uma conta do Azure. Se você não tiver uma, obtenha uma avaliação gratuita.

  • Conexão de serviço do ARM (Azure Resource Manager) à sua conta do Azure

  • Agentes hospedados pela Microsoft tem a CLI do Azure pré-instalada. No entanto, se você estiver usando agentes privados, instale a CLI do Azure nos computadores que executarem o build e o agente de versão. Se um agente já estiver em execução no computador em que a CLI do Azure está instalada, reinicie o agente para garantir que todas as variáveis de fase relevantes sejam atualizadas.

Este guia de início rápido usa os recursos criados em um destes guias como ponto de partida:

Usar arquivo SQL

O exemplo a seguir ilustra como passar argumentos de banco de dados e executar o comando execute

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
    inlineScript: |
      az login --allow-no-subscription
      az mysql 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 o comando execute.

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
      -INLINESCRIPT 
    inlineScript: |
      az login --allow-no-subscription
      az mysql flexible-server execute --name $(SERVERNAME) \
      --admin-user $(DBUSER) --admin-password '$(DBPASSWORD)' \
      --database-name $(DBNAME) \
      --query-text "UPDATE items SET items.retail = items.retail * 0.9 WHERE items.id =100;" 

Entradas de tarefa

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

Parâmetro Descrição
azureSubscription (Obrigatório) Forneça a assinatura do ARM para a implantação. Esse parâmetro é mostrado somente quando a versão da tarefa selecionada é 0.*, já que a tarefa v1.0 da CLI do Azure dá suporte apenas às assinaturas do ARM.
scriptType (Obrigatório) Forneça o tipo de script. Os scripts com suporte são PowerShell, PowerShell Core, Bat, Shell e script. Para execuções em um agente do Linux, selecione uma das seguintes opções: bash ou pscore. Ao executar o agente do Windows, selecione um dos seguintes: batch,ps epscore.
scriptLocation (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 padrão é scriptPath.
scriptPath (Obrigatório) Caminho totalmente qualificado do script (.ps1, .bat ou .cmd ao usar um agente baseado em Windows .ps1 ou .sh ao usar o agente baseado em Linux) ou um caminho relativo ao diretório de trabalho padrão.
inlineScript (Obrigatório) Você pode escrever seus scripts embutidos aqui. Ao usar o agente do Windows, adote o PowerShell ou o PowerShell Core ou o script em lote; já ao usar agentes do Linux, adote o PowerShell Core ou o script do shell. Para arquivos em lotes, use o prefixo “call” antes de cada comando do Azure. Você também pode passar variáveis predefinida e personalizadas para esse script usando argumentos.
Exemplo para PowerShell/PowerShellCore/shell: az --version az account show
Exemplo para 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) Anexa a linha $ErrorActionPreference = 'VALUE' na parte superior do script do PowerShell/PowerShell Core. O valor padrão é stop. Os valores com suporte 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 é atendido somente quando o ponto de extremidade do Azure tem o esquema de autenticação da Entidade de Serviço. O valor padrão é false.
useGlobalConfig (Opcional) Se isso for falso, essa tarefa usará seu diretório de configuração da CLI do Azure separado. Isso pode ser usado para executar tarefas da CLI do Azure em versões paralelas
Valor Padrão: false
workingDirectory (Opcional) Diretório de trabalho atual em que o script é executado. Empty é a raiz do repositório (build) ou dos artefatos (versão), que é $(System.DefaultWorkingDirectory).
failOnStandardError (Opcional) Se isso for verdadeiro, essa tarefa falhará quando todos os erros forem gravados no fluxo StandardError. Desmarque a caixa de seleção para ignorar erros padrão e use códigos de saída para determinar o status. O valor padrão é false.
powerShellIgnoreLASTEXITCODE (Opcional) Se isso for falso, a linha if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } será acrescentada 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á acrescentada ao final do script. O valor padrão é false.

Se estiver enfrentando problemas com a tarefa da CLI, confira Como solucionar problemas de Build e Versão.

Próximas etapas

Aqui estão algumas tarefas relacionadas para implantar no Azure.