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 Açıklama
json JSON dizesi. Bu ayar varsayılan ayardır
jsonc Renklendirilmiş JSON
table Sütun başlığı olarak anahtarlar içeren ASCII tablosu
tsv Sekmeyle ayrılmış değerler, anahtar olmadan
yaml JSON'a insan tarafından okunabilir bir alternatif olan YAML
yamlc Renklendirilmiş YAML
none Hatalar ve uyarılar dışında çıkış yok

Uyarı

API anahtarları ve kimlik bilgileri gibi gizli dizileri none açığa çıkarmaktan kaçınmak için bir değişkende komut çıktısının çıkış biçimini kullanın veya depolayın. Not: Bazı CI/CD ortamları, yürütülen komutların çıkışını günlüklerde depolar. Bu günlük dosyalarında yazılanları ve günlüklere kimlerin erişebildiğini onaylamak iyi bir uygulamadır. Daha fazla bilgi için bkz . Yok çıkış biçimi.

JSON çıkış biçimi (varsayılan)

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

Çıkış tsv biçimi ek biçimlendirme, anahtar veya diğer simgeler olmadan sekme ve yeni satırla ayrılmış değerler 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 --output 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ında garanti olmamasıdır. CLI, JSON yanıtında anahtarları alfabetik olarak sıralayarak ve ardından TSV çıktısı için değerlerini yazdırarak sıralamayı korumak için en iyi çabayı gösterir. Azure hizmeti yanıt biçimi değişebileceğinden siparişin her zaman aynı olduğunu garanti etmek gerekmez.

Tutarlı sıralamayı zorunlu kılmak için parametresini --query ve çoklu seçim listesi biçimini kullanmanız gerekir. CLI komutu tek bir JSON sözlüğü döndürdüğünde, bir anahtar sırasını zorlamak için genel biçimi [key1, key2, ..., keyN] kullanın. Dizi döndüren CLI komutları için sütun değerlerini sıralamak için genel biçimi [].[key1, key2, ..., keyN] kullanın.

Örneğin, yukarıda görüntülenen bilgileri kimliğe, konuma, kaynak grubuna ve VM adına göre sıralamak için:

az vm list --output 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 çıktıyı filtrelemek ve sıralamayı zorlamak için kullanılır, grep içinde "RGD" metni bulunan öğeleri seçer, ardından cut komut çıktıda VM'nin adını göstermek için dördüncü alanı seçer.

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

Çıkış tsv biçimi genellikle değişkenlere değer atarken kullanılır. Bu örnek, etkin abonelik kimliğini alır ve betikte kullanmak üzere bir değişkende depolar.

# Bash Script
subscriptionID=$(az account show --query id --output tsv)
echo "Using subscription ID $subscriptionID"

--query Diğer parametre örnekleri için bkz. Azure CLI komut çıktısını sorgulama.

Çıkış biçimi yok

Korumanız gereken bazı Azure CLI komutları çıkış bilgileri. Dört örnek aşağıda verilmiştir:

  • Parola
  • bağlantı dizeleri
  • Sır -larını
  • keys

Azure CLI komutlarını kullanırken gizli dizileri ve anahtarları korumak için şu seçeneklerden birini belirleyin:

Seçenek Avantaj Kullanım örneği
--output none çıkış biçimi Konsolunuzda hassas bilgilerin görüntülenmesini engeller. Komutunuz başarısız olursa hata iletileri almaya devam edersiniz. 1. Komut çıktısı daha sonra alınabildiğinde kullanın.
2. Çıkışa ihtiyacınız olmadığında kullanın.
3. Azure kaynaklarını yönetmek için yönetilen kimlik veya hizmet sorumlusu kullanılırken sık kullanılan bir seçenektir.
--query Parametre Çıkışı bir değişkende depolar. 1. Komut çıktısı daha sonra alınamıyorsa kullanın.
2. Betikte bir komut çıktısı değeri kullanmanız gerektiğinde kullanın.

Güvenlik bilgilerini daha sonra kullanma none ve alma

Bazı Azure gizli dizileri daha sonra alınabilir. Azure Key Vault'ta depolanan gizli diziler iyi bir örnektir. Bu örnekte az keyvault secret set--output none seçeneğini kullanarak bir Azure Key Vault gizli dizisi oluşturun. Gizli diziyi daha sonra az keyvault secret show komutunu kullanarak alabilirsiniz.

az keyvault secret set --name MySecretName \
                       --vault-name MyKeyVaultName \
                       --value MySecretValue\
                       --output none

Güvenlik bilgilerini kullanma --query ve bir değişkene döndürme

Çıkışı bir değişkende depolamak için kullanımı --query teknik olarak bir çıkış biçimi değildir. Gizli dizileri korumaya yönelik bir çözümdür ve kullanmaya --output nonealternatiftir. Örneğin, bir hizmet sorumlusu kimlik bilgilerini sıfırladığınızda parola yeniden alınamaz.

Varsayılan json biçiminde çıkış döndüren bir hizmet sorumlusu kimlik bilgilerini sıfırlayın:

# reset service principal credentials using default output format (json).
az ad sp credential reset --id myServicePrincipalID --output json

Konsoldaki yeni parolayı gösteren konsol çıkışı.

{
  "appId": "myServicePrincipalID",
  "password": "myServicePrincipalNewPassword",
  "tenant": "myTenantID"
}

Daha iyi bir çözüm, hassas bilgileri bir değişkene döndürmektir.

# Bash Script
# reset service principal credentials returning results to a variable
myNewPassword=$(az ad sp credential reset --id myServicePrincipalID --query password --output tsv)

# Display the new password (remove this line in production for security)
echo "New password: $myNewPassword"

Çıktıyı bir değişkene depolama hakkında daha fazla örnek için bkz . Azure CLI'yi başarıyla kullanma - değerleri başka bir komuta geçirme. Parametre söz dizimi hakkında --query daha fazla bilgi edinmek için bkz . Azure CLI komut çıktısını sorgulama.

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

Azure CLI komutları, iki yolla denetlenebilen bir çıkış sağlar:

Çıkış denetimi Avantaj Nasıl yapılır
Genel ayar Her başvuru komutu için sürekli bir parametre sağlamanız gerekmemesi için en çok kullandığınız varsayılan çıkış --output değerini seçin. az config set kullanarak varsayılan bir çıkış biçimi belirtin.
Komut parametresi Çıktıyı komut düzeyinde belirtin ve betiklerinize maksimum esneklik sağlayın. Her başvuru komutu için konsol çıkışını ve değişken girişini denetlersiniz. Başvuru komutunun --output parametresini kullanarak varsayılan ayarı geçersiz kılın.

Azure CLI için varsayılan çıktıdır json. Konsol çıkışı none gerekli olmadığında varsayılan çıkışı olarak ayarlayın.

az config set core.output=none

parametresini kullanarak herhangi bir Azure CLI başvuru komutunun varsayılan çıktısının --output üzerine yazabilirsiniz. Komut çıkışını değiştiren ve test eden komutların betiği aşağıdadır:

# set your default output to table
az config set core.output=table

# show your active subscription in table format
# notice how only a subset of properties are returned in the table
az account show

# override your table default and show your active subscription in jsonc format
az account show --output jsonc

# reset your default output to json
az config set core.output=json

Ayrıca bkz.