Partilhar via


Usar ações do GitHub para se conectar ao Banco de Dados SQL do Azure

Aplica-se a:Banco de Dados SQL do Azure

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 SQL do Azure.

Pré-requisitos

Precisas:

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. Este arquivo tem as etapas e os parâmetros que compõem o fluxo de trabalho.

O ficheiro tem duas secções:

Seção Tarefas
Autenticação 1. Gere credenciais de implantação.
Implementar 2. 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

Opção 2: Identidade gerenciada atribuída pelo usuário

Copiar a cadeia de conexão SQL

No portal do Azure, vá para o Banco de Dados SQL do Azure e abra ascadeias de conexãode configurações>. Copie a cadeia de ligação de ADO.NET. Substitua os valores de espaço reservado para your_database e your_password.

Você definirá a cadeia de conexão como um segredo do GitHub, AZURE_SQL_CONNECTION_STRING.

Configurar os 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.

  1. No GitHub, vá para o seu repositório.

  2. Selecione Segurança > Segredos e variáveis > Ações.

    Captura de ecrã a mostrar a adição de um segredo

  3. 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.

  4. Crie segredos para AZURE_CLIENT_ID, AZURE_TENANT_IDe AZURE_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 da 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.

Adicionar o segredo da cadeia de conexão SQL

  1. No GitHub, vá para o seu repositório.

  2. Vá para Configurações no menu de navegação.

  3. Selecione Segurança > Segredos e variáveis > Ações.

  4. Selecione Novo segredo do repositório.

  5. Cole sua cadeia de conexão SQL. Dê ao segredo o nome AZURE_SQL_CONNECTION_STRING.

  6. Selecione Adicionar segredo.

Adicione o seu fluxo de trabalho

  1. Vá para Ações para o seu repositório do GitHub.

  2. Selecione Configurar seu fluxo de trabalho você mesmo.

  3. Exclua tudo após a on: seção do seu arquivo de fluxo de trabalho. Por exemplo, seu fluxo de trabalho restante pode ter esta aparência.

    name: SQL for GitHub Actions
    
    on:
        push:
            branches: [ main ]
        pull_request:
            branches: [ main ]
    
  4. Renomeie seu fluxo de trabalho SQL 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 do AZURE_CREDENTIALS GitHub que você criou anteriormente.

        name: SQL 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 }}
    

  1. Use a ação Implantação do SQL do Azure para se conectar à sua instância SQL. Você deve ter um pacote dacpac (Database.dacpac) no nível raiz do repositório. Use o segredo do AZURE_SQL_CONNECTION_STRING GitHub criado anteriormente.

    - uses: azure/sql-action@v2.3
      with:
        connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }}
        path: './Database.dacpac'
        action: 'publish'
    
  2. Conclua seu fluxo de trabalho adicionando uma ação para fazer logout do Azure. Aqui está o fluxo de trabalho concluído. O arquivo aparece na .github/workflows pasta do repositório.

        name: SQL 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/sql-action@v2.3
               with:
                connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }}
                path: './Database.dacpac'
                action: 'publish'
    
                # Azure logout 
                 - name: logout
                   run: |
                     az logout
    

Reveja a sua implementação

  1. Vá para Ações para o seu repositório do GitHub.

  2. Abra o primeiro resultado para ver os logs detalhados da execução do seu fluxo de trabalho.

    Log de ações do GitHub executadas

Limpeza de recursos

Quando o banco de dados SQL e o repositório do Azure não forem mais necessários, limpe os recursos implantados excluindo o grupo de recursos e o repositório do GitHub.

Próximos passos