Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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. Você pode executar essa tarefa 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
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 build e versão. Se um agente já estiver em execução no computador 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 usa os recursos criados em um destes guias como ponto de partida:
- Crie uma instância de servidor flexível do Banco de Dados do Azure para MySQL usando Início Rápido: criar uma instância do Banco de Dados do Azure para MySQL com o portal do Azure ou Início Rápido: criar uma instância de Banco de Dados do Azure para MySQL - Servidor Flexível usando a CLI do Azure.
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 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 showExemplo 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 AzureDiretó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. 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á acrescentada ao final do script. O valor padrão é false. |
| Se você estiver tendo problemas com a Tarefa da CLI, veja como solucionar problemas de build e liberação. |