Compartilhar via


Como usar a sintaxe abreviada com a CLI do Azure

Muitos parâmetros da CLI do Azure aceitam valores JSON, mas porque pode ser difícil achatar JSON em uma cadeia de caracteres, a CLI do Azure dá suporte à sintaxe abreviada. A sintaxe abreviada é uma representação simplificada de uma cadeia de caracteres JSON.

Este artigo fornece exemplos de sintaxe abreviada e mostra como passar JSON como um arquivo.

Observação

Você saberá que um parâmetro aceita a sintaxe abreviada quando a descrição do parâmetro for semelhante a Support shorthand-syntax, JSON-file and YAML-file. Try "??" to show more.

Sintaxe abreviada de valor completo

A sintaxe abreviada no Full Value formato é JSON cercada por aspas duplas. Aspas duplas fazem com que o valor JSON seja passado como uma cadeia de caracteres na linguagem de script do PowerShell e do Bash. Aqui está um exemplo 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"
    }
  }
}

Quando você passa JSON em um valor de parâmetro, o JSON é achatado e envolto em aspas duplas.

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

Sintaxe abreviada de valor parcial

A sintaxe abreviada para valor parcial é composta por duas partes unidas por um sinal igual (=) entre o índice key e o value. Eis um exemplo: key=value.

O valor pode ser uma cadeia de caracteres simplificada, formato de valor completo, JSON ou um caminho de arquivo JSON. Usando o exemplo JSON fornecido, passe as propriedades para o --contact parâmetro seguindo estes exemplos:

Utilize Partial Value para um único par chave-valor.

az some-command --contact name=Bill

Utilize Partial Value para dois pares de chave-valor. Observe o espaço que separa os dois pares.

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

Use Partial Value para o segundo elemento.

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

Use Partial Value para obter detalhes da propriedade do endereço.

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

Combinar sintaxe abreviada de valor total e parcial

Você pode combinar sintaxe de valor total e parcial, mas sempre começar com Full Value seguido por Partial Value. Se você reverter a ordem, os dados finais conterão apenas o Full Value sem propriedades definidas em Partial Value.

Use Full Value seguido por 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."

Você também pode corrigir um novo elemento de propriedade de lista em Full Value. Por exemplo, você pode definir o segundo endereço de email: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."

Passar JSON em um arquivo

Também é possível passar um arquivo JSON como um valor de parâmetro. Essa é a abordagem recomendada ao trabalhar com JSON complexo.

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

Cadeia de caracteres de aspas simples

Cadeia de caracteres de aspas simples é usada para passar um valor de cadeia de caracteres com caracteres especiais: :, ,, {, }, [, ], null, ?? e espaço. Esses caracteres geralmente têm outros significados ao analisar a sintaxe abreviada. Aspas simples dizem ao analisador para tratar tudo como uma cadeia de caracteres.

Passe um valor de string que contenha um espaço e outros caracteres especiais

Veja um exemplo de JSON para passar como um valor no --contact parâmetro:

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

Use aspas simples no Full Value formato:

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

Use aspas simples no Partial Value formato:

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

No próximo exemplo, também é possível remover as aspas simples da chave name. O analisador não distingue entre uma Full Value expressão, um null valor ou o ?? sinalizador.

Use o formato Partial Value:

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

Trabalhar com apóstrofos

O caractere apóstrofo (') precisa de escape especial (/') na cadeia de caracteres de aspas simples para distinguir o final de uma cadeia de caracteres de aspas simples. Uma barra (/) é um caractere de escape somente após um apóstrofo (') na cadeia de caracteres de aspas simples. Se / não estiver na string entre aspas simples ou / não estiver depois de ', / é um caractere normal.

Passar formato Full Value

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

Passar formato Partial Value

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

Se value não estiver na cadeia de caracteres de aspas simples, você não precisará adicionar um caractere de escape após '.

Passar formato Partial Value

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

Este é outro exemplo usando o seguinte JSON:

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

No Full Value formato, use uma cadeia de caracteres de aspas simples e substitua o ' por '/.

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

No Partial Value formato, um valor que contém um apóstrofo pode ser analisado como cadeia de caracteres, cercado por aspas duplas.

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

Trabalhar com valores NULL

Passar a palavra "nulo" como um valor de cadeia de caracteres

Em algum momento, você precisa passar um valor de string "nulo". Para distinguir o valor null, precisa ser uma cadeia de caracteres de aspas simples. Por exemplo, se você quiser passar a cadeia de caracteres "null" para a propriedade name no --contact parâmetro:

JSON:

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

Use o formato Full Value:

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

Use o formato Partial Value:

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

Passe um null valor

O suporte à sintaxe abreviada para a palavra-chave null está disponível em ambos formatos Full Value e Partial Value.

Por exemplo, se você quiser passar o seguinte objeto com um valor da propriedade null no parâmetro :

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

Use o formato Full Value:

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

Use o formato Partial Value:

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

Use um null valor em comandos de atualização

Em comandos de atualização, um null valor geralmente é usado para desafixar propriedades de um objeto ou remover elementos de uma matriz ou de um dicionário.

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

Se já existir um recurso com os valores JSON mostrados acima, passar um null valor em um comando de atualização redefinirá o valor da chave.

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

Este é outro exemplo que remove o primeiro elemento do email de um recurso:

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

Usar ?? para mostrar ajuda

O uso de pontos de interrogação ?? duplos é uma palavra-chave especial para mostrar a ajuda disponível para um parâmetro ou subpropriedade. Ele também pode ser usado na sintaxe abreviada para obter ajuda.

Observação

O shell Bash usa ? como "curinga". Verifique se os pontos de interrogação ?? duplos estão encapsulados nas aspas duplas.

Usar ?? para mostrar a mensagem de ajuda de um parâmetro

Mostrar mensagem de ajuda do --contact parâmetro:

az some-command --contact "??"

Use o formato ?? em Full Value.

Mostrar mensagem de ajuda do --contant parâmetro ao escrever Full Value:

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

Mostrar mensagem de ajuda da --contant.address propriedade ao escrever Full Value:

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

Mostrar mensagem de ajuda da --contant.address.country propriedade ao escrever Full Value:

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

Mostrar mensagem de ajuda da --contant.emails propriedade ao escrever Full Value:

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

Mostrar mensagem de ajuda da propriedade do elemento --contant.emails ao escrever Full Value:

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

Use o formato ?? em Partial Value.

Mostrar mensagem de ajuda da --contant.address propriedade ao escrever Partial Value:

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

Mostrar mensagem de ajuda da --contant.emails propriedade ao escrever Partial Value:

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

Mostrar mensagem de ajuda da propriedade do elemento --contant.emails ao escrever Partial Value:

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

Consulte também