Inicio rápido: Creación e implementación del primer archivo de Bicep con recursos de Microsoft Graph

En este inicio rápido, creará un archivo de Bicep que declara un grupo de seguridad de Microsoft Entra y una identidad de servicio administrada (MSI), que representa un recurso de Microsoft Graph y un recurso de Azure, respectivamente. A continuación, agregue el MSI como propietario del grupo. También aprenderá cómo la extensión de Bicep simplifica el desarrollo al proporcionar seguridad de tipos, validación de sintaxis y autocompletar. Por último, implemente el archivo de Bicep mediante un usuario que ha iniciado sesión.

Importante

En este artículo de inicio rápido se usan referencias de tipo dinámico en lugar de tipos integrados que están en desuso y se retirarán el 24 de enero de 2025. Hasta la fecha de retirada, los tipos integrados, indicados por extension microsoftGraph, coexistirán con los nuevos tipos dinámicos. Si alguno de los archivos de Bicep existentes usa tipos integrados, cambie al uso de tipos dinámicos para evitar problemas futuros de implementación de archivos de Bicep.

Importante

Microsoft Graph Bicep está actualmente en versión preliminar. Consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en la versión beta, en versión preliminar o que todavía no se han publicado para que estén disponibles con carácter general.

Requisitos previos

Adición de un grupo de aplicaciones de Microsoft Graph

Inicie VS Code y cree dos nuevos archivos, main.bicep y bicepconfig.json en la misma carpeta.

A continuación, para poder declarar recursos de Microsoft Graph en un archivo de Bicep, debe habilitar la característica de vista previa de Bicep y especificar las versiones de tipo de Bicep de Microsoft Graph mediante la configuración de bicepconfig.json.

En este ejemplo se usan los recursos v1.0 y se declara un nombre de extensión descriptivo "microsoftGraphV1_0" para hacer referencia a la versión de br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.1.8-preview tipo en el Registro de artefactos Microsoft.

{
    "experimentalFeaturesEnabled": {
        "extensibility": true
    },
    // specify an alias for the version of the v1.0 dynamic types package you want to use
    "extensions": {
      "microsoftGraphV1_0": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.1.8-preview"
    }
}

También puede declarar recursos de Microsoft Graph desde la versión beta y v1.0 en el mismo archivo de Bicep agregando otra referencia a una versión de tipo beta de la Registro de artefactos Microsoft.

En main.bicep, escriba extension microsoftGraphV1_0, donde microsoftGraphV1_0 es el nombre descriptivo para hacer referencia al paquete de tipos dinámicos en el Registro de artefactos Microsoft. La extension instrucción permite al compilador de Bicep saber que incluye los tipos de Microsoft Graph definidos en bicepconfig.json. En la línea siguiente, defina un recurso mediante la resource palabra clave . Escriba resource exampleGroup y agregue un espacio.

extension microsoftGraphV1_0

resource exampleGroup

Al agregar un espacio después del nombre simbólico, se muestra una lista de tipos de recursos. Continúe escribiendo grupo hasta que pueda seleccionar Microsoft.Graph/Groups en las opciones disponibles.

Captura de pantalla de la selección de grupos de Microsoft Graph para el tipo de recurso.

Sugerencia

Si no ve las opciones de IntelliSense en VS Code, asegúrese de que ha instalado la extensión de Bicep tal como se especifica en Requisitos previos. Si ya ha instalado la extensión, dé un tiempo al servicio de lenguaje Bicep para que se inicie después de abrir el archivo Bicep. Una notificación en la esquina inferior derecha le indica que el servicio se está iniciando. Cuando esa notificación desaparece, quiere decir que el servicio se está ejecutando.

Después de seleccionar Microsoft.Graph/Groups, se le muestran las versiones de API disponibles: beta o v1.0. Seleccione siempre la versión 1.0 a menos que no esté disponible o las propiedades de recursos que necesita solo estén disponibles en la versión beta. Para este inicio rápido, use v1.0.

Recorte de pantalla de selección de la versión de la API para el tipo de recurso.

Después de la comilla simple del tipo de recurso, agregue = y un espacio. Se mostrarán las opciones para agregar propiedades al recurso. Seleccione required-properties.

Captura de pantalla de la adición de las propiedades necesarias.

Esta opción agrega todas las propiedades del tipo de recurso que son obligatorias para la implementación. Después de seleccionar esta opción, el grupo tiene las siguientes propiedades:

resource exampleGroup 'Microsoft.Graph/groups@v1.0' = {
  displayName: 
  mailEnabled: 
  mailNickname: 
  securityEnabled: 
  uniqueName: 
}

Proporcione valores para esas propiedades, estableciendo mailEnabled en false y securityEnabled en true. uniqueName representa una clave proporcionada por el cliente inmutable para este recurso de grupo.

Adición de un recurso de identidad administrada

VS Code con la extensión de Bicep simplifica el desarrollo proporcionando fragmentos predefinidos, como un fragmento de código que crea una identidad administrada. En main.bicep, escriba man y seleccione res-managed-identity en la lista y presione [TAB] o [ENTRAR].

Captura de pantalla de la adición de un fragmento de código de recurso.

Nota: Actualmente no se admiten fragmentos de recursos para recursos extensibles , como los recursos de Microsoft Graph.

El archivo Bicep ahora contiene el código siguiente:

resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = {
  name: 'name'
  location: location
}

Puede corregir el error de definición de parámetro que falta agregando una definición de parámetro para location. En la definición de extensión, agregue param location string = resourceGroup().location. Para obtener más información sobre la función que se usa aquí, consulte resourceGroup(). Cambie el nombre de la identidad administrada de name a exampleManagedIdentity.

Convertir la identidad administrada en propietario del recurso de grupo

En el exampleGroup recurso, cree una nueva línea en uniqueName, escriba ow, que muestra a los propietarios como la única opción de propiedad coincidente y, a continuación, presione [TAB] o [ENTRAR].

Captura de pantalla de la adición de una propiedad owners.

La propiedad owners es una matriz, por lo que agregue [] y haga referencia ahora al identificador de entidad de seguridad de la identidad administrada mediante intellisense, escribiendo m y seleccionando managedIdentity (el nombre simbólico de la identidad administrada), escribiendo una propiedad . y seleccionando otras propiedades . y picking principalId.

Captura de pantalla de la referencia a la identidad administrada.

Su archivo main.bicep debería tener ahora un aspecto similar al siguiente:

extension microsoftGraphV1_0

param location string = resourceGroup().location

resource exampleGroup 'Microsoft.Graph/groups@v1.0' = {
  displayName: 'My example group'
  mailEnabled: false
  mailNickname: 'my-example-group'
  securityEnabled: true
  uniqueName: 'myExampleGroup'
  owners: [managedIdentity.properties.principalId]
}

resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = {
  name: 'exampleManagedIdentity'
  location: location
}

Implementación del archivo de Bicep mediante un usuario que ha iniciado sesión

Implemente el archivo bicep iniciando sesión en la CLI de Azure o Azure PowerShell con los ejemplos siguientes. En los ejemplos de la CLI de Azure de esta documentación se usa la consola de Bash.

## Sign in to Azure CLI
az login

## Create a resource group
az group create --name exampleRG --location eastus

## Deploy the Bicep file
az deployment group create --resource-group exampleRG --template-file main.bicep

Una vez finalizada la implementación, debería mostrarse un mensaje indicando que la implementación se realizó correctamente.

Nota:

Debido a retrasos en la replicación, agregar la identidad de servicio administrada (MSI) como propietario del grupo De Microsoft Entra puede provocar un error en la implementación. Espere un poco y vuelva a implementar el mismo archivo de Bicep.

Limpieza de recursos

Cuando los recursos de Azure dejen de ser necesarios, use la CLI de Azure o el módulo de Azure PowerShell para eliminar el grupo de recursos y el recurso del servidor del inicio rápido.

Nota:

Los grupos de recursos son un concepto de Azure y no tienen ningún impacto en los recursos de Microsoft Graph. Los recursos de Microsoft Graph deben limpiarse con una solicitud adicional a Microsoft Graph. Para ello, puede usar la CLI de Azure o Azure PowerShell, la CLI de Microsoft Graph o PowerShell de Microsoft Graph.

En los ejemplos siguientes se muestran comandos para eliminar primero el recurso de Azure y el recurso de Microsoft Graph mediante la CLI de Azure y Azure PowerShell.

## Delete the resource group
az group delete --name exampleRG

## Delete the Microsoft Graph group
az rest --method delete --url 'https://graph.microsoft.com/v1.0/groups%28uniqueName=%27myExampleGroup%27%29'

Paso siguiente