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.
Aplica-se a:Banco de Dados SQL do Azure
Comece a usar o GitHub Actions usando um fluxo de trabalho para implantar atualizações de banco de dados no Banco de Dados SQL do Azure.
Pré-requisitos
Você precisa de:
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um repositório do GitHub com um pacote dacpac (
Database.dacpac). Se você não tiver uma conta do GitHub, inscreva-se gratuitamente. - Um banco de dados SQL do Azure. Início Rápido: criar um banco de dados individual do Banco de Dados SQL do Azure.
- Um arquivo .dacpac para importar para o banco de dados.
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. Esse arquivo tem as 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 | 2. Implantar o banco de dados. |
Gerar as credenciais de implantação
Para usar a ação de Logon do Azure com o OIDC, você precisa configurar uma credencial de identidade federada em um aplicativo do Microsoft Entra ou uma identidade gerenciada atribuída pelo usuário.
Opção 1: Aplicativo Microsoft Entra
- Crie um aplicativo 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
- 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 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 de SQL
No portal do Azure, acesse o Banco de Dados SQL do Azure 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.
Você definirá a cadeia de conexão como um segredo do GitHub, AZURE_SQL_CONNECTION_STRING.
Configurar os segredos do GitHub
Você precisa fornecer a ID do cliente, a ID do locatário e a ID da assinatura do seu aplicativo para a ação de logon. 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 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 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 o segredo da cadeia de conexão SQL
No GitHub, acesse seu repositório.
Acesse Configurações no menu de navegação.
Selecione Segurança > Segredos e variáveis > Ações.
Selecione Novo segredo de repositório.
Cole sua cadeia de conexão SQL. Dê ao segredo o nome
AZURE_SQL_CONNECTION_STRING.Selecione Adicionar segredo.
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, seu fluxo de trabalho restante pode ter esta aparência.name: SQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ]Renomeie o fluxo de trabalho
SQL for GitHub Actionse adicione as ações de check-out e logon. Essas ações farão o check-out do código do site e a autenticação com o Azure usando o segredo do GitHubAZURE_CREDENTIALScriado 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 Implantar do Azure SQL para se conectar à sua instância SQL. Você deve ter um pacote dacpac (
Database.dacpac) no nível raiz do seu repositório. Use o segredoAZURE_SQL_CONNECTION_STRINGdo GitHub que você criou anteriormente.- uses: azure/sql-action@v2.3 with: connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }} path: './Database.dacpac' action: 'publish'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: 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
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 SQL do Azure e o repositório não forem mais necessários, limpe os recursos implantados excluindo o grupo de recursos e seu repositório do GitHub.