Migrer vers des types dynamiques dans des fichiers de modèle Bicep

Il existe deux options pour sélectionner vos types Microsoft Graph Bicep « package » :

  • Types intégrés : les types Bicep Microsoft Graph sont intégrés au package NuGet du compilateur Bicep. Ce package NuGet contient des définitions de type Microsoft Graph pour Microsoft Graph bêta et v1.0. Les types intégrés étaient la seule option disponible avant septembre.
  • Types dynamiques : un référentiel de types Bicep Microsoft Graph avec version spécifique est référencé et extrait de l’Registre des artefacts Microsoft. Ces packages sont découplés du package NuGet du compilateur Bicep. Les types dynamiques sont disponibles uniquement à partir de septembre.

La fonctionnalité de types dynamiques active le contrôle de version sémantique pour les types Bicep Microsoft Graph pour la version bêta et la version 1.0. L’utilisation de types dynamiques permet d’effectuer des changements cassants futurs dans les types de ressources Microsoft Graph Bicep existants sans avoir d’impact sur le déploiement de vos fichiers Bicep existants qui utilisent des versions antérieures de ces types de ressources.

Tous les exemples et guides de démarrage rapide dans la documentation publique et dans le dépôt GitHub utilisent des types dynamiques.

Important

Les types intégrés sont déconseillés et seront mis hors service le 24 janvier 2025. Jusqu’à la date de mise hors service, les types intégrés, indiqués par extension microsoftGraph, coexistent avec les nouveaux types dynamiques. Toutes les modifications de type Bicep Microsoft Graph ne seront disponibles que par le biais de nouvelles versions des types dynamiques.

Prérequis

  • J’ai un abonnement Azure. Si vous n’en avez pas, vous pouvez créer un compte gratuit.
  • Disposez des autorisations ou des rôles les moins privilégiés pour lire ou mettre à jour la ressource existante ou être le propriétaire de la ressource. Consultez les rôles les moins privilégiés par tâche et les autorisations utilisateur par défaut pour voir quels rôles vous devez être attribués.
  • Installez les outils Bicep pour la création et le déploiement. Ce guide de démarrage rapide utilise VS Code avec l’extension Bicep pour la création et Azure CLI pour le déploiement. La version minimale requise de Bicep est v0.30.3.
  • Vous pouvez déployer les fichiers Bicep de manière interactive ou via le déploiement sans contact (application uniquement).

Passer à l’utilisation de types dynamiques

Les étapes suivantes montrent comment mettre à jour un fichier Bicep qui utilise actuellement des types intégrés à partir de Microsoft Graph v1.0 uniquement.

  1. Lancez VS Code et ouvrez le dossier contenant vos fichiers main.bicep et bicepconfig.json .

  2. Dans le fichier bicepconfig.json, ajoutez une référence aux types de ressources Microsoft Graph Bicep dans le Registre des artefacts Microsoft. Pour trouver la dernière version ou appropriée, visitez le Registre des artefacts Microsoft et recherchez « Extension Microsoft Graph Bicep ».

  3. Ouvrez le fichier bicepconfig.json et ajoutez le bloc suivant :

    • microsoftGraphV1_0est un nom d’extension convivial défini par l’utilisateur pour référencer la version du package dans le Registre des artefacts Microsoft.
    • Remplacez <version> par la version de type que vous souhaitez utiliser et qui est prise en charge pour Microsoft Graph v1.0.
    {  
        "experimentalFeaturesEnabled": {  
            "extensibility": true  
        },
        "extensions": {  
            "microsoftGraphV1_0": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:<version>"  
        }  
    }
    
  4. Dans main.bicep, mettez à jour la extension déclaration pour utiliser le nom de version de l’extension que vous avez défini dans le fichier bicepconfig.json .

    extension microsoftGraphV1_0
    
    @description('Group to use')
    param groupName string = 'TestGroup-20240816'
    
    // using v1.0
    resource group 'Microsoft.Graph/groups@v1.0' existing = {
        uniqueName: groupName
    }
    
    output groupId string = group.id
    

Utiliser des types dynamiques pour les ressources Microsoft Graph bêta et v1.0

Les types intégrés pour Microsoft Graph fournissent des types pour microsoft Graph bêta et v1.0. Si votre fichier Bicep déclare des ressources Microsoft Graph à partir de la version bêta et de la version 1.0, procédez comme suit pour mettre à jour un fichier Bicep qui utilise actuellement des types intégrés.

  1. Lancez VS Code et ouvrez le dossier contenant vos fichiers main.bicep et bicepconfig.json .

  2. Vous devez ajouter une référence, dans le fichier bicepconfig.json, au package de types de ressources Microsoft Graph Bicep dans le Registre des artefacts Microsoft. Pour rechercher la dernière version du package ou la version appropriée, accédez au Registre des artefacts Microsoft et recherchez « Extension Bicep Microsoft Graph ».

  3. Ouvrez le fichier bicepconfig.json et ajoutez les éléments suivants, en remplaçant les <v1.0-version> espaces réservés par <beta-version> les versions de type que vous souhaitez utiliser, respectivement pour Microsoft Graph v1.0 et bêta.

    {  
        "experimentalFeaturesEnabled": {  
            "extensibility": true  
        },
        "extensions": {
            "microsoftGraphBeta": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/beta:<beta-version>",
            "microsoftGraphV1_0": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:<v1.0-version>"   
        }
    }
    
  4. Dans main.bicep, mettez à jour la extension microsoftGraph déclaration pour utiliser les noms de version d’extension que vous avez définis dans le fichier bicepconfig.json .

    // Use both extension version declarations, to declare Microsoft Graph resources from beta and v1.0, in the same Bicep file 
    extension microsoftGraphV1_0
    extension microsoftGraphBeta
    
    @description('Group to use')
    param groupName string = 'TestGroup-20240816'
    
    @description('Apps to use')
    param appName string = 'TestApp-20240816'
    
    // using v1.0
    resource group 'Microsoft.Graph/groups@v1.0' existing = {
        uniqueName: groupName
    }
    
    // using beta
    resource app 'Microsoft.Graph/applications@beta' existing = {
        uniqueName: appName
    }
    
    output groupId string = group.id
    output appId string = app.id