次の方法で共有


Azure CLI で短縮構文を使用する方法

多くの Azure CLI パラメーターは JSON 値を受け入れますが、JSON を文字列にフラット化するのは困難な場合があるため、Azure CLI では短縮構文がサポートされています。 短縮形構文は、JSON 文字列の簡略化された表現です。

この記事では、短縮構文の例を示し、JSON をファイルとして渡す方法を示します。

パラメーターの説明が Support shorthand-syntax, JSON-file and YAML-file. Try "??" to show more のように書かれている場合、そのパラメーターが短縮構文を受け入れることがわかります。

数値の完全な省略記法

Full Value形式の短縮構文は、二重引用符で囲まれたJSONです。 二重引用符を使用すると、POWERShell と Bash の両方のスクリプト言語で JSON 値が文字列として渡されます。 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) で結合された 2 つの部分で構成されます。 次に例を示します: key=value

値には、簡略化された文字列、完全な値形式、JSON、または JSON ファイル パスを指定できます。 提供された JSON の例を使用して、次の例に従って、 --contact パラメーターのプロパティを渡します。

1 つのキーと値のペアに対して Partial Value を使用します。

az some-command --contact name=Bill

2 つのキーと値のペアに対して Partial Value を使用します。 2 つのペアを区切るスペースに注意してください。

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

2 番目の要素には Partial Value を使用します。

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

Partial Valuedetailsプロパティにを使用します。

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で list プロパティの新しい要素に修正プログラムを適用することもできます。 たとえば、次の Partial Valueで 2 番目のメール アドレスを設定できます。

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、およびスペース) を使用して??値を渡すために使用されます。 これらの文字は、短縮形構文を解析するときに他の意味を持つことがよくあります。 一重引用符は、すべてを文字列として扱うようにパーサーに指示します。

スペースやその他の特殊文字を使用して文字列値を渡す

--contact パラメーターの値として渡す JSON の例を次に示します。

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

アポストロフィを扱う

アポストロフィ文字 (') は、/' の末尾を区別するために、Single Quotes String で特殊なエスケープ () を必要とします。 スラッシュ (/) は Single Quotes String の中で、アポストロフィ (') の後に限りエスケープ文字として機能するものです。 /Single Quotes String に含まれていない場合または/'の後にない場合、/は通常の文字です。

Full Value形式を渡します。

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

Partial Value形式を渡します。

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

valueSingle Quotes String に含まれていない場合は、'の後にエスケープ文字を追加する必要はありません。

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形式で、Single Quotes Stringを使用し、''/に置き換えます。

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値で区別するには、Single Quotes Stringである必要があります。 たとえば、 パラメーターの --contact プロパティに "null" 文字列を渡す場合は、次のようにします。

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値を渡す

短縮形構文では、キーワードnullFull 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]="??"

こちらも参照ください