Share via


Configurer votre environnement Bicep

Bicep prend en charge un fichier de configuration facultatif nommé bicepconfig.json. Dans ce fichier, vous pouvez ajouter des valeurs qui personnalisent votre expérience de développement Bicep. Ce fichier est fusionné avec le fichier config par défaut. Pour plus d’informations, consultez Comprendre le processus de fusion. Pour personnaliser la configuration, créez un fichier config dans le même répertoire ou dans un répertoire parent de vos fichiers Bicep. Si plusieurs répertoires parents contiennent des fichiers bicepconfig.json, Bicep utilise la configuration du répertoire le plus proche. Pour plus d’informations, consultez Comprendre le processus de résolution de fichier.

Pour configurer les paramètres de l'extension Bicep, voir VS Code et l'extension Bicep.

Créer le fichier de configuration dans Visual Studio Code

Vous pouvez utiliser n’importe quel éditeur de texte pour créer le fichier config.

Pour créer un fichier bicepconfig.json dans Visual Studio Code, ouvrez la palette de commandes ([CTRL/CMD]+[MAJ]+P), puis sélectionnez Bicep : Créer un fichier de configuration Bicep. Pour plus d’informations, consultez Créer un fichier de référence Bicep.

Screenshot of how to create Bicep configuration file in VS Code.

L’extension Bicep pour Visual Studio Code prend en charge intellisense pour votre fichier bicepconfig.json. Utilisez la fonctionnalité IntelliSense pour découvrir les propriétés et les valeurs disponibles.

Screenshot of the intellisense support in configuring bicepconfig.json.

Comprendre le processus de fusion

Le fichier bicepconfig.json subit un processus de fusion ascendant récursif avec le fichier config par défaut. Pendant le processus de fusion, Bicep examine chaque chemin d’accès dans les deux configurations. Si un chemin d’accès n’est pas présent dans la configuration par défaut, le chemin d’accès et sa valeur associée sont ajoutés dans le résultat final. À l’inverse, si un chemin d’accès existe dans la configuration par défaut avec une valeur différente, la valeur de bicepconfig.json est prioritaire dans le résultat fusionné.

Considérez un scénario dans lequel la configuration par défaut est définie comme suit :

{
  "cloud": {
    ...
    "credentialPrecedence": [
      "AzureCLI",
      "AzurePowerShell"
    ]
  },
  "moduleAliases": {
    "ts": {},
    "br": {
      "public": {
        "registry": "mcr.microsoft.com",
        "modulePath": "bicep"
      }
    }
  },
  ...
}

Et le bicepconfig.json est défini comme suit :

{
  "cloud": {
    "credentialPrecedence": [
      "AzurePowerShell",
      "AzureCLI"
    ]
  },
  "moduleAliases": {
    "br": {
      "ContosoRegistry": {
        "registry": "contosoregistry.azurecr.io"
      },
      "CoreModules": {
        "registry": "contosoregistry.azurecr.io",
        "modulePath": "bicep/modules/core"
      }
    }
  }
}

La configuration fusionnée résultante serait la suivante :

{
  "cloud": {
    ...
    "credentialPrecedence": [
      "AzurePowerShell",
      "AzureCLI"
    ]
  },
  "moduleAliases": {
    "ts": {},
    "br": {
      "public": {
        "registry": "mcr.microsoft.com",
        "modulePath": "bicep"
      },
      "ContosoRegistry": {
        "registry": "contosoregistry.azurecr.io"
      },
      "CoreModules": {
        "registry": "contosoregistry.azurecr.io",
        "modulePath": "bicep/modules/core"
      }
    }
  },
  ...
}

Dans l’exemple précédent, la valeur de cloud.credentialPrecedence est remplacée, tandis que la valeur de cloud.moduleAliases.ContosoRegistry et cloud.moduleAliases.CoreModules est ajoutée dans la configuration fusionnée.

Comprendre le processus de résolution de fichiers

Le fichier bicepconfig.json peut être placé dans le même répertoire ou dans un répertoire parent de vos fichiers Bicep. Si plusieurs répertoires parents contiennent des fichiers bicepconfig.json, Bicep utilise le fichier config du répertoire le plus proche. Par exemple, dans la structure de dossiers donnée où chaque dossier a un fichier bicepconfig.json :

A diagram showing resolving `bicepconfig.json` found in multiple parent folders.

Si vous compilez main.bicep dans le dossier child, le fichier bicepconfig.json dans le dossier child est utilisé. Les fichiers de configuration dans le dossier parent et le dossier root sont ignorés. Si le dossier child ne contient pas de fichier de configuration, Bicep recherche une configuration dans le dossier parent, puis le dossier root. Si aucun fichier config n’est trouvé dans l’un des dossiers, Bicep utilise par défaut les valeurs par défaut.

Dans le contexte d’un fichier Bicep appelant plusieurs modules, chaque module subit une compilation à l’aide du bicepconfig.jsonle plus proche. Ensuite, le fichier Bicep principal est compilé avec son bicepconfig.jsoncorrespondant. Dans le scénario suivant, modA.bicep est compilé à l’aide du bicepconfig.json situé dans le dossier A, modB.bicep est compilé avec le bicepconfig.json dans le dossier B, et enfin, main.bicep est compilé à l’aide du bicepconfig.json dans le dossier root.

A diagram showing resolving `bicepconfig.json` found in multiple parent folders with the module scenario.

En l’absence d’un fichier bicepconfig.json dans les dossiers A et B , les trois fichiers Bicep sont compilés à l’aide du bicepconfig.json trouvé dans le dossier root . Si bicepconfig.json n’est présente dans aucun des dossiers, le processus de compilation utilise par défaut les valeurs par défaut.

Configurer des modules Bicep

Lorsque vous utilisez des modules, vous pouvez ajouter des alias pour les chemins d’accès des modules. Ces alias simplifient votre fichier Bicep, car vous n’avez pas à répéter les chemins compliqués. Vous pouvez également configurer le profil de cloud et la priorité des informations d’identification pour l’authentification auprès d’Azure à partir de l’interface CLI Bicep et de Visual Studio Code. Les informations d’identification sont utilisées pour publier des modules dans les registres et pour restaurer les modules externes dans le cache local lors de l’utilisation de la fonction d’insertion de ressource. Pour plus d’informations, consultez Ajouter des paramètres de module à Bicep config.

Configurer des règles de linter

Le linter Bicep vérifie les fichiers Bicep pour rechercher les erreurs de syntaxe et les infractions aux meilleures pratiques. Vous pouvez écraser les paramètres par défaut de la validation du fichier Bicep en modifiant bicepconfig.json. Pour plus d’informations, consultez Ajouter des paramètres de module à la configuration Bicep.

Activer les fonctionnalités expérimentales

Vous pouvez activer les fonctionnalités expérimentales en ajoutant la section suivante à votre fichier bicepconfig.json.

Voici un exemple d’activation des fonctionnalités « compileTimeImports » et « userDefinedFunctions ».

{
  "experimentalFeaturesEnabled": {
    "compileTimeImports": true,
    "userDefinedFunctions": true
  }
}

Pour obtenir des informations sur les fonctionnalités expérimentales actuelles, consultez Fonctionnalités expérimentales.

Étapes suivantes