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:
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuita.
- Um repositório GitHub com dados de amostra (
data.sql
). Se não tem uma conta GitHub, inscreva-se gratuitamente. - Um servidor Base de Dados do Azure para PostgreSQL.
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
Em GitHub, vá ao seu repositório.
Selecione Segredos de Segurança > e variáveis > Ações.
Selecione novo segredo do repositório.
Cole toda a saída JSON do comando Azure CLI para o campo de valor do segredo. Dê o nome
AZURE_CREDENTIALS
ao segredo.Selecione Add secret (Adicionar segredo).
Adicione o seu fluxo de trabalho
Vá a Ações para o seu repositório GitHub.
Selecione Configurar o seu fluxo de trabalho por si mesmo.
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 ]
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 }}
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 nomeadodata.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'
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
Vá a Ações para o seu repositório GitHub.
Abra o primeiro resultado para ver registos detalhados do funcionaamento do seu fluxo de trabalho.
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.