Partilhar via


Usar ações do GitHub para se conectar ao 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

Necessita de:

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:

Secção Tarefas
Autenticação 1.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>",
    (...)
  }

Copiar a cadeia de conexão SQL

No portal do Azure, vá para o Banco de Dados SQL do Azure 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. A cadeia de conexão é semelhante a essa saída.

Server=tcp:my-sql-server.database.windows.net,1433;Initial Catalog={your-database};Persist Security Info=False;User ID={admin-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;

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

Configurar os segredos do GitHub

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

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

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

    Screenshot of adding a secret

  4. Selecione Novo segredo do repositório.

  5. Cole toda a saída JSON do comando CLI do Azure no campo de valor do segredo. Dê o nome AZURE_CREDENTIALSao segredo .

  6. Selecione Add secret (Adicionar segredo).

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 Segredos de Segurança > e Ações de variáveis>.

  4. Selecione Novo segredo do repositório.

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

  6. Selecione Add secret (Adicionar segredo).

Adicione o seu fluxo de trabalho

  1. Vá para Ações para seu repositório 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, o 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@v1
               with:
                creds: ${{ secrets.AZURE_CREDENTIALS }}
    

  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
      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@v1
               with:
                creds: ${{ secrets.AZURE_CREDENTIALS }}
             - uses: azure/sql-action@v2
               with:
                connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }}
                path: './Database.dacpac'
                action: 'Publish'
    
                # Azure logout 
             - name: logout
               run: |
                  az logout
    

Revisar sua implantação

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

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

    Log of GitHub actions run

Clean up resources (Limpar 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