Partager via


Comment utiliser la syntaxe abrégée avec Azure CLI

De nombreux paramètres Azure CLI acceptent des valeurs JSON, mais parce qu’il peut être difficile d’aplatir JSON en chaîne, Azure CLI prend en charge la syntaxe abrégée. La syntaxe abrégée est une représentation simplifiée d’une chaîne JSON.

Cet article fournit des exemples de syntaxe abrégée et montre comment passer JSON en tant que fichier.

Remarque

Vous savez qu’un paramètre accepte la syntaxe abrégée lorsque la description du paramètre lit comme Support shorthand-syntax, JSON-file and YAML-file. Try "??" to show more.

Syntaxe de notation abrégée pour la valeur complète

La syntaxe abrégée dans le format Full Value est JSON entouré de guillemets doubles. Les guillemets doubles entraînent le passage de la valeur JSON en tant que chaîne dans le langage de script PowerShell et Bash. Voici un exemple JSON :

{
  "name": "Bill",
  "age": 20,
  "paid": true,
  "emails": [
    "Bill@microsoft.com",
    "Bill@outlook.com"
  ],
  "address": {
    "country": "USA",
    "company": "Microsoft",
    "details": {
      "line1": "15590 NE 31st St",
      "line2": "Redmond, WA"
    }
  }
}

Lorsque vous passez JSON dans une valeur de paramètre, le JSON est aplatit et encapsulé entre guillemets doubles.

az some-command --contact "{name:Bill,age:20,paid:true,emails:[Bill@microsoft.com,Bill@outlook.com],address:{country:USA,company:Microsoft,details:{line1:'15590 NE 31st St',line2:'Redmond, WA'}}}"

Syntaxe abrégée de valeur partielle

La syntaxe abrégée pour la valeur partielle est composée de deux parties jointes par un signe égal (=) entre l’index key et le value. Voici un exemple : key=value.

La valeur peut être une chaîne simplifiée, un format de valeur complète, JSON ou un chemin d’accès au fichier JSON. À l’aide de l’exemple JSON fourni, transmettez des propriétés pour le --contact paramètre suivant les exemples suivants :

Utiliser Partial Value pour une paire clé-valeur unique.

az some-command --contact name=Bill

Utiliser Partial Value pour deux paires clé-valeur. Notez l’espace qui sépare les deux paires.

az some-command --contact age=20 paid=true

Utiliser Partial Value pour le deuxième élément.

az some-command --contact emails[1]="Bill@outlook.com"

Utilisez Partial Value pour la propriété détails de adresse.

az some-command --contact address.details="{line1:'15590 NE 31st St',line2:'Redmond, WA'}"

Combiner la syntaxe abrégée des valeurs complètes et partielles

Vous pouvez combiner une syntaxe de valeur complète et partielle, mais commencez toujours par Full Value, suivi de Partial Value. Si vous inversez l’ordre, les données finales ne contiennent que Full Value, sans propriétés définies dans Partial Value.

Utilisez Full Value suivi de Partial Value:

az some-command --contact "{name:Bill,age:20,paid:true,emails:[Bill@microsoft.com,Bill@outlook.com]}" motto="One man's bug is another man's lesson."

Vous pouvez également corriger un nouvel élément de propriété de liste dans Full Value. Par exemple, vous pouvez définir la deuxième adresse e-mail par Partial Value:

az some-command --contact "{name:Bill,age:20,paid:true,emails:[Bill@microsoft.com]}" emails[1]="Bill@outlook.com" motto="One man's bug is another man's lesson."

Passer JSON dans un fichier

Il est également possible de passer un fichier JSON en tant que valeur de paramètre. Il s’agit de l’approche recommandée lors de l’utilisation de JSON complexe.

az some-command --contact address.details=./address_details.JSON

Chaîne de guillemets simples

Chaîne à guillemets simples est utilisée pour passer une valeur de chaîne avec des caractères spéciaux : :, ,, {, }, [, ], null, ?? et espace. Ces caractères ont souvent d’autres significations lors de l’analyse de la syntaxe abrégée. Les guillemets simples indiquent à l’analyseur de traiter tout comme une chaîne.

Passer une valeur de chaîne avec un espace et d’autres caractères spéciaux

Voici un exemple JSON à passer en tant que valeur dans le --contact paramètre :

{
  "name": "Bill RP",
  "age": 20,
  "paid": true,
  "data": "{a: [1, 2]}"
}

Utilisez des guillemets simples au Full Value format :

az some-command --contact "{name:'Bill RP',age:20,paid:true,data:'{a: [1, 2]}'}"

Utilisez des guillemets simples au Partial Value format :

az some-command --contact name="'Bill RP'" data="'{a: [1, 2]}'"

Dans l’exemple suivant, il est également possible de supprimer des guillemets simples pour la name clé. L’analyseur ne fait pas la distinction entre une Full Value expression, une null valeur ou un ?? indicateur.

Utilisez Partial Value format :

az some-command --contact name="Bill RP"

Utiliser des apostrophes

Le caractère apostrophe (') a besoin d’échappement spécial (/') dans une chaîne de guillemets simples afin de distinguer la fin d’une chaîne de guillemets simples. Une barre oblique (/) est un caractère d’échappement uniquement après une apostrophe (') dans une chaîne de guillemets simples. Si / n'est pas dans une chaîne avec des apostrophes ou si / n'est pas après ', alors / est un caractère normal.

Full Value Format de passe :

az some-command --contact "{name:'bill'/s',age:20,paid:true}"

Partial Value Format de passe :

az some-command --contact name="'bill'/s'"

Si value n'est pas dans une chaîne de guillemets simples, vous n’avez pas besoin d’ajouter un caractère d’échappement après '.

Partial Value Format de passe :

az some-command --contact name="bill's"

Voici un autre exemple utilisant le code JSON suivant :

{
  "name": "Bill",
  "motto": "One man's bug is another man's lesson.",
  "age": 20,
  "paid": true,
  "emails": [
    "Bill@microsoft.com",
    "Bill@outlook.com"
  ]
}

Au format Full Value, utilisez une chaîne de guillemets simples et remplacez ' par '/.

az some-command --contact "{name:Bill,motto:'One man'/s bug is another man'/s lesson.',age:20,paid:true,emails:[Bill@microsoft.com,Bill@outlook.com]}"

Au Partial Value format, une valeur contenant une apostrophe peut être analysée sous forme de chaîne, entourée de guillemets doubles.

az some-command --contact motto="One man's bug is another man's lesson."

Travailler avec des valeurs NULL

Passez le mot « null » en tant que valeur de chaîne

Parfois, vous devez passer une valeur de chaîne « null ». Pour faire la distinction avec null la valeur, il doit s’agir d’une chaîne de guillemets uniques. Par exemple, si vous souhaitez passer la chaîne « null » à la propriété name dans le --contact paramètre :

JSON :

{
  "name": "null",
  "age": 20,
  "paid": true
}

Utilisez Full Value format :

az some-command --contact "{name:'null',age:20,paid:true}"

Utilisez Partial Value format :

az some-command --contact name="'null'"

Passer une null valeur

La syntaxe abrégée prend en charge le mot clé null dans les formats Full Value et Partial Value.

Par exemple, si vous souhaitez passer l’objet suivant avec une null propriété d’adresse de valeur dans le --contact paramètre :

{
  "name": "Bill",
  "age": 20,
  "paid": true,
  "emails": [
    "Bill@microsoft.com",
    "Bill@outlook.com"
  ],
  "address": null
}

Utilisez Full Value format :

az some-command --contact "{name:Bill,age:20,paid:true,emails:[Bill@microsoft.com,Bill@outlook.com],address:null}"

Utilisez Partial Value format :

az some-command --contact name=Bill address=null

Utiliser une null valeur dans les commandes de mise à jour

Dans les commandes de mise à jour, une null valeur est souvent utilisée pour annuler les propriétés d’un objet ou supprimer des éléments d’un tableau ou d’un dictionnaire.

{
  "contact": {
    "name": "Bill",
    "age": 20,
    "paid": true,
    "emails": [
      "Bill@microsoft.com",
      "Bill@outlook.com"
    ],
    "address": {
      "country": "USA",
      "company": "Microsoft",
      "details": {
        "line1": "15590 NE 31st St",
        "line2": "Redmond, WA"
      }
    }
  },

  "other_properties": {}
}

S’il existe déjà une ressource avec les valeurs JSON indiquées ci-dessus, le passage d’une null valeur dans une commande de mise à jour réinitialise la valeur de la clé.

az some-update-command --contact address=null

Voici un autre exemple qui supprime le premier élément de l’e-mail d’une ressource :

az some-update-command --emails [0]=null

Utiliser ?? pour afficher l’aide

L’utilisation de points ?? d’interrogation doubles est un mot clé spécial pour afficher l’aide disponible pour un paramètre ou une sous-propriété. Il peut également être utilisé dans la syntaxe abrégée pour obtenir de l’aide.

Remarque

L’interpréteur de commandes Bash utilise ? comme caractère générique. Vérifiez que les points ?? d’interrogation doubles sont encapsulés entre guillemets doubles.

Utiliser ?? pour afficher le message d’aide d’un paramètre

Afficher le message d’aide du --contact paramètre :

az some-command --contact "??"

Utiliser ?? au Full Value format

Afficher le message d'aide du paramètre --contant lorsque vous rédigez Full Value :

az some-command --contact "{??"
az some-command --contact "{name:Bill,??"

Afficher le message d’aide de la propriété --contant.address lors de l’écriture Full Value :

az some-command --contact "{name:Bill,address:??"

Afficher le message d’aide de la propriété --contant.address.country lors de l'écriture de la valeur Full Value.

az some-command --contact "{name:Bill,address:{country:??"

Afficher le message d’aide de la propriété --contant.emails lors de l’écriture de Full Value.

az some-command --contact "{name:Bill,address:{country:USA},emails:??"

Afficher le message d’aide de l’élément de propriété --contant.emails lors de l’écriture de Full Value.

az some-command --contact "{name:Bill,address:{country:USA},emails:[??"

Utiliser ?? au Partial Value format

Afficher le message d'aide de la propriété --contant.address lors de l'écriture Partial Value:

az some-command --contact address="??"

Afficher le message d’aide de la propriété --contant.emails lorsqu'on écrit Partial Value.

az some-command --contact emails="??"

Afficher le message d'aide de l'élément de la propriété --contant.emails lors de l'écriture de Partial Value.

az some-command --contact emails[0]="??"

Voir aussi