Quickstart: Use GitHub Actions para ligar ao Azure PostgreSQL

APLICA-SE A: Base de Dados do Azure para PostgreSQL - Servidor Único

APLICA-SE A: Base de Dados do Azure para PostgreSQL - Base de Dados do Azure para PostgreSQL de servidor único - Servidor Flexível

Começa com GitHub Actions utilizando um fluxo de trabalho para implementar atualizações de bases de dados para Base de Dados do Azure para PostgreSQL.

Pré-requisitos

Vai precisar de:

Visão geral do ficheiro de fluxo de trabalho

Um fluxo de trabalho GitHub Actions é definido por um ficheiro YAML (.yml) no caminho do /.github/workflows/ seu repositório. Esta definição contém os vários passos e parâmetros que compõem o fluxo de trabalho.

O ficheiro tem duas secções:

Section Tarefas
Autenticação 1. Gerar credenciais de implantação.
Implementar 1. Desdobre a base de dados.

Gerar credenciais de implantação

Crie um diretor de serviço com o comando ad sp create-for-rbac no Azure CLI. Executar este comando com Cloud Shell Azure no portal do Azure ou selecionando o botão Tentar.

az ad sp create-for-rbac --name "myML" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
                            --sdk-auth

No exemplo acima, substitua os espaços reservados pelo seu ID de subscrição, nome de grupo de recursos e nome da aplicação. A saída é um objeto JSON com as credenciais de atribuição de funções que fornecem acesso à sua aplicação Serviço de Aplicações semelhante abaixo. Copie este objeto JSON para mais tarde.

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

Copie a cadeia de ligação PostgreSQL

Na portal do Azure, vá ao servidor Base de Dados do Azure para PostgreSQL e abraas cadeias de ligaçãode definiçõ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 ligação será semelhante a esta.

Importante

  • Para a utilização user=adminusername@servername de um único servidor . Note o @servername que é necessário.
  • Para servidor flexível, utilize 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

Usará a cadeia de ligação como segredo do GitHub.

Configure os segredos do GitHub

  1. Em GitHub, vá ao seu repositório.

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

    Screenshot de adicionar um segredo

  3. Selecione novo segredo do repositório.

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

  5. Selecione Add secret (Adicionar segredo).

Adicione o seu fluxo de trabalho

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

  2. Selecione Configurar o seu fluxo de trabalho por si mesmo.

  3. Elimine tudo após a on: secção do seu ficheiro de fluxo de trabalho. Por exemplo, o seu fluxo de trabalho restante pode ser assim.

    name: CI
    
    on:
    push:
        branches: [ main ]
    pull_request:
        branches: [ main ]
    
  4. Mude o nome do seu fluxo de PostgreSQL for GitHub Actions trabalho e adicione as ações de check-out e login. Estas ações irão verificar o código do seu site e autenticar-se com o Azure utilizando os segredos do GitHub que 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. Utilize a ação Azure PostgreSQL Deploy para ligar à sua instância PostgreSQL. Substitua-o POSTGRESQL_SERVER_NAME pelo nome do seu servidor. Deve ter um ficheiro de dados PostgreSQL nomeado data.sql ao nível da raiz do seu repositório.

     - uses: azure/postgresql@v1
       with:
        connection-string: ${{ secrets.AZURE_POSTGRESQL_CONNECTION_STRING }}
        server-name: POSTGRESQL_SERVER_NAME
        sql-file: './data.sql'
    
  6. Complete o seu fluxo de trabalho adicionando uma ação ao logout da Azure. Aqui está o fluxo de trabalho completo. O ficheiro aparecerá na .github/workflows pasta 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 }}
        sql-file: './data.sql'
    
        # Azure logout
    - name: logout
      run: |
         az logout
    

Reveja a sua implementação

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

  2. Abra o primeiro resultado para ver registos detalhados do funcionaamento do seu fluxo de trabalho.

    Log of GitHub Actions run

Limpar os recursos

Quando a sua base de dados e repositório Azure PostgreSQL já não forem necessárias, limpe os recursos que implementou eliminando o grupo de recursos e o seu repositório GitHub.

Passos seguintes