Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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.
Um Banco de Dados do Azure para instância do Servidor Flexível 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
Para usar a ação Azure Login com OIDC, é necessário configurar uma credencial de identidade federada num aplicativo Microsoft Entra ou numa identidade gerida atribuída pelo utilizador.
Opção 1: Aplicação Microsoft Entra
- Crie uma aplicação Microsoft Entra com uma entidade de serviço através do portal do Azure, CLI do Azure (Interface de Linha de Comandos) ou PowerShell do Azure.
- Copie os valores para ID do cliente, ID da assinatura e ID do diretório (locatário) para usar posteriormente no fluxo de trabalho das Ações do GitHub.
- Atribua uma função apropriada à sua entidade de serviço através do Portal do Azure, Azure CLI ou Azure PowerShell.
- Configure uma credencial de identidade federada num aplicativo Microsoft Entra para confiar tokens emitidos pelo GitHub Actions no seu repositório GitHub.
Opção 2: Identidade gerenciada atribuída pelo usuário
- Crie uma identidade gerenciada atribuída pelo usuário.
- Copie os valores para ID do cliente, ID da assinatura e ID do diretório (locatário) para usar posteriormente no fluxo de trabalho das Ações do GitHub.
- Atribua uma função apropriada à identidade gerida atribuída ao utilizador.
- Configure uma credencial de identidade federada numa identidade gerida atribuída ao utilizador para confiar em tokens emitidos pelo GitHub Actions no seu repositório GitHub.
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
Você precisa fornecer o ID do cliente, o ID do diretório (locatário) e o ID da assinatura da sua aplicação para a ação de login. Esses valores podem ser fornecidos diretamente no fluxo de trabalho ou podem ser armazenados em segredos do GitHub e referenciados em seu fluxo de trabalho. Salvar os valores como segredos do GitHub é a opção mais segura.
No GitHub, vá para o seu repositório.
Selecione Segredos de Segurança > e Ações de variáveis>.
Selecione Novo segredo do repositório.
Observação
Para aumentar a segurança do fluxo de trabalho em repositórios públicos, utilize segredos de ambiente em vez de segredos de repositório. Se o ambiente exigir aprovação, um trabalho não poderá acessar segredos de ambiente até que um dos revisores necessários o aprove.
Crie segredos para
AZURE_CLIENT_ID,AZURE_TENANT_IDeAZURE_SUBSCRIPTION_ID. Copie estes valores do seu aplicativo Microsoft Entra ou da identidade gerenciada atribuída pelo usuário para seus segredos do GitHub:Segredo do GitHub Aplicativo Microsoft Entra ou identidade gerenciada atribuída pelo usuário AZURE_CLIENT_ID ID do Cliente AZURE_SUBSCRIPTION_ID ID de Subscrição AZURE_TENANT_ID ID do Diretório (inquilino) Observação
Por motivos de segurança, recomendamos o uso de Segredos do GitHub em vez de passar valores diretamente para o fluxo de trabalho.
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 Actionse 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_CREDENTIALSGitHub 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@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}Use a ação Implantar do Azure MySQL para se conectar à sua instância do MySQL. Substitua
MYSQL_SERVER_NAMEpelo nome do servidor. Você deve ter um arquivo de dados MySQL nomeadodata.sqlno 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/workflowspasta 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@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} - 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 do Servidor Flexível 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 do GitHub.