Partilhar via


Azure Pipelines for Azure Database for MySQL - Servidor flexível

Você pode implantar automaticamente suas atualizações de banco de dados no Banco de Dados do Azure para Servidor Flexível MySQL 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. Você pode executar essa tarefa 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ê usar agentes privados, instale a CLI do Azure nos computadores que executam o agente de compilação e versão. Se um agente já estiver em execução na máquina em que você instala a CLI do Azure, reinicie o agente para atualizar todas as variáveis de estágio relevantes.

Este guia de início rápido utiliza os recursos criados em qualquer um desTes guias como ponto de partida:

Usar arquivo SQL

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

- 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 mostra como executar um script SQL embutido usando o execute comando.

- 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 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 .ps1 baseado no Windows 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 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óriode 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. Esse valor faz 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.
Se você estiver tendo problemas com a tarefa CLI, veja como solucionar problemas de compilação e lançamento.