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
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Uma conta do GitHub. Caso ainda não tenha uma, inscreva-se gratuitamente.
- Um repositório do GitHub para armazenar seus arquivos do Bicep e seus arquivos de fluxo de trabalho. Para criá-lo, confira Como criar um repositório.
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
- 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 seu fluxo de trabalho do GitHub Actions.
- Atribua uma função apropriada ao seu diretor de serviço portal do Azure, CLI do Azure, ou Azure PowerShell.
- Configure uma credencial de identidade federada em um aplicativo Microsoft Entra para confiar em tokens emitidos pelo GitHub Actions para seu repositório GitHub.
Opção 2: Identidade gerenciada atribuída pelo usuário
- Criar 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 seu fluxo de trabalho do GitHub Actions.
- 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 em tokens emitidos pelo GitHub Actions para seu repositório GitHub.
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.
No GitHub, acesse seu repositório.
Selecione Segurança > Segredos e variáveis > Ações.
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.
Crie segredos para
AZURE_CLIENT_ID
,AZURE_TENANT_ID
eAZURE_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:
No repositório GitHub, selecione Actions no menu superior.
Selecione Novo fluxo de trabalho.
Selecione Configurar fluxo de trabalho por conta própria.
Renomeie o arquivo do fluxo de trabalho se preferir usar um nome diferente de main.yml. Por exemplo: deployBicepFile.yml.
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
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 dispara o fluxo de trabalho. O fluxo de trabalho é iniciado logo após o commit das alterações.
Verificar status do fluxo de trabalho
- 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.
- 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