Usar ações do GitHub para se conectar ao 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
Necessita de:
- Uma conta do Azure com uma subscrição 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. Esta definição contém as várias etapas e parâmetros que compõem o fluxo de trabalho.
O ficheiro tem duas secções:
Secção | Tarefas |
---|---|
Autenticação | 1.1. Gere credenciais de implantação. |
Implementar | 1. Implante o banco de dados. |
Gerar credenciais de implantação
Crie uma entidade de serviço com o comando az ad sp create-for-rbac na CLI do Azure. Execute este comando com o Azure Cloud Shell no portal do Azure ou selecionando o botão Experimentar .
az ad sp create-for-rbac --name "myML" --role contributor \
--scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
--json-auth
O parâmetro --json-auth
está disponível nas versões >da CLI do Azure = 2.51.0. Versões anteriores a este uso --sdk-auth
com um aviso de descontinuação.
No exemplo acima, substitua os espaços reservados pela ID da assinatura, nome do grupo de recursos e nome do aplicativo. A saída é um objeto JSON com as credenciais de atribuição de função que fornecem acesso ao seu aplicativo do Serviço de Aplicativo semelhante ao abaixo. Copie este objeto JSON para mais tarde.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
Copiar a cadeia de conexão SQL
No portal do Azure, vá para o Banco de Dados SQL do Azure e abra as cadeias de conexão de configuraçõ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 conexão é semelhante a essa saída.
Server=tcp:my-sql-server.database.windows.net,1433;Initial Catalog={your-database};Persist Security Info=False;User ID={admin-name};Password={your-password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
Você definirá a cadeia de conexão como um segredo do GitHub, AZURE_SQL_CONNECTION_STRING
.
Configurar os segredos do GitHub
No GitHub, vá para o seu repositório.
Vá para Configurações no menu de navegação.
Selecione Segredos de Segurança > e Ações de variáveis>.
Selecione Novo segredo do repositório.
Cole toda a saída JSON do comando CLI do Azure no campo de valor do segredo. Dê o nome
AZURE_CREDENTIALS
ao segredo .Selecione Add secret (Adicionar segredo).
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 Segredos de Segurança > e Ações de variáveis>.
Selecione Novo segredo do repositório.
Cole sua cadeia de conexão SQL. Dê o nome
AZURE_SQL_CONNECTION_STRING
ao segredo .Selecione Add secret (Adicionar segredo).
Adicione o seu fluxo de trabalho
Vá para Ações para seu repositório 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, o 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 Actions
e 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_CREDENTIALS
GitHub 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@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }}
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_STRING
GitHub criado anteriormente.- uses: azure/sql-action@v2 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/workflows
pasta 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@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - uses: azure/sql-action@v2 with: connection-string: ${{ secrets.AZURE_SQL_CONNECTION_STRING }} path: './Database.dacpac' action: 'Publish' # Azure logout - name: logout run: | az logout
Revisar sua implantação
Vá para Ações para seu repositório GitHub.
Abra o primeiro resultado para ver os logs detalhados da execução do seu fluxo de trabalho.
Clean up resources (Limpar 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.