Delen via


Hoe verkorte syntaxis te gebruiken met Azure CLI

Veel Azure CLI-parameters accepteren JSON-waarden, maar omdat het lastig kan zijn om JSON af te vlakken in een tekenreeks, biedt de Azure CLI ondersteuning voor de verkorte syntaxis. Verkorte syntaxis is een vereenvoudigde weergave van een JSON-tekenreeks.

Dit artikel bevat voorbeelden van verkorte syntaxis en laat zien hoe u JSON als een bestand doorgeeft.

Opmerking

U weet dat een parameter verkorte syntaxis accepteert wanneer de beschrijving van de parameter vergelijkbaar is met Support shorthand-syntax, JSON-file and YAML-file. Try "??" to show more.

Verkorte notatie voor volledige waarden

Afkortingsyntaxis in Full Value-notatie is JSON dat wordt omsloten door dubbele aanhalingstekens. Dubbele aanhalingstekens zorgen ervoor dat de JSON-waarde wordt doorgegeven als een tekenreeks in zowel de PowerShell- als de Bash-scripttaal. Hier volgt een JSON-voorbeeld:

{
  "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"
    }
  }
}

Wanneer u JSON doorgeeft in een parameterwaarde, wordt de JSON afgevlakt en verpakt in dubbele aanhalingstekens.

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'}}}"

Korte syntaxis van gedeeltelijke waarde

Verkorte syntaxis voor gedeeltelijke waarde bestaat uit twee delen die zijn samengevoegd door een gelijkteken (=) tussen de index key en de value. Hier is een voorbeeld: key=value.

De waarde kan een vereenvoudigde tekenreeks, indeling voor volledige waarden, JSON of een JSON-bestandspad zijn. Geef met behulp van het opgegeven JSON-voorbeeld eigenschappen door voor de --contact parameter als volgt:

Gebruiken Partial Value voor één sleutel-waardepaar.

az some-command --contact name=Bill

Gebruik Partial Value voor twee sleutel-waardeparen. Let op de ruimte die de twee paren scheidt.

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

Gebruiken Partial Value voor het tweede element.

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

Gebruiken Partial Value voor de eigenschap details van het adres.

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

Volledige en gedeeltelijke waardesyntaxis combineren

U kunt de syntaxis van de volledige en gedeeltelijke waarde combineren, maar altijd beginnen met Full Value gevolgd door Partial Value. Als u de volgorde omdraait, bevatten de uiteindelijke gegevens alleen de Full Value zonder eigenschappen die zijn gedefinieerd in Partial Value.

Gebruik Full Value gevolgd door 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."

U kunt ook een nieuw element van de lijsteigenschap patchen in Full Value. U kunt bijvoorbeeld het tweede e-mailadres instellen op 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."

JSON doorgeven in een bestand

Het is ook mogelijk om een JSON-bestand door te geven als parameterwaarde. Dit is de aanbevolen benadering bij het werken met complexe JSON.

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

Tekenreeks met enkele aanhalingstekens

Eén aanhalingstekenreeks wordt gebruikt om een tekenreekswaarde door te geven met speciale tekens: :, , ,{}, [, , ], , nullen ??spatie. Deze tekens hebben vaak andere betekenissen bij het parseren van de afkortingsyntaxis. Enkele aanhalingstekens geven de parser aan om alles als een tekenreeks te behandelen.

Een stringwaarde doorgeven met een spatie en andere speciale tekens

Hier volgt een voorbeeld van JSON die moet worden doorgegeven als een waarde in de --contact parameter:

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

Gebruik enkele aanhalingstekens in Full Value notatie:

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

Gebruik enkele aanhalingstekens in Partial Value notatie:

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

In het volgende voorbeeld is het ook mogelijk om enkele aanhalingstekens voor de name sleutel te verwijderen. De parser maakt geen onderscheid tussen een Full Value expressie, null waarde of de ?? vlag.

Formaat gebruiken Partial Value

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

Werken met apostroffen

Het apostrofteken (') heeft speciale escape/' () in enkele aanhalingstekens nodig om het einde van een enkele aanhalingstekenreeks te onderscheiden. Een slash (/) is een escape-teken alleen na een apostrof (') in Single Quotes String. Als / niet in de tekenreeks 'Enkele Aanhalingstekens String' staat of / niet na ' is, is / een normaal teken.

Passformaat Full Value:

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

Passformaat Partial Value:

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

Als value niet in de enkele aanhalingstekens-strings staat, hoeft u geen escape-teken na ' toe te voegen.

Passformaat Partial Value:

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

Hier volgt een ander voorbeeld met behulp van de volgende JSON:

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

Gebruik in het Full Value-formaat een String met enkele aanhalingstekens en vervang de ' door '/.

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]}"

In Partial Value indeling kan een waarde met een apostrof worden geparseerd als tekenreeks, omgeven door dubbele aanhalingstekens.

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

Werken met NULL-waarden

Geef het woord 'null' door als tekenreekswaarde

Soms moet u een 'null'-tekenreekswaarde doorgeven. Als u onderscheid wilt maken met null waarde, moet dit een enkele aanhalingstekenreeks zijn. Als u bijvoorbeeld de tekenreeks 'null' wilt doorgeven aan de naameigenschap in de --contact parameter:

JSON:

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

Formaat gebruiken Full Value

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

Formaat gebruiken Partial Value

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

null Een waarde doorgeven

Afkortingsyntaxis ondersteunt het null trefwoord in zowel Full Value als Partial Value formaten.

Als u bijvoorbeeld het volgende object wilt doorgeven met een null waarde voor de eigenschap adres in de --contact parameter:

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

Formaat gebruiken Full Value

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

Formaat gebruiken Partial Value

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

null Een waarde gebruiken in updateopdrachten

Bij updateopdrachten wordt een null waarde vaak gebruikt om de eigenschappen van een object op te heffen of elementen van een matrix of een woordenlijst te verwijderen.

{
  "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": {}
}

Als er al een resource bestaat met de bovenstaande JSON-waarden, wordt de waarde van de sleutel opnieuw ingesteld door een null waarde in een updateopdracht door te geven.

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

Hier volgt een ander voorbeeld waarmee het eerste element van de e-mail van een resource wordt verwijderd:

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

Gebruik ?? om help weer te geven

Het gebruik van dubbele vraagtekens ?? is een speciaal trefwoord om de beschikbare help voor een parameter of subproperty weer te geven. Het kan ook worden gebruikt binnen de syntaxis van de korte hand om hulp te krijgen.

Opmerking

De Bash-shell gebruikt ? als jokerteken. Zorg ervoor dat de dubbele vraagtekens ?? tussen dubbele aanhalingstekens staan.

Gebruiken ?? om het Help-bericht van een parameter weer te geven

Help-bericht van --contact parameter weergeven:

az some-command --contact "??"

Gebruik ?? in Full Value indeling

Helpbericht van --contant-parameter weergeven tijdens het schrijven van Full Value:

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

Help-bericht van --contant.address eigenschap weergeven tijdens het schrijven van Full Value:

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

Help-bericht van --contant.address.country eigenschap weergeven tijdens het schrijven van Full Value:

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

Help-bericht van --contant.emails eigenschap weergeven tijdens het schrijven van Full Value:

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

Help-bericht weergeven van het eigenschapselement --contant.emails tijdens het schrijven Full Value:

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

Gebruik ?? in Partial Value indeling

Help-bericht van --contant.address eigenschap weergeven tijdens het schrijven van Partial Value:

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

Help-bericht van --contant.emails eigenschap weergeven tijdens het schrijven van Partial Value:

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

Help-bericht weergeven van het eigenschapselement --contant.emails tijdens het schrijven Partial Value:

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

Zie ook