Использование сокращенного синтаксиса с помощью Azure CLI

Многие параметры Интерфейса командной строки Azure принимают значения JSON, но так как это может оказаться сложной задачей для выравнивания JSON в строку, Azure CLI поддерживает короткий синтаксис. Сокращенный синтаксис — это упрощенное представление строки JSON.

В этой статье приведены примеры сокращенного синтаксиса и показано, как передать JSON в виде файла.

Замечание

Вы узнаете, что параметр принимает короткий синтаксис, когда описание параметра считывается аналогично Support shorthand-syntax, JSON-file and YAML-file. Try "??" to show more.

Полный синтаксис сокращенной записи значения

Короткий синтаксис в Full Value формате JSON окружен двойными кавычками. Двойные кавычки приводят к передаче значения JSON в виде строки в языке сценариев PowerShell и Bash. Ниже приведен пример 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"
    }
  }
}

При передаче JSON в значение параметра JSON развёрнут и помещён в двойные кавычки.

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

Синтаксис сокращенного представления частичного значения

Сокращенный синтаксис для частичного значения состоит из двух частей, присоединенных знаком равенства (=) между индексом key и индексом value. Вот пример: key=value.

Это значение может быть упрощенной строкой, форматом полного значения, JSON или пути к JSON-файлу. Используя предоставленный пример JSON, передайте свойства для --contact параметра в следующих примерах:

Используется Partial Value для пары "один ключ-значение".

az some-command --contact name=Bill

Используйте Partial Value для двух пар "ключ-значение". Обратите внимание на пространство, разделяющее две пары.

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

Используйте Partial Value для второго элемента.

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

Используется Partial Value для получения сведений о свойстве адреса.

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

Объедините полный и частичный синтаксис сокращенных значений

Вы можете комбинировать синтаксис полного и частичного значения, но всегда начинайте с Full Value, а затем Partial Value. Если изменить порядок, окончательные данные содержат только Full Value, без свойств, определенных в Partial Value.

Использование Full Value , за которым следует 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."

Вы также можете обновить новый элемент свойства списка в Full Value. Например, можно задать второй адрес электронной почты: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 в файле

Кроме того, можно передать JSON-файл в качестве значения параметра. Это рекомендуемый подход при работе со сложным JSON.

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

Строка с одинарными кавычками

Строка с одними кавычками используется для передачи строкового значения, содержащего специальные символы: , :, ,, {, }, [, ], null и пробел. Эти символы часто имеют другие значения при анализе сокращенного синтаксиса. Одинарные кавычки сообщают синтаксическому анализатору рассматривать все как строку.

Передайте строковое значение с пробелом и другими специальными символами

Ниже приведен пример JSON для передачи в качестве значения в параметре --contact :

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

Используйте одинарные кавычки в Full Value формате:

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

Используйте одинарные кавычки в Partial Value формате:

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

В следующем примере можно также удалить одиночные кавычки для ключа name. Средство синтаксического анализа не различает между Full Value выражением, null значением или ?? флагом.

Используйте Partial Value формат:

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

Работа с апострофами

Символ апострофа () требует специального escape-обхода ('/') в строке с одними кавычками, чтобы отличить конец одной строки кавычки. Косая черта/ () является escape-символом только после apostrophe (') в строке с одними кавычками. Если / не внутри строки с одними кавычками или / не находится после ', / это обычный символ.

Формат передачи Full Value :

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

Формат передачи Partial Value :

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

Если value нет в строке с одними кавычками, вам не нужно добавлять escape-символ после '.

Формат передачи Partial Value :

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

Ниже приведен еще один пример, использующий следующий код JSON:

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

В формате Full Value используйте строку в одиночных кавычках и замените ' на '/.

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

В Partial Value формате значение, содержащее апостроф, можно проанализировать как строку, окруженную двойными кавычками.

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

Работа со значениями NULL

Передайте слово NULL в виде строкового значения

Иногда необходимо передать строковое значение NULL. Чтобы отличить null значение, оно должно быть строкой с одними кавычками. Например, если вы хотите передать строку NULL в свойство name в параметре --contact :

JSON:

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

Используйте Full Value формат:

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

Используйте Partial Value формат:

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

Передайте значение null

Сокращённый синтаксис поддерживает ключевое слово null в обоих форматах Full Value и Partial Value.

Например, если вы хотите передать следующий объект со значением свойства nullадреса в параметре --contact :

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

Используйте Full Value формат:

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

Используйте Partial Value формат:

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

Используйте значение null в командах обновления

В командах обновления значение null часто используется для сброса свойств объекта или удаления элементов массива или словаря.

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

Если ресурс с указанными выше значениями JSON уже существует, передача значения null в команде обновления сбрасывает значение ключа.

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

Ниже приведен еще один пример удаления первого элемента электронной почты ресурса:

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

Используйте ?? для отображения справки

Использование двойных вопросительных знаков ?? — это специальное ключевое слово для отображения доступной справки по параметру или подпропастерии. Его также можно использовать в кратком синтаксисе для получения справки.

Замечание

Оболочка Bash использует ? в качестве подстановочного знака. Убедитесь, что двойные вопросительные знаки упаковываются в ??.

Используйте ??, чтобы показать сообщение справки параметра

Показать справку о параметре --contact.

az some-command --contact "??"

Использование ?? в Full Value формате

Показать сообщение помощи по параметру --contant при записи Full Value:

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

Показать сообщение справки свойства --contant.address при написании Full Value:

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

Показать сообщение справки свойства --contant.address.country при написании Full Value:

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

Показать сообщение справки свойства --contant.emails при написании Full Value:

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

Отображать справочное сообщение элемента свойства при написании --contant.emails: Full Value.

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

Использование ?? в Partial Value формате

Показать сообщение справки свойства --contant.address при написании Partial Value:

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

Показать сообщение справки свойства --contant.emails при написании Partial Value:

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

Отображать справочное сообщение элемента свойства при написании --contant.emails: Partial Value.

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

См. также