التدريب
الوحدة النمطية
النشر إلى بيئات Azure متعددة باستخدام ميزات قالب JSON ARM - Training
إدارة عمليات نشر بيئة Azure المتعددة لقوالب JSON Azure Resource Manager (قوالب ARM) باستخدام الوظائف والمتغيرات والعلامات وملفات المعلمات.
لم يعد هذا المتصفح مدعومًا.
بادر بالترقية إلى Microsoft Edge للاستفادة من أحدث الميزات والتحديثات الأمنية والدعم الفني.
Many Azure CLI parameters accept JSON values, but because it can be challenging to flatten JSON into a string, the Azure CLI supports shorthand syntax. Shorthand syntax is a simplified representation of a JSON string.
This article provides examples of shorthand syntax, and shows how to pass JSON as a file.
ملاحظة
You'll know that a parameter accepts shorthand syntax when the parameter description reads similar to Support shorthand-syntax, JSON-file and YAML-file. Try "??" to show more
.
Shorthand syntax in Full Value
format is JSON surrounded by double quotes. Double quotes cause the JSON value to be passed as a string in both the PowerShell and Bash scripting language. Here's a JSON example:
{
"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"
}
}
}
When you pass JSON in a parameter value, the JSON is flattened and wrapped in double quotes.
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'}}}"
Shorthand syntax for partial value is composed of two parts joined by an equal (=
) sign between the index key
and the value
.
Here's an example: key=value
.
The value can be a simplified string, full value format, JSON, or a JSON file path. Using the JSON example provided, pass properties for the --contact
parameter following these examples:
Use Partial Value
for a single key-value pair.
az some-command --contact name=Bill
Use Partial Value
for two key-value pairs. Note the space that separates the two pairs.
az some-command --contact age=20 paid=true
Use Partial Value
for second element.
az some-command --contact emails[1]="Bill@outlook.com"
Use Partial Value
for details property of address.
az some-command --contact address.details="{line1:'15590 NE 31st St',line2:'Redmond, WA'}"
You can combine full and partial value syntax, but always start with Full Value
followed by Partial Value
. If you reverse the order, the final data only contains the Full Value
without properties defined in Partial Value
.
Use Full Value
followed by 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."
You can also patch a new element of list property in Full Value
. For example you can set the second email address by 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."
It's also possible to pass a JSON file as a parameter value. This is the recommended approach when working with complex JSON.
az some-command --contact address.details=./address_details.JSON
Single Quotes String is used to pass a string value with special characters: :
, ,
, {
, }
, [
, ]
, null
, ??
, and space.
These characters often have other meanings when parsing shorthand syntax. Single quotes tell the parser to treat everything as a string.
Here's example JSON to pass as a value in the --contact
parameter:
{
"name": "Bill RP",
"age": 20,
"paid": true,
"data": "{a: [1, 2]}"
}
Use single quotes in Full Value
format:
az some-command --contact "{name:'Bill RP',age:20,paid:true,data:'{a: [1, 2]}'}"
Use single quotes in Partial Value
format:
az some-command --contact name="'Bill RP'" data="'{a: [1, 2]}'"
In the next example, it's also possible to remove single quotes for the name
key. The parser doesn't distinguish between a Full Value
expression, null
value, or the ??
flag.
Use Partial Value
format:
az some-command --contact name="Bill RP"
The apostrophe character ('
) needs special escape (/'
) in Single Quotes String in order to distinguish the end of a Single Quotes String. A forward slash (/
) is an escape character only after an apostrophe ('
) in Single Quotes String. If /
isn't in Single Quotes String or /
isn't after '
, /
is a normal character.
Pass Full Value
format:
az some-command --contact "{name:'bill'/s',age:20,paid:true}"
Pass Partial Value
format:
az some-command --contact name="'bill'/s'"
If value
isn't in Single Quotes String, you don't need to add an escape character after '
.
Pass Partial Value
format:
az some-command --contact name="bill's"
Here's another example using the following JSON:
{
"name": "Bill",
"motto": "One man's bug is another man's lesson.",
"age": 20,
"paid": true,
"emails": [
"Bill@microsoft.com",
"Bill@outlook.com"
]
}
In Full Value
format, use a Single Quotes String and replace the '
with '/
.
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
format, a value containing an apostrophe can be parsed as string, surrounded by double quotes.
az some-command --contact motto="One man's bug is another man's lesson."
Sometime you need to pass a "null" string value. In order to distinguish with null
value, it needs to be a Single Quotes String.
For example if you want to pass "null" string into the name property in the --contact
parameter:
JSON:
{
"name": "null",
"age": 20,
"paid": true
}
Use Full Value
format:
az some-command --contact "{name:'null',age:20,paid:true}"
Use Partial Value
format:
az some-command --contact name="'null'"
Shorthand syntax support null
keyword in both Full Value
and Partial Value
formats.
For example if you want to pass following object with a null
value address property in the --contact
parameter:
{
"name": "Bill",
"age": 20,
"paid": true,
"emails": [
"Bill@microsoft.com",
"Bill@outlook.com"
],
"address": null
}
Use Full Value
format:
az some-command --contact "{name:Bill,age:20,paid:true,emails:[Bill@microsoft.com,Bill@outlook.com],address:null}"
Use Partial Value
format:
az some-command --contact name=Bill address=null
In update commands, a null
value is often used to unset properties of an object, or remove elements of an array or a dictionary.
{
"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": {}
}
If there already exists a resource with the JSON values shown above, passing a null
value in an update command resets the key's value.
az some-update-command --contact address=null
Here's another example that removes the first element of a resource's email:
az some-update-command --emails [0]=null
The use of double question marks ??
is a special keyword to show the available help for a parameter or subproperty. It can also be used within shorthand syntax to get help.
ملاحظة
The Bash shell uses ?
as a wildcard. Make sure the double question marks ??
are wrapped in the double quotes.
Show help message of --contact
parameter:
az some-command --contact "??"
Show help message of --contant
parameter when writing Full Value
:
az some-command --contact "{??"
az some-command --contact "{name:Bill,??"
Show help message of --contant.address
property when writing Full Value
:
az some-command --contact "{name:Bill,address:??"
Show help message of --contant.address.country
property when writing Full Value
:
az some-command --contact "{name:Bill,address:{country:??"
Show help message of --contant.emails
property when writing Full Value
:
az some-command --contact "{name:Bill,address:{country:USA},emails:??"
Show help message of the element of --contant.emails
property when writing Full Value
:
az some-command --contact "{name:Bill,address:{country:USA},emails:[??"
Show help message of --contant.address
property when writing Partial Value
:
az some-command --contact address="??"
Show help message of --contant.emails
property when writing Partial Value
:
az some-command --contact emails="??"
Show help message of the element of --contant.emails
property when writing Partial Value
:
az some-command --contact emails[0]="??"
ملاحظات Azure CLI
Azure CLI هو مشروع مصدر مفتوح. حدد رابطًا لتقديم الملاحظات:
التدريب
الوحدة النمطية
النشر إلى بيئات Azure متعددة باستخدام ميزات قالب JSON ARM - Training
إدارة عمليات نشر بيئة Azure المتعددة لقوالب JSON Azure Resource Manager (قوالب ARM) باستخدام الوظائف والمتغيرات والعلامات وملفات المعلمات.