Guia de início rápido: implantar arquivos Bicep usando ações do GitHub
O GitHub Actions é um conjunto de recursos no GitHub para automatizar seus fluxos de trabalho de desenvolvimento de software. Neste início rápido, você usa as Ações do GitHub para implantação do Azure Resource Manager para automatizar a implantação de um arquivo Bicep no Azure.
Ele fornece uma breve introdução às ações do GitHub e arquivos Bicep. Se você quiser etapas mais detalhadas sobre como configurar as ações e o projeto do GitHub, consulte Implantar recursos do Azure usando ações do Bicep e do GitHub.
Pré-requisitos
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
- Uma conta GitHub. Se não tiver uma, inscreva-se gratuitamente.
- Um repositório GitHub para armazenar seus arquivos Bicep e seus arquivos de fluxo de trabalho. Para criar um, consulte Criando um novo repositório.
Criar grupo de recursos
Crie um grupo de recursos. Mais adiante neste início rápido, você implanta seu arquivo Bicep neste grupo de recursos.
az group create -n exampleRG -l westus
Gerar credenciais de implantação
Para usar a ação Logon do Azure com o OIDC, você precisa configurar uma credencial de identidade federada em um aplicativo Microsoft Entra ou uma identidade gerenciada atribuída pelo usuário.
Opção 1: Aplicação 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 fluxo de trabalho das Ações do GitHub.
- Atribua uma função apropriada à sua entidade de serviço pelo portal do Azure, CLI do Azure ou Azure PowerShell.
- Configure uma credencial de identidade federada em um aplicativo Microsoft Entra para confiar tokens emitidos pelo GitHub Actions em 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 à 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 tokens emitidos pelas Ações do GitHub em seu repositório do GitHub.
Configurar os segredos do GitHub
Você precisa fornecer a ID do cliente, a ID do diretório (locatário) e a ID da assinatura do aplicativo 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 Segredos de Segurança > e Ações de variáveis>.
Selecione Novo segredo do repositório.
Nota
Para melhorar a segurança do fluxo de trabalho em repositórios públicos, use 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_ID
eAZURE_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 de Cliente AZURE_SUBSCRIPTION_ID ID de Subscrição AZURE_TENANT_ID ID do Diretório (inquilino) Nota
Por motivos de segurança, recomendamos o uso de Segredos do GitHub em vez de passar valores diretamente para o fluxo de trabalho.
Adicionar um arquivo Bicep
Adicione um arquivo Bicep ao seu repositório GitHub. O seguinte arquivo Bicep cria uma conta de armazenamento:
@minLength(3)
@maxLength(11)
param storagePrefix string
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_RAGRS'
'Standard_ZRS'
'Premium_LRS'
'Premium_ZRS'
'Standard_GZRS'
'Standard_RAGZRS'
])
param storageSKU string = 'Standard_LRS'
param location string = resourceGroup().location
var uniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: uniqueStorageName
location: location
sku: {
name: storageSKU
}
kind: 'StorageV2'
properties: {
supportsHttpsTrafficOnly: true
}
}
output storageEndpoint object = stg.properties.primaryEndpoints
O arquivo Bicep requer um parâmetro chamado storagePrefix com 3 a 11 caracteres.
Você pode colocar o arquivo em qualquer lugar do repositório. O exemplo de fluxo de trabalho na próxima seção pressupõe que o arquivo Bicep é chamado main.bicep e é armazenado na raiz do repositório.
Criar um fluxo de trabalho
Um fluxo de trabalho define as etapas a serem executadas quando acionado. É um arquivo YAML (.yml) no caminho .github/workflows/ do seu repositório. A extensão do arquivo de fluxo de trabalho pode ser .yml ou .yaml.
Para criar um fluxo de trabalho, execute as seguintes etapas:
No repositório GitHub, selecione Ações no menu superior.
Selecione Novo fluxo de trabalho.
Selecione configurar um fluxo de trabalho você mesmo.
Renomeie o arquivo de fluxo de trabalho se preferir um nome diferente de main.yml. Por exemplo: deployBicepFile.yml.
Substitua o conteúdo do arquivo yml com o seguinte código:
on: [push] name: Azure ARM permissions: id-token: write contents: read jobs: build-and-deploy: runs-on: ubuntu-latest steps: # Checkout code - uses: actions/checkout@main # Log into Azure - uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }} # Deploy Bicep file - name: deploy uses: azure/arm-deploy@v1 with: subscriptionId: ${{ secrets.AZURE_SUBSCRIPTION }} resourceGroupName: ${{ secrets.AZURE_RG }} template: ./main.bicep parameters: 'storagePrefix=mystore storageSKU=Standard_LRS' failOnStdErr: false
Selecione Confirmar alterações.
Selecione Confirmar diretamente na ramificação principal.
Selecione Confirmar novo arquivo (ou Confirmar alterações).
A atualização do arquivo de fluxo de trabalho ou do arquivo Bicep aciona o fluxo de trabalho. O fluxo de trabalho começa logo após você confirmar as alterações.
Verificar o status do fluxo de trabalho
- Selecione a guia Ações . Você verá um fluxo de trabalho Criar deployBicepFile.yml listado. Leva de 1 a 2 minutos para executar o fluxo de trabalho.
- Selecione o fluxo de trabalho para abri-lo e verifique se o
Status
éSuccess
.
Clean up resources (Limpar recursos)
Quando o grupo de recursos e o repositório não forem mais necessários, limpe os recursos implantados excluindo o grupo de recursos e o repositório GitHub.
az group delete --name exampleRG