Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.
Pré-requisitos
Você precisa de:
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um repositório do GitHub com os dados de exemplo (
data.sql). Se você não tiver uma conta do GitHub, inscreva-se gratuitamente. - Uma instância do Banco de Dados do Azure para PostgreSQL com Servidor Flexível.
- Crie um Banco de Dados do Azure para PostgreSQL.
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 | Tasks |
|---|---|
| Autenticação | 1. Gerar as credenciais de implantação. |
| Implantar | 1. Implantar o banco de dados. |
Gerar as credenciais de implantação
Para usar a ação de login do Azure com o OIDC, você precisa configurar uma credencial de identidade federada em um aplicativo Microsoft Entra ou uma identidade gerenciada atribuída pelo usuário.
Opção 1: Aplicativo Microsoft Entra
- Crie um aplicativo do Microsoft Entra com uma entidade de serviço pelo portal do Azure, CLI do Azure ou Azure PowerShell.
- Copie os valores para ID do cliente, ID da assinatura e ID do diretório (locatário) para usar posteriormente no seu fluxo de trabalho do GitHub Actions.
- Atribua uma função apropriada ao seu diretor de serviço portal do Azure, CLI do Azure, ou Azure PowerShell.
- Configure uma credencial de identidade federada em um aplicativo Microsoft Entra para confiar em tokens emitidos pelo GitHub Actions para seu repositório GitHub.
Opção 2: Identidade gerenciada atribuída pelo usuário
- Criar uma identidade gerenciada atribuída pelo usuário.
- Copie os valores para ID do cliente, ID da assinatura e ID do diretório (locatário) para usar posteriormente no seu fluxo de trabalho do GitHub Actions.
- Atribua uma função apropriada à sua identidade gerenciada atribuída pelo usuário.
- Configure uma credencial de identidade federada em uma identidade gerenciada atribuída pelo usuário para confiar em tokens emitidos pelo GitHub Actions para seu repositório GitHub.
Copiar a cadeia de conexão do Banco de Dados do Azure para PostgreSQL
No portal do Azure, acesse a instância do 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-se por meio do aplicativo, copie a cadeia de conexão ADO.NET e substitua o valor do espaço reservado {your_password} pela senha real. A cadeia de conexão é semelhante ao exemplo a seguir.
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 a ID do cliente, a ID do diretório (locatário) e a ID da assinatura do seu aplicativo 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.
No GitHub, acesse seu repositório.
Selecione Segurança > Segredos e variáveis > Ações.
Selecione Novo segredo de repositório.
Observação
Para aumentar a segurança do fluxo de trabalho em repositórios públicos, use segredos do ambiente em vez de segredos do 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.
Crie segredos para
AZURE_CLIENT_ID,AZURE_TENANT_IDeAZURE_SUBSCRIPTION_ID. Copie esses valores do 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 assinatura AZURE_TENANT_ID ID do diretório (locatário) Observação
Por motivos de segurança, recomendamos usar os Segredos do GitHub em vez de passar valores diretamente para o fluxo de trabalho.
Adicionar seu fluxo de trabalho
Acesse Ações para seu repositório do GitHub.
Selecione Configurar seu fluxo de trabalho por conta própria.
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 ]Renomeie seu fluxo de trabalho
PostgreSQL for GitHub Actionse 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@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}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_NAMEpelo nome do seu servidor. Você deve ter um arquivo de dados do Banco de Dados do Azure para PostgreSQL nomeadodata.sqlno 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'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/workflowsdo 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@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
Examinar sua implantação
Acesse Ações para seu repositório do GitHub.
Abra o primeiro resultado para ver os logs detalhados da execução do fluxo de trabalho.
Limpar os 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.