Guia de início rápido: usar ações do GitHub para se conectar ao Banco de Dados do Azure para MySQL - Servidor flexível
Comece a usar as Ações do GitHub usando um fluxo de trabalho para implantar atualizações de banco de dados no Banco de Dados do Azure para o servidor flexível MySQL.
Pré-requisitos
Precisará:
Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
Uma conta GitHub. Se você não tiver uma conta no GitHub, inscreva-se gratuitamente.
Um repositório GitHub com dados de exemplo (
data.sql
).Importante
Este início rápido pressupõe que você clonou um repositório GitHub para o seu computador para que você possa adicionar o endereço IP associado a uma regra de firewall, se necessário.
Uma instância de servidor flexível do Banco de Dados do Azure para MySQL.
Visão geral do arquivo de fluxo de trabalho
Um fluxo de trabalho de Ações do GitHub é definido por um arquivo YAML (.yml) no caminho do /.github/workflows/
repositório. Esta definição contém as várias etapas e parâmetros que compõem o fluxo de trabalho.
O ficheiro tem duas secções:
Section | Tarefas |
---|---|
Autenticação | 1. Gere credenciais de implantação. |
Implementar | 1. Implante o banco de dados. |
Gerar credenciais de implantação
Crie uma entidade de serviço com o comando az ad sp create-for-rbac na CLI do Azure. Execute este comando com o Azure Cloud Shell no portal do Azure ou selecionando o botão Experimentar .
az ad sp create-for-rbac --name "myML" --role contributor \
--scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
--json-auth
O parâmetro --json-auth
está disponível nas versões >da CLI do Azure = 2.51.0. Versões anteriores a este uso --sdk-auth
com um aviso de descontinuação.
No exemplo acima, substitua os espaços reservados pela ID da assinatura, nome do grupo de recursos e nome do aplicativo. A saída é um objeto JSON com as credenciais de atribuição de função que fornecem acesso ao seu aplicativo do Serviço de Aplicativo semelhante ao abaixo. Copie este objeto JSON para mais tarde.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
Copie a cadeia de conexão MySQL
No portal do Azure, vá para a instância flexível do servidor do Banco de Dados do Azure para MySQL e abra as cadeias de conexão de configurações>. Copie a cadeia de ligação de ADO.NET. Substitua os valores de espaço reservado para your_database
e your_password
.
Importante
- Para o Banco de Dados do Azure para servidor único MySQL, use Uid=adminusername@servername. Observe que o @servername é obrigatório.
- Para o Banco de Dados do Azure para servidor flexível MySQL, use Uid=adminusername sem o @servername.
Você usará a cadeia de conexão como um segredo do GitHub.
Configurar segredos do GitHub
No GitHub, vá para o seu repositório.
Vá para Configurações no menu de navegação.
Selecione Segredos de Segurança > e Ações de variáveis>.
Selecione Novo segredo do repositório.
Cole toda a saída JSON do comando CLI do Azure no campo de valor do segredo. Dê o nome
AZURE_CREDENTIALS
ao segredo .Selecione Add secret (Adicionar segredo).
Adicione o seu fluxo de trabalho
Vá para Ações para seu repositório GitHub.
Selecione Configurar seu fluxo de trabalho você mesmo.
Exclua tudo após a
on:
seção do seu arquivo de fluxo de trabalho. Por exemplo, o fluxo de trabalho restante pode ter esta aparência.name: CI on: push: branches: [ main ] pull_request: branches: [ main ]
Renomeie seu fluxo de trabalho
MySQL for GitHub Actions
e adicione as ações de check-out e login. Essas ações verificam o código do seu site e são autenticadas com o Azure usando o segredo doAZURE_CREDENTIALS
GitHub que você criou anteriormente.name: MySQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v1 - uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }}
Use a ação Implantar do Azure MySQL para se conectar à sua instância do MySQL. Substitua
MYSQL_SERVER_NAME
pelo nome do servidor. Você deve ter um arquivo de dados MySQL nomeadodata.sql
no nível raiz do seu repositório.- uses: azure/mysql@v1 with: server-name: MYSQL_SERVER_NAME connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }} sql-file: './data.sql'
Conclua seu fluxo de trabalho adicionando uma ação para sair do Azure. Aqui está o fluxo de trabalho concluído. O arquivo aparece na
.github/workflows
pasta do repositório.name: MySQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: windows-latest steps: - uses: actions/checkout@v1 - uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - uses: azure/mysql@v1 with: server-name: MYSQL_SERVER_NAME connection-string: ${{ secrets.AZURE_MYSQL_CONNECTION_STRING }} sql-file: './data.sql' # Azure logout - name: logout run: | az logout
Revisar sua implantação
Vá para Ações para seu repositório GitHub.
Abra o primeiro resultado para ver os logs detalhados da execução do seu fluxo de trabalho.
Clean up resources (Limpar recursos)
Quando o banco de dados e o repositório flexíveis do Banco de Dados do Azure para MySQL não forem mais necessários, limpe os recursos implantados excluindo o grupo de recursos e o repositório GitHub.