Compartir a través de


Guía de inicio rápido: implementación de archivos de Bicep mediante Acciones de GitHub

Acciones de GitHub es un conjunto de características de GitHub que automatizan los flujos de trabajo de desarrollo de software. En esta guía de inicio rápido, puede usar Acciones de GitHub para la implementación de Azure Resource Manager y así automatizar la implementación de un archivo de Bicep en Azure.

Proporciona una breve introducción a las acciones de GitHub y los archivos Bicep. Si quiere ver pasos más detallados sobre cómo configurar el proyecto y Acciones de GitHub, vea Implementación de recursos de Azure mediante Bicep y Acciones de GitHub.

Requisitos previos

  • Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
  • Una cuenta de GitHub. Si no tiene ninguna, regístrese gratis.
  • Un repositorio de GitHub para almacenar los archivos de Bicep y los archivos del flujo de trabajo. Para crear uno, vea Creación de un repositorio.

Creación de un grupo de recursos

Cree un grupo de recursos. Más adelante en esta guía de inicio rápido, implementará el archivo Bicep en este grupo de recursos.

az group create -n exampleRG -l westus

Genere las credenciales de implementación.

Para usar acción de inicio de sesión de Azure con OIDC, debe configurar una credencial de identidad federada en una aplicación de Microsoft Entra o en una identidad administrada asignada por el usuario.

Opción 1: aplicaciones de Microsoft Entra

Opción 2: identidad administrada asignada por el usuario

Configuración de los secretos de GitHub

Debe especificar el identificador de cliente, el identificador de directorio (inquilino) y el identificador de suscripción en la acción de inicio de sesión. Estos valores se pueden proporcionar directamente en el flujo de trabajo o se pueden almacenar en secretos de GitHub y se puede hacer referencia a ellos en el flujo de trabajo. Guardar los valores como secretos de GitHub es la opción más segura.

  1. En GitHub, vaya al repositorio.

  2. Seleccione Seguridad > Secretos y variables > Acciones.

    Captura de pantalla de la adición de un secreto

  3. Seleccione New repository secret (Nuevo secreto del repositorio).

    Nota:

    Para mejorar la seguridad del flujo de trabajo en repositorios públicos, use secretos de entorno en lugar de secretos de repositorio. Si el ambiente requiere aprobación, un job no puede acceder a secretos de ambiente hasta que uno de los revisores requeridos lo apruebe.

  4. Cree secretos para AZURE_CLIENT_ID, AZURE_TENANT_ID y AZURE_SUBSCRIPTION_ID. Copie estos valores de la aplicación de Microsoft Entra o identidad administrada asignada por el usuario para los secretos de GitHub:

    Secreto de GitHub Aplicación de Microsoft Entra o identidad administrada asignada por el usuario
    AZURE_CLIENT_ID Id. de cliente
    AZURE_SUBSCRIPTION_ID Id. de suscripción
    AZURE_TENANT_ID Id. de directorio (inquilino)

    Nota:

    Por motivos de seguridad, se recomienda usar secretos de GitHub en lugar de pasar valores directamente al flujo de trabajo.

Incorporación de un archivo de Bicep

Agregue un archivo de Bicep al repositorio de GitHub. El siguiente archivo de Bicep crea una cuenta de almacenamiento:

@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

El archivo de Bicep requiere un parámetro denominado storagePrefix que tiene entre tres y once caracteres.

Puede colocar el archivo en cualquier parte del repositorio. En el ejemplo de flujo de trabajo de la sección siguiente, se supone que el archivo de Bicep se denomina main.bicep y se almacena en la raíz del repositorio.

Creación del flujo de trabajo

Un flujo de trabajo define los pasos que se ejecutarán cuando se desencadene. Es un archivo YAML (.yml) en la ruta de acceso .github/workflows/ del repositorio. La extensión de archivo de flujo de trabajo puede ser .yml o .yaml.

Para crear un flujo de trabajo, siga estos pasos:

  1. En el repositorio de GitHub, seleccione Actions (Acciones) en el menú superior.

  2. Seleccione New workflow (Nuevo flujo de trabajo).

  3. Seleccione Set up a workflow yourself (Configurar un flujo de trabajo personalmente).

  4. Cambie el nombre del archivo de flujo de trabajo si prefiere otro distinto a main.yml. Por ejemplo: deployBicepFile.yml.

  5. Reemplace el contenido del archivo .yml por el código siguiente:

    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. Seleccione Commit changes (Confirmar cambios).

  7. Seleccione Commit directly to the main branch (Confirmar directamente en la rama principal).

  8. Seleccione Commit new file (Confirmar nuevo archivo) (o bien Commit changes (Confirmar cambios)).

La actualización del archivo de flujo de trabajo o del archivo de Bicep desencadena el flujo de trabajo. El flujo de trabajo se inicia justo después de confirmar los cambios.

Comprobación del estado del flujo de trabajo

  1. Seleccione la pestaña Actions (Acciones). Verá en la lista el flujo de trabajo Crear deployBicepFile.yml. El flujo de trabajo tarda un par de minutos en ejecutarse.
  2. Seleccione el flujo de trabajo para abrirlo y compruebe que Status es Success.

Limpieza de recursos

Cuando el repositorio y el grupo de recursos ya no sean necesarios, limpie los recursos que implementó eliminando el grupo de recursos y el repositorio de GitHub.

az group delete --name exampleRG

Pasos siguientes