Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Interfejs wiersza polecenia platformy Azure używa formatu JSON jako domyślnego formatu danych wyjściowych, ale oferuje inne formaty. Użyj parametru --output
(--out
lub -o
), aby sformatować dane wyjściowe interfejsu wiersza polecenia platformy Azure. Wartości argumentów i typy danych wyjściowych to:
--wyjście | Opis |
---|---|
json |
Ciąg JSON. To ustawienie jest ustawieniem domyślnym |
jsonc |
Kolorowany kod JSON |
table |
Tabela ASCII z kluczami jako nagłówkami kolumn |
tsv |
Wartości rozdzielane tabulatorami bez kluczy |
yaml |
YAML, czytelna dla człowieka alternatywa dla formatu JSON |
yamlc |
Kolorowany YAML |
none |
Brak danych wyjściowych innych niż błędy i ostrzeżenia |
Ostrzeżenie
Aby uniknąć uwidaczniania tajnych danych, takich jak klucze interfejsu API i poświadczenia, użyj formatu wyjściowego z none
lub zapisz dane wyjściowe polecenia w zmiennej.
Uwaga: Niektóre środowiska CI/CD mogą przechowywać wyniki wykonanych poleceń w dziennikach. Dobrym rozwiązaniem jest potwierdzenie zawartości tych plików dziennika i osób mających dostęp do dzienników. Aby uzyskać więcej informacji, zobacz Brak formatu danych wyjściowych.
Format wyjściowy JSON (domyślny)
Poniższy przykład przedstawia listę maszyn wirtualnych w subskrypcjach w domyślnym formacie JSON.
az vm list --output json
Następujące dane wyjściowe mają niektóre pola pominięte dla zwięzłości, a informacje identyfikacyjne zostały zastąpione.
[
{
"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"
}
]
},
...
...
...
]
Format danych wyjściowych YAML
Format yaml
wyświetla dane wyjściowe jako YAML, format serializacji danych w postaci zwykłego tekstu. Kod YAML jest zwykle łatwiejszy do odczytania niż JSON i można go przekształcić na ten format. Niektóre aplikacje i polecenia interfejsu wiersza polecenia platformy Azure przyjmują kod YAML jako dane wejściowe konfiguracji zamiast JSON.
az vm list --output yaml
Następujące dane wyjściowe mają niektóre pola pominięte dla zwięzłości, a informacje identyfikacyjne zostały zastąpione.
- 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
...
...
Format danych wyjściowych tabeli
Format table
wyświetla dane wyjściowe jako tabelę ASCII, co ułatwia odczytywanie i skanowanie. Zagnieżdżone obiekty nie są uwzględniane w danych wyjściowych tabeli, ale nadal można je filtrować jako część zapytania. Niektóre pola nie są uwzględnione w tabeli, więc ten format jest najlepszy, gdy chcesz szybko uzyskać przegląd danych, który łatwo można przeszukać ręcznie.
az vm list --output table
Name ResourceGroup Location
----------- --------------- ----------
DemoVM010 DEMORG1 westus
demovm212 DEMORG1 westus
demovm213 DEMORG1 westus
KBDemo001VM RGDEMO001 westus
KBDemo020 RGDEMO001 westus
Możesz użyć parametru --query
, aby dostosować właściwości i kolumny, które mają być wyświetlane w danych wyjściowych listy. W poniższym przykładzie pokazano, jak wybrać tylko nazwę maszyny wirtualnej i nazwę grupy zasobów w poleceniu list
.
az vm list --query "[].{resource:resourceGroup, name:name}" --output table
Resource Name
---------- -----------
DEMORG1 DemoVM010
DEMORG1 demovm212
DEMORG1 demovm213
RGDEMO001 KBDemo001VM
RGDEMO001 KBDemo020
Uwaga / Notatka
Niektóre klucze nie są domyślnie drukowane w widoku tabeli. Te klucze obejmują id
, type
i etag
. Jeśli potrzebujesz ich w danych wyjściowych, możesz użyć funkcji zmiany klucza JMESPath, aby zmienić nazwę klucza i uniknąć odfiltrowania.
az vm list --query "[].{objectID:id}" --output table
Aby uzyskać więcej informacji na temat używania zapytań do filtrowania danych, zobacz Używanie zapytań JMESPath z interfejsem wiersza polecenia platformy Azure.
Format danych wyjściowych TSV
Format tsv
danych wyjściowych zwraca wartości rozdzielane tabulatorami i nowymi liniami bez dodatkowego formatowania, kluczy lub innych symboli. Ten format ułatwia korzystanie z danych wyjściowych w innych poleceniach i narzędziach, które muszą przetwarzać tekst w jakiejś formie. Podobnie jak format table
, tsv
nie drukuje zagnieżdżonych obiektów.
Używając powyższego przykładu z opcją tsv
, uzyskuje się wynik rozdzielony tabulatorami.
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
Jednym z ograniczeń formatu danych wyjściowych tsv
jest to, że nie ma gwarancji na kolejność danych wyjściowych. Interfejs wiersza polecenia CLI Azure dokłada wszelkich starań, aby zachować kolejność, sortując klucze w odpowiedzi JSON alfabetycznie, a następnie drukując ich wartości w celu uzyskania tsv
danych wyjściowych. Nie ma gwarancji, że zamówienie jest zawsze identyczne, ponieważ format odpowiedzi usługi platformy Azure może ulec zmianie.
Aby wymusić spójne porządkowanie, należy użyć parametru --query
i formatu listy wielokrotnego wyboru . Gdy polecenie Azure CLI zwraca pojedynczy słownik JSON, użyj ogólnego formatu [key1, key2, ..., keyN]
, aby wymusić kolejność kluczy. W przypadku poleceń CLI platformy Azure, które zwracają tablicę, użyj ogólnego formatu [].[key1, key2, ..., keyN]
, aby uporządkować wartości kolumn.
Aby na przykład uporządkować te informacje wyświetlane według identyfikatora, lokalizacji, grupy zasobów i nazwy maszyny wirtualnej:
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
Następny przykład pokazuje, jak można przekazywać dane wyjściowe tsv
do innych poleceń w Bash. Zapytanie służy do filtrowania danych wyjściowych i wymuszania porządkowania, grep
wybiera elementy zawierające tekst RGD
, a następnie cut
polecenie wybiera czwarte pole, aby wyświetlić nazwę maszyny wirtualnej w danych wyjściowych.
az vm list --output tsv --query '[].[id, location, resourceGroup, name]' | grep RGD | cut -f4
KBDemo001VM
KBDemo020
Format tsv
danych wyjściowych jest często używany podczas przypisywania wartości do zmiennych. W tym przykładzie jest pobierany aktywny identyfikator subskrypcji i zapisuje go w zmiennej do użycia w skrypcie.
# Bash Script
subscriptionID=$(az account show --query id --output tsv)
echo "Using subscription ID $subscriptionID"
Aby uzyskać więcej --query
przykładów parametrów, zobacz Jak wykonywać zapytania dotyczące danych wyjściowych polecenia interfejsu wiersza polecenia platformy Azure.
Brak formatu danych wyjściowych
Niektóre polecenia interfejsu wiersza polecenia platformy Azure zawierają informacje wyjściowe, które należy chronić. Oto cztery przykłady:
- Hasła
- Łańcuchy połączenia
- Tajemnice
- Klucze
Aby chronić wpisy tajne i klucze podczas korzystania z poleceń interfejsu wiersza polecenia platformy Azure, wybierz jedną z następujących opcji:
Opcja | Korzyść | Przypadek użycia |
---|---|---|
--output none format danych wyjściowych |
Konsola nie wyświetla poufnych informacji. Jeśli polecenie zakończy się niepowodzeniem, nadal są wyświetlane komunikaty o błędach. | 1. Użyj, gdy dane wyjściowe polecenia można będzie pobrać w późniejszym czasie. |
2. Użyj, kiedy nie potrzebujesz uzyskiwać danych wyjściowych. | ||
3. Typowy wybór, gdy tożsamość zarządzana lub jednostka usługi jest używana do zarządzania zasobami platformy Azure. | ||
parametr --query |
Przechowuje dane wyjściowe w zmiennej. | 1. Użyj, gdy nie można później pobrać danych wyjściowych polecenia. |
2. Użyj wartości wyjściowej polecenia, gdy musisz ją zastosować w skrypcie. |
Pobieranie informacji o zabezpieczeniach w późniejszym czasie
Niektóre sekrety Azure można pobrać w późniejszym czasie. Przykładem są wpisy tajne przechowywane w usłudze Azure Key Vault. W tym przykładzie utwórz sekret w Azure Key Vault za pomocą polecenia az keyvault secret set i użyj --output none
. Wpis tajny można pobrać później za pomocą polecenia az keyvault secret show .
az keyvault secret set --name MySecretName \
--vault-name MyKeyVaultName \
--value MySecretValue\
--output none
Przechowaj informacje o zabezpieczeniach w zmiennej
Użycie --query
funkcji do przechowywania danych wyjściowych w zmiennej nie jest technicznie formatem danych wyjściowych. Jest to rozwiązanie do ochrony tajemnic i jest alternatywą dla używania --output none
. Na przykład, gdy zresetujesz poświadczenia głównej jednostki usługi, hasło nie może być ponownie odzyskane.
Zresetuj poświadczenia jednostki usługi zwracające dane wyjściowe w domyślnym formacie JSON:
# reset service principal credentials using default output format (json).
az ad sp credential reset --id myServicePrincipalID --output json
Dane wyjściowe konsoli pokazujące nowe hasło.
{
"appId": "myServicePrincipalID",
"password": "myServicePrincipalNewPassword",
"tenant": "myTenantID"
}
Lepszym rozwiązaniem jest zwracanie poufnych informacji do zmiennej.
# 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"
Aby uzyskać więcej przykładów dotyczących przechowywania danych wyjściowych w zmiennej, zobacz Używanie interfejsu wiersza polecenia platformy Azure z powodzeniem — przekazywanie wartości do innego polecenia. Aby dowiedzieć się więcej na temat --query
składni parametrów, zobacz Jak zapytać o dane wyjściowe poleceń Azure CLI.
Ustawianie domyślnego formatu danych wyjściowych
Polecenia interfejsu wiersza polecenia platformy Azure zapewniają dane wyjściowe, które można kontrolować na dwa sposoby:
Kontrolka danych wyjściowych | Korzyść | Instrukcja |
---|---|---|
Ustawienie globalne | Wybierz domyślną wartość wyjściową, która jest najbardziej używana, aby nie trzeba było stale podawać parametru --output dla każdego polecenia odwołania. |
Określ domyślny format danych wyjściowych przy użyciu az config set. |
Parametr polecenia | Określ dane wyjściowe na poziomie polecenia i zapewnij skryptom maksymalną elastyczność. Możesz kontrolować dane wyjściowe konsoli i zmienne dane wejściowe dla każdego polecenia referencyjnego. | Zastąp ustawienie domyślne, używając parametru --output polecenia referencyjnego. |
Domyślne dane wyjściowe interfejsu wiersza polecenia platformy Azure to json
. Ustaw domyślne dane wyjściowe na none
, gdy dane wyjściowe konsoli nie są potrzebne.
az config set core.output=none
Możesz zastąpić domyślne dane wyjściowe dowolnego polecenia referencyjnego Azure CLI, używając parametru --output
. Oto skrypt poleceń, które zmieniają i testują dane wyjściowe polecenia:
# 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