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.
Comece a usar o GitHub Actions usando um fluxo de trabalho para implantar atualizações de banco de dados no Banco de Dados do Azure para MySQL — Servidor Flexível.
Pré-requisitos
Você precisará de:
Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
Uma conta do GitHub. Se você não tiver uma conta do GitHub, inscreva-se gratuitamente.
Um repositório do GitHub com os dados de exemplo (
data.sql).Importante
Este início rápido pressupõe que você clonou um repositório GitHub no computador para adicionar o endereço IP associado a uma regra de firewall, se necessário.
Uma instância de Servidor Flexível do Azure para Banco de Dados MySQL.
Visão geral do arquivo do fluxo de trabalho
Um fluxo de trabalho do GitHub Actions é definido por um arquivo YAML (.yml) no caminho /.github/workflows/ no repositório. Essa definição contém as várias etapas e os parâmetros que compõem o fluxo de trabalho.
O arquivo tem duas seções:
| Seção | Tarefas |
|---|---|
| Autenticação | 1. Gerar as credenciais de implantação. |
| Implantar | 1. Implantar o banco de dados. |
Gerar as credenciais de implantação
Para usar a ação de Logon do Azure com o OIDC, você precisa configurar uma credencial de identidade federada em um aplicativo do Microsoft Entra ou uma identidade gerenciada atribuída pelo usuário.
Opção 1: Aplicativo Microsoft Entra
- Crie um aplicativo Microsoft Entra com uma entidade de serviço pelo portal do Azure, CLI do Azure ou Azure PowerShell.
- Copie os valores para ID do cliente, ID da assinatura e ID do diretório (locatário) para usar posteriormente no seu fluxo de trabalho do GitHub Actions.
- Atribua uma função apropriada à entidade de serviço pelo portal do Azure, pela CLI do Azure ou pelo Azure PowerShell.
- Configure uma credencial de identidade federada em um aplicativo Microsoft Entra para confiar em tokens emitidos pelo GitHub Actions para seu repositório GitHub.
Opção 2: Identidade gerenciada atribuída pelo usuário
- Criar 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 seu fluxo de trabalho do GitHub Actions.
- Atribua uma função apropriada à sua identidade gerenciada atribuída pelo usuário.
- Configure uma credencial de identidade federada em uma identidade gerenciada atribuída pelo usuário para confiar em tokens emitidos pelo GitHub Actions para seu repositório GitHub.
Copiar a cadeia de conexão de MySQL
No portal do Azure, acesse a instância do Banco de Dados do Azure para MySQL — Servidor Flexível e abra Configurações>Cadeias de conexão. Copie a cadeia de conexão ADO.NET. Substitua os valores de espaço reservado por your_database e your_password.
Importante
- Para o Banco de Dados do Azure para MySQL — Servidor Único, use Uid=adminusername@servername. Observe que @servername é obrigatório.
- Para o servidor flexível do Banco de Dados MySQL do Azure, 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 a ID do cliente, a ID do diretório (locatário) e a ID da assinatura do seu aplicativo 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, acesse seu repositório.
Selecione Segurança > Segredos e variáveis > Ações.
Selecione Novo segredo de repositório.
Observação
Para aprimorar a segurança do fluxo de trabalho em repositórios públicos, use segredos de ambiente em vez de segredos do 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 esses valores do 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 da assinatura AZURE_TENANT_ID ID do diretório (locatário) Observação
Por motivos de segurança, recomendamos usar os Segredos do GitHub em vez de passar valores diretamente para o fluxo de trabalho.
Adicionar seu fluxo de trabalho
Acesse Ações para seu repositório do GitHub.
Selecione Configurar seu fluxo de trabalho por conta própria.
Exclua tudo depois da seção
on:do seu arquivo de fluxo de trabalho. Por exemplo, seu fluxo de trabalho restante pode ter esta aparência.name: CI on: push: branches: [ main ] pull_request: branches: [ main ]Renomeie o fluxo de trabalho
MySQL for GitHub Actionse adicione as ações de check-out e logon. Essas ações farão o check-out do código do site e a autenticação com o Azure usando o segredo do GitHubAZURE_CREDENTIALScriado 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 MySQL do Azure para se conectar à sua instância do MySQL. Substitua
MYSQL_SERVER_NAMEpelo nome do seu servidor. Você deve ter um arquivo de dados do MySQL chamadodata.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 o fluxo de trabalho adicionando uma ação para fazer logoff do Azure. Este é o fluxo de trabalho concluído. O arquivo será exibido na pasta
.github/workflowsdo seu 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
Examinar sua implantação
Acesse Ações para seu repositório do GitHub.
Abra o primeiro resultado para ver os logs detalhados da execução do fluxo de trabalho.
Limpar os 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 GitHub.