Usar o GitHub Actions para se conectar ao Banco de Dados SQL do Azure
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. 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 | Tarefas |
---|---|
Autenticação | 1,1. Gerar as credenciais de implantação. |
Implantar | 1. Implantar o banco de dados. |
Gerar as credenciais de implantação
Crie uma entidade de serviço com o comando az ad sp create-for-rbac na CLI do Azure. Execute esse 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 essa usam --sdk-auth
com um aviso de substituiçã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 aplicativo do Serviço de Aplicativo semelhante ao mostrado abaixo. Copie esse objeto JSON para uso posterior.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
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
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 toda a saída JSON do comando da CLI do Azure no campo valor do segredo. Dê ao segredo o nome
AZURE_CREDENTIALS
.Selecione Adicionar segredo.
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, o fluxo de trabalho restante pode ter a aparência a seguir.name: SQL for GitHub Actions on: push: branches: [ main ] pull_request: branches: [ main ]
Renomeie o fluxo de trabalho
SQL for GitHub Actions
e 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_CREDENTIALS
criado 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 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_STRING
do GitHub que você criou anteriormente.- uses: azure/sql-action@v2 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/workflows
do 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@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
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.