Partager via


Commandes de l'interface CLI Bicep

Cet article décrit les commandes que vous pouvez utiliser dans l'interface CLI Bicep. Vous disposez de deux options pour exécuter ces commandes : soit en utilisant l’interface Azure CLI, soit en appelant directement des commandes CLI Bicep. Chaque méthode nécessite un processus d’installation distinct. Si vous souhaitez obtenir plus d’informations, consultez Installer l’interface de ligne de commande Azure et Installer Azure PowerShell.

Cet article explique comment exécuter les commandes dans Azure CLI. Lorsque vous exécutez Azure CLI, vous démarrez les commandes avec az. Si vous n'utilisez pas Azure CLI, exécutez les commandes sans az au début de celle-ci. Par exemple, az bicep build devient bicep build et az bicep version devient bicep --version.

build

La commande build convertit un fichier Bicep en modèle Azure Resource Manager (modèle ARM). En général, vous n'avez pas besoin d'exécuter cette commande car elle s'exécute automatiquement lorsque vous déployez un fichier Bicep. Exécutez-la manuellement lorsque vous souhaitez voir le modèle ARM JSON créé à partir de votre fichier Bicep.

L’utilisation de l’une des fonctionnalités Bicep suivantes active automatiquement la génération de code version 2.0 du langage :

L'exemple suivant convertit un fichier Bicep nommé main.bicep en modèle ARM nommé main.json. Le nouveau fichier est créé dans le même répertoire que le fichier Bicep.

az bicep build --file main.bicep

L'exemple suivant enregistre le fichier main.json dans un autre répertoire.

az bicep build --file main.bicep --outdir c:\jsontemplates

L'exemple suivant spécifie le nom et l'emplacement du fichier à créer.

az bicep build --file main.bicep --outfile c:\jsontemplates\azuredeploy.json

Pour imprimer le fichier sur stdout, utilisez :

az bicep build --file main.bicep --stdout

Si votre fichier Bicep comprend un module qui fait référence à un registre externe, la commande de génération appelle automatiquement restore. La commande restore récupère le fichier à partir du registre et le stocke dans le cache local.

Notes

La commande de restauration n’actualise pas le cache. Pour plus d’informations, consultez restore.

Pour ne pas appeler la commande restore automatiquement, utilisez le commutateur --no-restore :

az bicep build --no-restore <bicep-file>

Le processus de génération avec le commutateur --no-restore échoue si l’un des modules externes n’est pas déjà mis en cache :

The module with reference "br:exampleregistry.azurecr.io/bicep/modules/storage:v1" has not been restored.

Quand vous recevez cette erreur, vous devez exécuter la commande build sans le commutateur --no-restore ou exécuter bicep restore en premier.

Pour utiliser le commutateur --no-restore, vous devez avoir Bicep CLI version 0.4 ou ultérieure.

build-params

La commande build-params génère un fichier .bicepparam dans un fichier de paramètres JSON.

az bicep build-params --file params.bicepparam

Cette commande convertit un fichier de paramètres params.bicepparam en fichier de paramètres params.json JSON.

decompile

La commande decompile convertit le modèle ARM JSON en fichier Bicep.

az bicep decompile --file main.json

La commande crée un fichier nommé main.bicep dans le répertoire que main.json. Si main.bicep existe dans le même répertoire, utilisez le commutateur --force pour remplacer le fichier Bicep existant.

Pour plus d’informations sur l'utilisation de cette commande, consultez Décompiler le modèle ARM JSON en Bicep.

decompile-params

La commande decompile-params décompile un fichier de paramètres JSON dans un fichier de paramètres .bicepparam.

az bicep decompile-params --file azuredeploy.parameters.json --bicep-file ./dir/main.bicep

Cette commande décompile un fichier de paramètres azuredeploy.parameters.json dans un fichier azuredeploy.parameters.bicepparam. --bicep-file spécifie le chemin d’accès au fichier Bicep (relatif au fichier .bicepparam) qui est référencé dans la déclaration using.

format

La commande format met en forme un fichier Bicep. Il s’agit de la même fonction que le raccourci SHIFT+ALT+F dans Visual Studio Code.

az bicep format --file main.bicep

generate-params

La commande generate-params génère un fichier de paramètres à partir du fichier Bicep donné ou effectue une mise à jour si un fichier de paramètres existe.

az bicep generate-params --file main.bicep --output-format bicepparam --include-params all

La commande crée un fichier de paramètres Bicep nommé main.bicepparam. Le fichier de paramètres contient tous les paramètres du fichier Bicep, qu’ils soient configurés avec des valeurs par défaut ou non.

az bicep generate-params --file main.bicep --outfile main.parameters.json

La commande crée un fichier de paramètres nommé main.parameters.json. Le fichier de paramètres contient uniquement les paramètres sans valeurs par défaut configurées dans le fichier Bicep.

install

La commande install ajoute l'interface CLI Bicep à votre environnement local. Pour plus d'informations, consultez Installer les outils Bicep. Cette commande n’est disponible que via Azure CLI.

Pour installer la version la plus récente, utilisez :

az bicep install

Pour installer une version spécifique :

az bicep install --version v0.3.255

jsonrpc

La jsonrpc commande active l’exécution de l’interface CLI Bicep avec une interface JSON-RPC, ce qui permet une interaction programmatique avec une sortie structurée et évite les retards de démarrage à froid lors de la compilation de plusieurs fichiers. Cette configuration prend également en charge la création de bibliothèques pour interagir avec les fichiers Bicep par programmation dans non-.NET langages.

Le format de câble pour l’envoi et la réception d’entrée/sortie est délimité par l’en-tête, à l’aide de la structure suivante, où \r et \n représentent les caractères de retour chariot et de flux de ligne :

Content-Length: <length>\r\n\r\n<message>\r\n\r\n
  • <length> est la longueur de la <message> chaîne, y compris la fin \r\n\r\n.
  • <message> est le message JSON brut.

Par exemple :

Content-Length: 72\r\n\r\n{"jsonrpc": "2.0", "id": 0, "method": "bicep/version", "params": {}}\r\n\r\n

Le message suivant montre un exemple de version de Bicep.

  • Entrée :

    {
      "jsonrpc": "2.0",
      "id": 0,
      "method": "bicep/version",
      "params": {}
    }
    
  • La sortie est la suivante :

    {
      "jsonrpc": "2.0",
      "id": 0,
      "result": {
        "version": "0.24.211"
      }
    }
    

Pour connaître les méthodes disponibles et les corps de requête/réponse, consultez ICliJsonRpcProtocol.cs. Pour obtenir un exemple d’établissement d’une connexion JSONRPC et d’interaction avec des fichiers Bicep par programmation à l’aide de Node, consultez jsonrpc.test.ts.

Utilisation du canal nommé

Utilisez la syntaxe suivante pour vous connecter à un canal nommé existant en tant que client JSONRPC.

bicep jsonrpc --pipe <named_pipe>`

<named_pipe> est un canal nommé existant auquel connecter le client JSONRPC.

Pour vous connecter à un canal nommé sur OSX/Linux :

bicep jsonrpc --pipe /tmp/bicep-81375a8084b474fa2eaedda1702a7aa40e2eaa24b3.sock

Pour vous connecter à un canal nommé sur Windows :

bicep jsonrpc --pipe \\.\pipe\\bicep-81375a8084b474fa2eaedda1702a7aa40e2eaa24b3.sock`

Pour plus d’exemples, consultez C# et node.js.

Utilisation du socket TCP

Utilisez la syntaxe suivante pour vous connecter à un socket TCP existant en tant que client JSONRPC.

bicep jsonrpc --socket <tcp_socket>

<tcp_socket> est un numéro de socket auquel connecter le client JSONRPC.

Pour vous connecter à un socket TCP

bicep jsonrpc --socket 12345

Utilisation de stdin et stdout

Utilisez la syntaxe suivante pour exécuter l’interface JSONRPC à l’aide de stdin &stdout pour les messages.

bicep jsonrpc --stdio

lint

La commande lint retourne les erreurs et les violations de règle de linter d’un fichier Bicep.

az bicep lint --file main.bicep

Si votre fichier Bicep comprend un module qui fait référence à un registre externe, la commande lint appelle automatiquement restore (restaurer). La commande restore récupère le fichier à partir du registre et le stocke dans le cache local.

Notes

La commande de restauration n’actualise pas le cache. Pour plus d’informations, consultez restore.

Pour ne pas appeler la commande restore automatiquement, utilisez le commutateur --no-restore :

az bicep lint --no-restore <bicep-file>

Le processus lint avec le commutateur --no-restore échoue si l’un des modules externes n’est pas déjà mis en cache :

The module with reference "br:exampleregistry.azurecr.io/bicep/modules/storage:v1" has not been restored.

Quand vous recevez cette erreur, vous devez exécuter la commande lint sans le commutateur --no-restore ou exécuter bicep restore en premier.

list-versions

La commande list-versions renvoie toutes les versions disponibles de l'interface CLI Bicep. Utilisez cette commande pour savoir si vous devez mettre à niveau ou installer une nouvelle version. Cette commande n’est disponible que via Azure CLI.

az bicep list-versions

La commande renvoie le tableau des versions disponibles.

[
  "v0.28.1",
  "v0.27.1",
  "v0.26.170",
  "v0.26.54",
  "v0.25.53",
  "v0.25.3",
  "v0.24.24",
  "v0.23.1",
  "v0.22.6",
  "v0.21.1",
  "v0.20.4",
  "v0.19.5",
  "v0.18.4",
  "v0.17.1",
  "v0.16.2",
  "v0.16.1",
  "v0.15.31",
  "v0.14.85",
  "v0.14.46",
  "v0.14.6",
  "v0.13.1",
  "v0.12.40",
  "v0.12.1",
  "v0.11.1",
  "v0.10.61",
  "v0.10.13",
  "v0.9.1",
  "v0.8.9",
  "v0.8.2",
  "v0.7.4"
]

Publier

La commande publish ajoute un module à un registre. Le registre de conteneurs Azure doit exister et le compte qui publie dans le registre doit disposer des autorisations appropriées. Pour plus d’informations sur la configuration d’un registre de modules, consultez Utiliser un registre privé pour les modules Bicep. Pour publier un module, le compte doit disposer du profil et des autorisations appropriés pour accéder au registre. Vous pouvez configurer le profil et les informations d’identification prioritaires pour l’authentification auprès du registre dans le fichier de configuration de Bicep.

Après avoir publié le fichier dans le registre, vous pouvez le référencer dans un module.

Pour utiliser la commande publier, vous devez avoir l’interface CLI Bicep version 0.14 ou ultérieure. Pour utiliser le paramètre --documentationUri/-d, vous devez avoir Bicep CLI version 0.14 ou ultérieure.

Pour publier un module dans un registre, utilisez :

az bicep publish --file <bicep-file> --target br:<registry-name>.azurecr.io/<module-path>:<tag> --documentationUri <documentation-uri>

Par exemple :

az bicep publish --file storage.bicep --target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 --documentationUri https://www.contoso.com/exampleregistry.html

La commande publish ne reconnaît pas les alias définis dans un fichier bicepconfig.json. Indiquez le chemin d’accès complet au module.

Avertissement

La publication sur la même cible remplace l’ancien module. Nous vous recommandons d’incrémenter la version lors de la mise à jour.

restauration

Lorsque votre fichier Bicep utilise des modules qui sont publiés dans un registre, la commande restore obtient des copies de tous les modules requis à partir du registre. Elle stocke ces copies dans un cache local. Un fichier Bicep ne peut être généré que lorsque les fichiers externes sont disponibles dans le cache local. L’exécution de la commande restore n’est normalement pas nécessaire, car elle est automatiquement déclenchée par le processus de génération.

Pour restaurer des modules externes dans le cache local, le compte doit disposer du profil et des autorisations appropriées pour accéder au registre. Vous pouvez configurer le profil et les informations d’identification prioritaires pour l’authentification auprès du registre dans le fichier de configuration de Bicep.

Pour utiliser la commande restore, vous devez avoir Bicep CLI version 0.4 ou ultérieure. Cette commande n’est actuellement disponible que lorsque vous appelez Bicep CLI directement. Elle n’est actuellement pas disponible via la commande Azure CLI.

Pour restaurer manuellement les modules externes d’un fichier, utilisez :

az bicep restore --file <bicep-file> [--force]

Le fichier Bicep que vous fournissez est le fichier que vous souhaitez déployer. Il doit contenir un module qui établit un lien vers un registre. Par exemple, vous pouvez restaurer le fichier suivant :

module stgModule 'br:exampleregistry.azurecr.io/bicep/modules/storage:v1' = {
  name: 'storageDeploy'
  params: {
    storagePrefix: 'examplestg1'
  }
}

Le cache local se trouve sous :

  • Sur Windows

    %USERPROFILE%\.bicep\br\<registry-name>.azurecr.io\<module-path\<tag>
    
  • Sur Linux

    /home/<username>/.bicep
    
  • Sur Mac

    ~/.bicep
    

La commande restore n’actualise pas le cache si un module est déjà mis en cache. Pour mettre à jour le cache, vous pouvez supprimer le chemin du module du cache ou utiliser le commutateur --force avec la commande restore.

upgrade

La commande upgrade procède à la mise à jour de la version installée vers la dernière version. Cette commande n’est disponible que via Azure CLI.

az bicep upgrade

version

La commande version renvoie la version installée.

az bicep version

La commande indique le numéro de version.

Bicep CLI version 0.22.6 (d62b94db31)

Pour appeler cette commande directement via Bicep CLI, utilisez :

bicep --version

Si l’interface CLI Bicep n’est pas installée, vous rencontrez un message d’erreur indiquant que l’interface CLI Bicep est introuvable.

Étapes suivantes

Pour en savoir plus sur le déploiement d'un fichier Bicep, consultez :