Partilhar via


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

Criar grupo de recursos

Crie um grupo de recursos. Mais adiante neste início rápido, você implantará seu arquivo Bicep neste grupo de recursos.

az group create -n exampleRG -l westus

Gerar credenciais de implantação

Suas ações do GitHub são executadas sob uma identidade. Use o comando az ad sp create-for-rbac para criar uma entidade de serviço para a identidade. Conceda à entidade de serviço a função de colaborador para o grupo de recursos criado na sessão anterior para que a ação do GitHub com a identidade possa criar recursos nesse grupo de recursos. Recomenda-se que conceda o acesso mínimo necessário.

az ad sp create-for-rbac --name {app-name} --role contributor --scopes /subscriptions/{subscription-id}/resourceGroups/exampleRG --json-auth

Substitua o espaço reservado {app-name} pelo nome do seu aplicativo. Substitua {subscription-id} pelo seu ID de subscrição.

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.

  {
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    ...
  }

Copie este objeto JSON para mais tarde. Você só precisará das seções com os clientIdvalores , clientSecret, subscriptionIde tenantId . Certifique-se de não ter uma vírgula extra no final da última linha, por exemplo, a tenantId linha no exemplo anterior, ou então resultará em um arquivo JSON inválido. Você receberá um erro durante a implantação dizendo "Falha de login com erro: o conteúdo não é um objeto JSON válido. Verifique se o 'auth-type' está correto."

Configurar os segredos do GitHub

Crie segredos para suas credenciais do Azure, grupo de recursos e assinaturas. Você usará esses segredos na seção Criar fluxo de trabalho .

  1. No GitHub, navegue até o repositório.

  2. Selecione Configurações > Segredos e variáveis > Ações > Novo segredo do repositório.

  3. Cole toda a saída JSON do comando CLI do Azure no campo de valor do segredo. Nomeie o segredo AZURE_CREDENTIALS.

  4. Crie outro segredo chamado AZURE_RG. Adicione o nome do seu grupo de recursos ao campo de valor do segredo (exampleRG).

  5. Crie outro segredo chamado AZURE_SUBSCRIPTION. Adicione o ID da sua subscrição ao campo de valor do segredo (exemplo: 90fd3f9d-4c61-432d-99ba-1273f236afa2).

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:

  1. No repositório GitHub, selecione Ações no menu superior.

  2. Selecione Novo fluxo de trabalho.

  3. Selecione configurar um fluxo de trabalho você mesmo.

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

  5. Substitua o conteúdo do arquivo yml com o seguinte código:

    name: Deploy Bicep file
    on: [push]
    jobs:
      build-and-deploy:
        runs-on: ubuntu-latest
        steps:
    
        - name: Checkout code
          uses: actions/checkout@main
    
        - name: Log into Azure
          uses: azure/login@v1
          with:
            creds: ${{ secrets.AZURE_CREDENTIALS }}
    
        - name: Deploy Bicep file
          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
    

    Substitua mystore pelo prefixo do nome da sua própria conta de armazenamento.

    Nota

    Em vez disso, você pode especificar um arquivo de parâmetros de formato JSON na ação Implantar ARM (exemplo: .azuredeploy.parameters.json).

    A primeira seção do arquivo de fluxo de trabalho inclui:

    • name: O nome do fluxo de trabalho.
    • on: O nome dos eventos do GitHub que acionam o fluxo de trabalho. O fluxo de trabalho é acionado quando há um evento push na ramificação principal.
  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 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

  1. 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.
  2. 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

Próximos passos