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 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.
Este guia de início rápido utiliza os recursos criados em qualquer um desTes guias como ponto de partida:
- Crie uma instância do Banco de Dados do Azure para Servidor Flexível MySQL usando o Guia de início rápido: crie uma instância do Banco de Dados do Azure para MySQL com o portal do Azure ou Guia de início rápido: crie uma instância do Banco de Dados do Azure para MySQL - Servidor Flexível usando 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>
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 execute
o 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: batch eps pscore . |
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. 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. |