Compartilhar via


Início Rápido: Implantar arquivos Bicep usando GitHub Actions

O GitHub Actions é um conjunto de recursos do GitHub para automatizar seus fluxos de trabalho de desenvolvimento de software. Neste início rápido, use o GitHub Actions de implantação do Azure Resource Manager para automatizar a implantação de um arquivo Bicep no Azure.

Ele fornece uma breve introdução a ações do GitHub e arquivos Bicep. Se você quiser etapas mais detalhadas sobre como configurar as ações do GitHub e o projeto, confira Implantar recursos do Azure usando o Bicep e o GitHub Actions.

Pré-requisitos

Criar grupo de recursos

Crie um grupos de recursos. Posteriormente, neste guia de início rápido, você implantará seu arquivo Bicep nesse grupo de recursos.

az group create -n exampleRG -l westus

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

Opção 2: Identidade gerenciada atribuída pelo usuário

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.

  1. No GitHub, acesse seu repositório.

  2. Selecione Segurança > Segredos e variáveis > Ações.

    Captura de tela mostrando a adição de um segredo

  3. 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.

  4. Crie segredos para AZURE_CLIENT_ID, AZURE_TENANT_ID e AZURE_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 um arquivo Bicep

Adicione um arquivo Bicep ao seu repositório do GitHub. O arquivo Bicep a seguir 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 exige 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 considera que o arquivo Bicep é denominado main.bicep e está armazenado na raiz do repositório.

Criar fluxo de trabalho

Um fluxo de trabalho define as etapas a serem executadas quando disparadas. É um arquivo YAML (.yml) no caminho .github/workflows/do do seu repositório. A extensão do arquivo do fluxo de trabalho pode ser .yml ou .yaml.

Para criar um fluxo de trabalho, tome as seguintes etapas:

  1. No repositório GitHub, selecione Actions no menu superior.

  2. Selecione Novo fluxo de trabalho.

  3. Selecione Configurar fluxo de trabalho por conta própria.

  4. Renomeie o arquivo do fluxo de trabalho se preferir usar um nome diferente de main.yml. Por exemplo: deployBicepFile.yml.

  5. Substitua o conteúdo do arquivo yml pelo 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
    
  6. Selecione Confirmar alterações.

  7. Selecione Confirmar diretamente na ramificação principal.

  8. Selecione Confirmar novo arquivo (ou Confirmar alterações).

A atualização do arquivo de fluxo de trabalho ou do arquivo Bicep dispara o fluxo de trabalho. O fluxo de trabalho é iniciado logo após o commit das alterações.

Verificar status do fluxo de trabalho

  1. Selecione a guia Actions. Você verá um fluxo de trabalho chamado Criar deployBicepFile.yml listado. O fluxo de trabalho leva de um a dois minutos para ser executado.
  2. Selecione o fluxo de trabalho para abri-lo e verifique se o Status é Success.

Limpar os recursos

Quando seu grupo de recursos e 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

Próximas etapas