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

APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Único Banco de Dados do Azure para PostgreSQL - Servidor Flexível

Importante

O Banco de Dados do Azure para PostgreSQL - Servidor Único está no caminho da desativação. É altamente recomendável que você atualize para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único 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 o servidor flexível PostgreSQL.

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:

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

Copie a cadeia de conexão de servidor flexível 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 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 esta.

Importante

  • Para o Banco de Dados do Azure para servidor único PostgreSQL, use user=adminusername@servername . Observe o @servername é obrigatório.
  • Para o Banco de Dados do Azure para servidor flexível PostgreSQL, use user= adminusername sem o @servername.
psql host={servername.postgres.database.azure.com} port=5432 dbname={your_database} user={adminusername} password={your_database_password} sslmode=require

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

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

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

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

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: 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@v1
        with:
            creds: ${{ secrets.AZURE_CREDENTIALS }}
    
  5. Use a ação Implantar do Azure PostgreSQL para se conectar à sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL. Substitua POSTGRESQL_SERVER_NAME pelo nome do servidor. Você deve ter um arquivo de dados de servidor flexível 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@v1
        with:
            client-id: ${{ secrets.AZURE_CREDENTIALS }}
    
    - 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
    

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 de ações do GitHub executado.

Clean up resources (Limpar recursos)

Quando o banco de dados e o repositório flexíveis 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.

Próximos passos