Partilhar via


Guia de início rápido: usar ações do GitHub para se conectar ao Banco de Dados do Azure para PostgreSQL

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

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

Seção Tasks
Authentication 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

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

Copiar cadeia de conexão do Banco de Dados do Azure para PostgreSQL

No portal do Azure, vá para sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL e, no menu de recursos, em Configurações, selecione Conectar. Nessa página, use a caixa de combinação Nome do banco de dados para selecionar o nome do banco de dados ao qual você deseja se conectar. Expanda a seção Conectar do seu aplicativoreal. A cadeia de conexão é semelhante a esta.

Server={servername.postgres.database.azure.com};Database={your_database};Port=5432;User Id={adminusername};Password={your_password};Ssl Mode=Require;

Você usa a cadeia de conexão como um segredo do GitHub.

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.

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, o fluxo de trabalho restante pode ter esta aparência.

    name: CI
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
  4. Renomeie seu fluxo de trabalho PostgreSQL for GitHub Actions e adicione as ações de check-out e login. Essas ações verificam o código do seu site e autenticam-se com o Azure usando o(s) segredo(s) do GitHub que você criou anteriormente.

    name: PostgreSQL for GitHub Actions
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
    jobs:
    build:
        runs-on: ubuntu-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 }}
    
  5. Use a ação Deploy do Azure PostgreSQL para ligar-se à sua instância de servidor flexível do Azure Database for PostgreSQL. Substitua POSTGRESQL_SERVER_NAME pelo nome do servidor. Você deve ter um arquivo de dados do Banco de Dados do Azure para PostgreSQL nomeado data.sql no nível raiz do repositório.

     - uses: azure/postgresql@v1
       with:
        connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }}
        server-name: POSTGRESQL_SERVER_NAME
        plsql-file: './data.sql'
    
  6. 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: PostgreSQL for GitHub Actions
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
    
    jobs:
    build:
        runs-on: ubuntu-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/postgresql@v1
      with:
        server-name: POSTGRESQL_SERVER_NAME
        connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }}
        plsql-file: './data.sql'
    
        # 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.

    Registo de execução de ações do GitHub.

Limpeza de recursos

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