Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:Banco de Dados SQL do Azure
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 SQL do Azure.
Pré-requisitos
Precisas:
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um repositório GitHub com um pacote dacpac (
Database.dacpac). Se você não tiver uma conta no GitHub, inscreva-se gratuitamente. - Um Banco de Dados SQL do Azure. Guia de início rápido: crie um banco de dados único do Banco de Dados SQL do Azure.
- Um arquivo .dacpac para importar para seu banco de dados.
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. Este arquivo tem as etapas e os parâmetros que compõem o fluxo de trabalho.
O ficheiro tem duas secções:
| Seção | Tarefas |
|---|---|
| Autenticação | 1. Gere credenciais de implantação. |
| Implementar | 2. Implante o banco de dados. |
Gerar credenciais de implantação
Para usar a ação Azure Login com OIDC, é necessário configurar uma credencial de identidade federada num aplicativo Microsoft Entra ou numa identidade gerida atribuída pelo utilizador.
Opção 1: Aplicação Microsoft Entra
- Crie uma aplicação Microsoft Entra com uma entidade de serviço através do portal do Azure, CLI do Azure (Interface de Linha de Comandos) ou PowerShell do Azure.
- Copie os valores para ID do cliente, ID da assinatura e ID do diretório (locatário) para usar posteriormente no fluxo de trabalho das Ações do GitHub.
- Atribua uma função apropriada à sua entidade de serviço através do Portal do Azure, Azure CLI ou Azure PowerShell.
- Configure uma credencial de identidade federada num aplicativo Microsoft Entra para confiar tokens emitidos pelo GitHub Actions no seu repositório GitHub.
Opção 2: Identidade gerenciada atribuída pelo usuário
- Crie 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 fluxo de trabalho das Ações do GitHub.
- Atribua uma função apropriada à identidade gerida atribuída ao utilizador.
- Configure uma credencial de identidade federada numa identidade gerida atribuída ao utilizador para confiar em tokens emitidos pelo GitHub Actions no seu repositório GitHub.
Copiar a cadeia de conexão SQL
No portal do Azure, vá para o Banco de Dados SQL do Azure e abra ascadeias de conexãode configurações>. Copie a cadeia de ligação de ADO.NET. Substitua os valores de espaço reservado para your_database e your_password.
Você definirá a cadeia de conexão como um segredo do GitHub, AZURE_SQL_CONNECTION_STRING.
Configurar os segredos do GitHub
Você precisa fornecer o ID do cliente, o ID do diretório (locatário) e o ID da assinatura da sua aplicação 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, vá para o seu repositório.
Selecione Segurança > Segredos e variáveis > Ações.
Selecione Novo segredo do repositório.
Observação
Para aumentar a segurança do fluxo de trabalho em repositórios públicos, utilize segredos de ambiente em vez de segredos de 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 estes valores do seu 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 subscrição AZURE_TENANT_ID ID do diretório (inquilino) Observação
Por motivos de segurança, recomendamos o uso de Segredos do GitHub em vez de passar valores diretamente para o fluxo de trabalho.
Adicionar o segredo da cadeia de conexão SQL
No GitHub, vá para o seu repositório.
Vá para Configurações no menu de navegação.
Selecione Segurança > Segredos e variáveis > Ações.
Selecione Novo segredo do repositório.
Cole sua cadeia de conexão SQL. Dê ao segredo o nome
AZURE_SQL_CONNECTION_STRING.Selecione Adicionar segredo.
Adicione o seu fluxo de trabalho
Vá para Ações para o seu repositório do GitHub.
Selecione Configurar seu fluxo de trabalho você mesmo.
Exclua tudo após a
on:seção do seu arquivo de fluxo de trabalho. Por exemplo, seu fluxo de trabalho restante pode ter esta aparência.name: SQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ]Renomeie seu fluxo de trabalho
SQL for GitHub Actionse adicione as ações de check-out e login. Essas ações verificam o código do seu site e são autenticadas com o Azure usando o segredo doAZURE_CREDENTIALSGitHub que você criou anteriormente.name: SQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: windows-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 Implantação do SQL do Azure para se conectar à sua instância SQL. Você deve ter um pacote dacpac (
Database.dacpac) no nível raiz do repositório. Use o segredo doAZURE_SQL_CONNECTION_STRINGGitHub criado anteriormente.- uses: azure/sql-action@v2.3 with: connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }} path: './Database.dacpac' action: 'publish'Conclua seu fluxo de trabalho adicionando uma ação para fazer logout do Azure. Aqui está o fluxo de trabalho concluído. O arquivo aparece na
.github/workflowspasta do repositório.name: SQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ] jobs: build: runs-on: windows-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/sql-action@v2.3 with: connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }} path: './Database.dacpac' action: 'publish' # Azure logout - name: logout run: | az logout
Reveja a sua implementação
Vá para Ações para o seu repositório do GitHub.
Abra o primeiro resultado para ver os logs detalhados da execução do seu fluxo de trabalho.
Limpeza de recursos
Quando o banco de dados SQL e o repositório do Azure não forem mais necessários, limpe os recursos implantados excluindo o grupo de recursos e o repositório do GitHub.