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
- Cree una aplicación de Microsoft Entra con una entidad de servicio mediante Azure Portal, la CLI de Azure o Azure PowerShell.
- Copie los valores de Id. de cliente, Id. de suscripción e Id. de directorio (inquilino) para usarlos más adelante en el flujo de trabajo de Acciones de GitHub.
- Asigne un rol adecuado a la entidad de servicio con Azure Portal, la CLI de Azureo Azure PowerShell.
- Configurar una credencial de identidad federada en una aplicación de Microsoft Entra para confiar en tokens emitidos por Acciones de GitHub en el repositorio de GitHub.
Opción 2: identidad administrada asignada por el usuario
- Creación de una identidad administrada asignada por el usuario.
- Copie los valores de Id. de cliente, Id. de suscripción e Id. de directorio (inquilino) para usarlos más adelante en el flujo de trabajo de Acciones de GitHub.
- Asigne un rol apropiado a la identidad administrada asignada por el usuario.
- Configurar una credencial de identidad federada en una identidad administrada asignada por el usuario para confiar en los tokens emitidos por Acciones de GitHub en el repositorio de GitHub.
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.
En GitHub, vaya al repositorio.
Seleccione Seguridad > Secretos y variables > Acciones.
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.
Cree secretos para
AZURE_CLIENT_ID
,AZURE_TENANT_ID
yAZURE_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:
En el repositorio de GitHub, seleccione Actions (Acciones) en el menú superior.
Seleccione New workflow (Nuevo flujo de trabajo).
Seleccione Set up a workflow yourself (Configurar un flujo de trabajo personalmente).
Cambie el nombre del archivo de flujo de trabajo si prefiere otro distinto a main.yml. Por ejemplo: deployBicepFile.yml.
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
Seleccione Commit changes (Confirmar cambios).
Seleccione Commit directly to the main branch (Confirmar directamente en la rama principal).
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
- 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.
- Seleccione el flujo de trabajo para abrirlo y compruebe que
Status
esSuccess
.
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