Início Rápido: Usar o GitHub Actions para se conectar ao Banco de Dados do Azure para PostgreSQL com Servidor Flexível

APLICA-SE A:Banco de Dados do Azure para PostgreSQL – Servidor individual Banco de Dados do Azure para PostgreSQL – Servidor flexível

Importante

O Banco de Dados do Azure para PostgreSQL – Servidor Único está prestes a ser desativado. É altamente recomendável atualizar para o Banco de Dados do Azure para PostgreSQL – Servidor Flexível. Para obter mais informações sobre a migração para o Banco de Dados do Azure para PostgreSQL – Servidor Flexível, veja O que está acontecendo com o Banco de Dados do Azure para PostgreSQL Servidor único?.

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 PostgreSQL com servidor flexível.

Pré-requisitos

Você precisa de:

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

Crie uma entidade de serviço com o comando az ad sp create-for-rbac na CLI do Azure. Execute esse 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 essa usam --sdk-auth com um aviso de substituiçã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 aplicativo do Serviço de Aplicativo semelhante ao mostrado abaixo. Copie esse objeto JSON para uso posterior.

  {
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
  }

Copiar a cadeia de conexão do Banco de Dados do Azure para PostgreSQL com Servidor Flexível

No portal do Azure, vá para a sua instância do Banco de Dados do Azure para PostgreSQL com 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. A cadeia de conexão é semelhante ao exemplo a seguir.

Importante

  • Para o Banco de Dados do Azure para PostgreSQL com Servidor Único, use user=adminusername@servername. Observe que @servername é obrigatório.
  • Para o Banco de Dados do Azure para PostgreSQL com Servidor Flexível, 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, acesse seu repositório.

  2. Acesse Configurações no menu de navegação.

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

    Captura de tela mostrando a adição de um segredo

  4. Selecione Novo segredo de repositório.

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

  6. Selecione Adicionar segredo.

Adicionar seu fluxo de trabalho

  1. Acesse Ações para seu repositório do GitHub.

  2. Selecione Configurar seu fluxo de trabalho por conta própria.

  3. Exclua tudo depois da seção on: do seu arquivo de fluxo de trabalho. Por exemplo, o fluxo de trabalho restante pode ter a aparência a seguir.

    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 entrada. Essas ações farão o check-out do código do site e a autenticação com o Azure usando o(s) segredo(s) do GitHub criado(s) 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 PostgreSQL do Azure para se conectar à sua instância do Banco de Dados do Azure para PostgreSQL com Servidor Flexível. Substitua POSTGRESQL_SERVER_NAME pelo nome do seu servidor. Você deve ter um arquivo de dados do Banco de Dados do Azure para PostgreSQL com Servidor Flexível chamado data.sql no nível raiz do seu 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 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/workflows do seu 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
    

Examinar sua implantação

  1. Acesse Ações para seu repositório do GitHub.

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

    Log das execuções do GitHub Actions.

Limpar os recursos

Quando o repositório e o banco de dados do seu Banco de Dados do Azure para PostgreSQL com Servidor Flexível não forem mais necessários, limpe os recursos que você implantou excluindo o grupo de recursos e o seu repositório do GitHub.

Próximas etapas