Azure CLI komutları için çıkış biçimleri

Azure CLI varsayılan çıkış biçimi olarak JSON kullanır, ama başka biçimler de sağlar. CLI çıkışını biçimlendirmek için --output (--out veya -o) parametresini kullanın. Bağımsız değişken değerleri ve çıkış türleri şunlardır:

--output Description
json JSON dizesi. Bu ayar varsayılan ayardır
jsonc Renklendirilmiş JSON
yaml YAML, JSON için okunabilir bir alternatiftir
table Sütun başlıkları olarak anahtarlar içeren ASCII tablosu
tsv Sekmeyle ayrılmış değerler, anahtar olmadan
none Hatalar ve uyarılar dışında çıkış yok

JSON çıkış biçimi

Aşağıdaki örnek, aboneliklerinizdeki sanal makinelerin listesini varsayılan JSON biçiminde görüntüler.

az vm list --output json

Aşağıdaki çıkışta kısaltma ve değiştirilen bilgileri belirleme amacıyla bazı alanlar atlanmıştır.

[
  {
    "availabilitySet": null,
    "diagnosticsProfile": null,
    "hardwareProfile": {
      "vmSize": "Standard_DS1"
    },
    "id": "/subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/DemoVM010",
    "instanceView": null,
    "licenseType": null,
    "location": "westus",
    "name": "DemoVM010",
    "networkProfile": {
      "networkInterfaces": [
        {
          "id": "/subscriptions/.../resourceGroups/demorg1/providers/Microsoft.Network/networkInterfaces/DemoVM010VMNic",
          "primary": null,
          "resourceGroup": "demorg1"
        }
      ]
    },
          ...
          ...
          ...
]

YAML çıkış biçimi

yaml biçimi, çıkışı bir düz metin serileştirme biçimi olan YAML biçiminde yazdırır. YAML, JSON'dan daha kolay okunabilir ve bu biçime kolayca eşlenebilir. Bazı uygulamalar ve CLI komutları, yapılandırma girişi olarak JSON yerine YAML alır.

az vm list --out yaml

Aşağıdaki çıkışta kısaltma ve değiştirilen bilgileri belirleme amacıyla bazı alanlar atlanmıştır.

- availabilitySet: null
  diagnosticsProfile: null
  hardwareProfile:
    vmSize: Standard_DS1_v2
  id: /subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/DemoVM010
  identity: null
  instanceView: null
  licenseType: null
  location: westus
  name: ExampleVM1
  networkProfile:
    networkInterfaces:
    - id: /subscriptions/.../resourceGroups/DemoRG1/providers/Microsoft.Network/networkInterfaces/DemoVM010Nic
      primary: null
      resourceGroup: DemoRG1
  ...
...

Tablo çıkış biçimi

table biçimi çıkışı bir ASCII tablosu olarak yazdırarak okunmasını ve taranmasını kolaylaştırır. İç içe geçmiş nesneler tablo çıkışına dahil edilmez ancak bir sorgunun parçası olarak yine filtrelenebilir. Bazı alanlar tabloya dahil edilmez; bu nedenle verilere yönelik hızlı ve insanlar tarafından aranabilir bir genel bakış edinmek istediğinizde bu biçim idealdir.

az vm list --out table
Name         ResourceGroup    Location
-----------  ---------------  ----------
DemoVM010    DEMORG1          westus
demovm212    DEMORG1          westus
demovm213    DEMORG1          westus
KBDemo001VM  RGDEMO001        westus
KBDemo020    RGDEMO001        westus

Liste çıkışında gösterilmesini istediğiniz özellikleri ve sütunları özelleştirmek için --query parametresini kullanabilirsiniz. Aşağıdaki örnekte, list komutunda yalnızca VM Adı ve Kaynak Grubu Adı’nın nasıl seçildiği gösterilir.

az vm list --query "[].{resource:resourceGroup, name:name}" -o table
Resource    Name
----------  -----------
DEMORG1     DemoVM010
DEMORG1     demovm212
DEMORG1     demovm213
RGDEMO001   KBDemo001VM
RGDEMO001   KBDemo020

Not

Tablo görünümünde bazı anahtarlar varsayılan olarak yazdırılmaz. Bunlar id, type ve etag anahtarlarıdır. Bunları çıkışınızda görmeniz gerekiyorsa, anahtar adını değiştirip filtrelemeden kaçınmak için JMESPath yeniden anahtarlama özelliğini kullanabilirsiniz.

az vm list --query "[].{objectID:id}" -o table

Verileri filtrelemek için sorguları kullanma hakkında daha fazla bilgi için bkz. Azure CLI ile JMESPath sorgularını kullanma.

TSV çıkış biçimi

tsv çıkış biçimi ek biçimlendirme, anahtarlar veya diğer semboller olmadan sekme ve yeni satır ile ayrılmış değerleri döndürür. Bu biçim, çıkışın herhangi bir biçimdeki metni işlemesi gereken başka komutlarda ve araçlarda kullanılmasını kolaylaştırır. table biçimi gibi tsv biçimi de iç içe nesneleri yazdırmaz.

Önceki örnek tsv seçeneğiyle kullanıldığında çıkış olarak sekmeyle ayrılmış bir sonuç verir.

az vm list --out tsv
None    None        /subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/DemoVM010    None    None    westus    DemoVM010            None    Succeeded    DEMORG1    None            Microsoft.Compute/virtualMachines    cbd56d9b-9340-44bc-a722-25f15b578444
None    None        /subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/demovm212    None    None    westus    demovm212            None    Succeeded    DEMORG1    None            Microsoft.Compute/virtualMachines    4bdac85d-c2f7-410f-9907-ca7921d930b4
None    None        /subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/demovm213    None    None    westus    demovm213            None    Succeeded    DEMORG1    None            Microsoft.Compute/virtualMachines    2131c664-221a-4b7f-9653-f6d542fbfa34
None    None        /subscriptions/.../resourceGroups/RGDEMO001/providers/Microsoft.Compute/virtualMachines/KBDemo001VM    None    None    westus    KBDemo001VM            None    Succeeded    RGDEMO001    None            Microsoft.Compute/virtualMachines    14e74761-c17e-4530-a7be-9e4ff06ea74b
None    None        /subscriptions/.../resourceGroups/RGDEMO001/providers/Microsoft.Compute/virtualMachines/KBDemo020   None    None    westus    KBDemo020            None    Succeeded    RGDEMO001    None            Microsoft.Compute/virtualMachines    36baa9-9b80-48a8-b4a9-854c7a858ece

TSV çıkış biçiminin bir kısıtlaması, çıkış sıralaması garantisi değildir. CLı, yanıt JSON değerlerini alfabetik olarak sıralayarak sıralamayı korumak için en iyi çabayı yapar ve ardından bu değerleri TSV çıktısına göre yazdırma. Bu, Azure hizmeti yanıt biçimi değişemediğinden, siparişin her zaman aynı olduğundan emin değildir.

Tutarlı sıralamayı zorlamak için --query parametresini ve MultiSelect liste biçimini kullanmanız gerekir. Bir CLı komutu tek bir JSON sözlüğü döndürdüğünde, [key1, key2, ..., keyN] bir anahtar sırası zorlamak için genel biçimini kullanın. Bir dizi döndüren CLı komutları için, [].[key1, key2, ..., keyN] sütun değerlerini sıralamak üzere genel biçimi kullanın.

Örneğin, yukarıda görüntülenecek bilgileri KIMLIK, konum, kaynak grubu ve VM adı ile sıralamak için:

az vm list --out tsv --query '[].[id, location, resourceGroup, name]'
/subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/DemoVM010    westus    DEMORG1    DemoVM010
/subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/demovm212    westus    DEMORG1    demovm212
/subscriptions/.../resourceGroups/DEMORG1/providers/Microsoft.Compute/virtualMachines/demovm213    westus    DEMORG1    demovm213
/subscriptions/.../resourceGroups/RGDEMO001/providers/Microsoft.Compute/virtualMachines/KBDemo001VM     westus  RGDEMO001       KBDemo001VM
/subscriptions/.../resourceGroups/RGDEMO001/providers/Microsoft.Compute/virtualMachines/KBDemo020       westus  RGDEMO001       KBDemo020

Sonraki örnekte, bash içinde tsv çıkışının diğer komutlara nasıl aktarıldığı gösterilir. Sorgu çıkış ve zorla sıralamayı filtrelemek için kullanılır, grep "RGD" metni olan öğeleri seçer ve ardından cut komut, çıktıda sanal makinenin adını göstermek için dördüncü alanı seçer.

az vm list --out tsv --query '[].[id, location, resourceGroup, name]' | grep RGD | cut -f4
KBDemo001VM
KBDemo020

Varsayılan çıkış biçimini ayarlama

az config setOrtamınızı ayarlamak ve çıkış biçimleri için varsayılan ayarları oluşturmak için komutunu kullanın. Varsayılan çıkış biçimi json.

az config set core.output=<format>
Welcome to the Azure CLI! This command will guide you through logging in and setting some default values.

Your settings can be found at /home/defaultuser/.azure/config
Your current configuration is as follows:

  ...

Do you wish to change your settings? (y/N): y

What default output format would you like?
 [1] json - JSON formatted output that most closely matches API responses.
 [2] jsonc - Colored JSON formatted output that most closely matches API responses.
 [3] table - Human-readable output format.
 [4] tsv - Tab- and Newline-delimited. Great for GREP, AWK, etc.
 [5] yaml - YAML formatted output. An alternative to JSON. Great for configuration files.
 [6] none - No output, except for errors and warnings.
Please enter a choice [1]:

Ortamınızı yapılandırma hakkında daha fazla bilgi için bkz. Azure CLI yapılandırması.