Exercício – Implantar um arquivo Bicep por meio de fluxos de trabalho do GitHub
GitHub Actions são semelhantes a Azure Pipelines por natureza. Eles fornecem uma forma de automatizar o desenvolvimento e as implantações de software. Neste exercício, você aprenderá a implantar um arquivo Bicep usando um GitHub Action.
Pré-requisitos
- Você precisará de uma conta do GitHub, que pode ser criada gratuitamente aqui.
- Um repositório GitHub também é necessário para armazenar seu arquivo Bicep e fluxos de trabalho criados anteriormente no Exercício – Criar modelos Bicep. Depois de criar seu repositório do GitHub, efetue push do arquivo Bicep nesse repositório.
- Para a implantação no Azure, é necessário o acesso a uma assinatura do Azure, que pode ser criada gratuitamente aqui.
Criar uma entidade de serviço no Azure
Para implantar seus recursos no Azure, você precisará criar uma entidade de serviço que o GitHub possa usar. Portanto, abra um terminal ou use o Cloud Shell no portal do Azure e digite os seguintes comandos:
az login
az ad sp create-for-rbac --name myApp --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/Bicep --sdk-auth
Observação
Não se esqueça de substituir a ID da Assinatura pela sua.
Quando a operação for bem-sucedida, ela deverá gerar um objeto JSON que contenha tenantId
, subscriptionId
, clientId
, clientSecret
e mais algumas propriedades, como a seguir.
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
(...)
}
Anote esse objeto, pois você precisará adicioná-lo aos segredos do GitHub.
Como criar um segredo do GitHub
No repositório do GitHub, navegue até Configurações>Segredos>Ações. Crie um segredo chamado AZURE_CREDENTIALS
e cole todo o objeto JSON que você obteve na etapa anterior.
Crie outro segredo para o nome do grupo de recursos com um nome como AZURE_RG
e outro para a assinatura.
Como criar uma ação do GitHub
Primeiro, navegue até o repositório e selecione o menu Ações. Em seguida, configure um fluxo de trabalho para criar um fluxo de trabalho vazio em seu repositório. Você pode renomear o arquivo com um nome diferente, se preferir.
Substitua o conteúdo do arquivo client.js pelo seguinte snippet:
on: [push] name: Azure ARM jobs: build-and-deploy: runs-on: ubuntu-latest steps: # Checkout code - uses: actions/checkout@main # Log into Azure - uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} # Deploy Bicep file - name: deploy uses: azure/arm-deploy@v1 with: subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }} resourceGroupName: ${{ secrets.AZURE_RG }} template: ./main.bicep parameters: storagePrefix=stg failOnStdErr: false
Fique à vontade para substituir o prefixo da conta de armazenamento pelo seu.
Observação
A primeira parte do fluxo de trabalho define o gatilho e seu nome. O restante define um trabalho e usa algumas tarefas para fazer check-out do código, entrar no Azure e implantar o arquivo Bicep.
Selecione Iniciar commit e insira um título e uma descrição na caixa de diálogo pop-up. Em seguida, selecione Fazer commit diretamente no branch principal e Fazer commit de um novo arquivo.
Navegue até a guia Ações e selecione a ação recém-criada, que deve estar em execução.
Monitore o status e, quando o trabalho for concluído, verifique o portal do Azure para ver se a conta de armazenamento está sendo criada.