Partilhar via


Como usar a sintaxe abreviada com a CLI do Azure

Muitos parâmetros da CLI do Azure aceitam valores JSON, mas como pode ser difícil nivelar 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 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 PowerShell e Bash. Aqui está um exemplo de 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 envolvido 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 de 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 parâmetro --contact seguindo estes exemplos:

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

az some-command --contact name=Bill

Use Partial Value para dois pares 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 detalhes na propriedade de endereço.

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

Utilizar sintaxe abreviada para combinar valor completo e parcial

Você pode combinar sintaxe de valor total e parcial, mas sempre comece com Full Value seguido por Partial Value. Se inverter a ordem, os dados finais contêm apenas o Full Value sem propriedades definidas em Partial Value.

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

Você também pode aplicar um patch a um novo elemento da propriedade de lista no Full Value. Por exemplo, você pode definir o segundo endereço de e-mail por 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. Esta é a abordagem recomendada ao trabalhar com JSON complexo.

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

String de aspas simples

Aspas Simples String é usada para passar um valor string com caracteres especiais: :, ,, {, }, [, ], null, ?? e espaço. Esses caracteres geralmente têm outros significados ao analisar a sintaxe taquigráfica. Aspas simples dizem ao analisador de código para tratar tudo como uma string.

Passar um valor de cadeia de caracteres com um espaço e outros caracteres especiais

Aqui está 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 para a chave name. O analisador não distingue entre uma Full Value expressão, um null valor ou o ?? sinalizador.

Utilize o formato Partial Value

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

Trabalhar com apóstrofos

O caractere apóstrofo (') precisa de escape especial (/') em Single Quotes String para distinguir o final de uma Single Quotes String. Uma barra (/) é um caractere de escape somente após um apóstrofo (') em Single Quotes String. Se / não estiver na Cadeia de Aspas Simples ou / não estiver depois de ', / é um caractere normal.

Formato do passe Full Value :

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

Formato do passe Partial Value :

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

Se value não estiver em Cadeia de Aspas Simples, não será necessário adicionar um caractere de escape após '.

Formato do passe Partial Value :

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

Aqui está 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 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 contendo um apóstrofo pode ser analisado como string, cercado por aspas duplas.

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

Trabalhar com valores nulos

Passe a palavra "null" como um valor de cadeia de caracteres

Por vezes, é necessário passar um valor de string "nulo". Para distinguir com o valor null, é necessário ser uma String de aspas simples. Por exemplo, se você quiser passar a string "null" para a propriedade name no --contact parâmetro:

JSON:

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

Utilize o formato Full Value

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

Utilize o formato Partial Value

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

Passe um null valor

Suporte para palavra-chave null de sintaxe abreviada nos formatos Full Value e Partial Value.

Por exemplo, se pretenderes passar o seguinte objeto com um valor null na propriedade no parâmetro --contact:

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

Utilize o formato Full Value

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

Utilize o formato Partial Value

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

Use um valor null em comandos de atualização

Em comandos de atualização, um null valor geralmente é usado para desdefinir propriedades de um objeto ou remover elementos de uma matriz ou 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 update redefine o valor da chave.

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

Aqui está outro exemplo que remove o primeiro elemento do e-mail de um recurso:

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

Utilize ?? para mostrar ajuda

O uso de duplo ponto de interrogação ?? é uma palavra-chave específica para indicar a ajuda disponível para um parâmetro ou subpropriedade. Ele também pode ser usado dentro da sintaxe abreviada para obter ajuda.

Observação

O shell Bash usa ? como um curinga. Certifique-se de que os pontos de interrogação duplos ?? estejam envolvidos 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 "??"

Utilize ?? no formato 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 do elemento de --contant.emails propriedade ao escrever Full Value:

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

Utilize ?? no formato 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 do elemento de --contant.emails propriedade ao escrever Partial Value:

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

Ver também