Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A CLI do Azure usa JSON como seu formato de saída padrão, mas oferece outros formatos. Use o parâmetro --output
(--out
ou -o
) para formatar a saída da CLI. Os valores de argumento e os tipos de saída são:
--saída | Descrição |
---|---|
json |
Cadeia de caracteres JSON. Essa configuração é o padrão |
jsonc |
JSON colorido |
table |
Tabela ASCII com teclas como cabeçalhos de coluna |
tsv |
Valores separados por tabulações, sem teclas |
yaml |
YAML, uma alternativa legível por humanos ao JSON |
yamlc |
YAML colorido |
none |
Nenhuma saída além de erros e avisos |
Advertência
Use um formato de saída de none
ou armazene a saída do comando em uma variável para evitar a exposição de segredos, como chaves de API e credenciais.
Observação: Certos ambientes CI/CD podem armazenar a saída dos comandos executados em logs. É uma boa prática confirmar o que está escrito nesses arquivos de log e quem tem acesso aos logs.
Para obter mais informações, consulte Nenhum formato de saída.
Formato de saída JSON (padrão)
O exemplo a seguir exibe a lista de máquinas virtuais em suas assinaturas no formato JSON padrão.
az vm list --output json
A saída apresentada a seguir tem alguns campos omitidos por brevidade, e as informações de identificação foram substituídas.
[
{
"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"
}
]
},
...
...
...
]
Formato de saída YAML
O yaml
formato imprime a saída como YAML, um formato de serialização de dados de texto simples. YAML tende a ser mais fácil de ler do que JSON, e facilmente mapeia para esse formato. Alguns aplicativos e comandos da CLI usam YAML como entrada de configuração, em vez de JSON.
az vm list --output yaml
A saída a seguir tem alguns campos omitidos para simplificar e informações identificadoras substituídas.
- 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
...
...
Formato de saída da tabela
O table
formato imprime a saída como uma tabela ASCII, facilitando a leitura e a digitalização. Os objetos aninhados não são incluídos nos resultados da tabela, mas ainda podem ser filtrados como parte de uma consulta. Alguns campos não estão incluídos na tabela, por isso este formato é melhor quando pretende uma visão geral rápida e pesquisável por humanos.
az vm list --output table
Name ResourceGroup Location
----------- --------------- ----------
DemoVM010 DEMORG1 westus
demovm212 DEMORG1 westus
demovm213 DEMORG1 westus
KBDemo001VM RGDEMO001 westus
KBDemo020 RGDEMO001 westus
Você pode usar o --query
parâmetro para personalizar as propriedades e colunas que deseja mostrar na saída da lista. O exemplo a seguir mostra como selecionar apenas o Nome da VM e o Nome do list
Grupo de Recursos no comando.
az vm list --query "[].{resource:resourceGroup, name:name}" --output table
Resource Name
---------- -----------
DEMORG1 DemoVM010
DEMORG1 demovm212
DEMORG1 demovm213
RGDEMO001 KBDemo001VM
RGDEMO001 KBDemo020
Observação
Algumas teclas não são impressas na vista de tabela por predefinição. Estes são id
, type
, e etag
. Se precisa vê-los na sua saída, pode usar a função de reatribuição de JMESPath para alterar o nome da chave e evitar a filtragem.
az vm list --query "[].{objectID:id}" --output table
Para saber mais sobre como usar consultas para filtrar dados, consulte Usar consultas JMESPath com a CLI do Azure.
Formato de saída TSV
O formato de saída tsv
retorna valores separados por tabulação e nova linha sem formatação extra, chaves ou outros símbolos. Este formato facilita a integração da saída com outros comandos e ferramentas que precisam processar o texto de alguma maneira. Como o formato table
, tsv
não imprime objetos aninhados.
Usar o exemplo anterior com a opção tsv
gera o resultado separado por tabulações.
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
Uma limitação do formato de saída TSV é que não é garantida a ordem dos dados de saída. A CLI faz um esforço melhor para preservar a ordenação classificando as chaves no JSON de resposta alfabeticamente e, em seguida, imprimindo seus valores em ordem para a saída TSV. Não há garantia de que o pedido seja sempre idêntico, pois o formato de resposta do serviço do Azure pode ser alterado.
Para impor uma ordem consistente, precisarás usar o parâmetro --query
e o formato de lista de seleção múltipla. Quando um comando CLI retorna um único dicionário JSON, use o formato [key1, key2, ..., keyN]
geral para forçar uma ordem de chave. Para comandos da CLI que retornam uma matriz, use o formato [].[key1, key2, ..., keyN]
geral para ordenar valores de coluna.
Por exemplo, para ordenar as informações exibidas acima por ID, local, grupo de recursos e nome da VM:
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
O próximo exemplo mostra como canalizar a saída tsv
para outros comandos em bash. A consulta é usada para filtrar a saída e forçar a ordenação, grep
seleciona itens que têm texto "RGD" neles, em seguida, o cut
comando seleciona o quarto campo para mostrar o nome da VM na saída.
az vm list --output tsv --query '[].[id, location, resourceGroup, name]' | grep RGD | cut -f4
KBDemo001VM
KBDemo020
O tsv
formato de saída é frequentemente usado ao atribuir valores a variáveis. Este exemplo obtém a ID de assinatura ativa e a armazena em uma variável para uso em um script.
# Bash Script
subscriptionID=$(az account show --query id --output tsv)
echo "Using subscription ID $subscriptionID"
Para obter mais --query
exemplos de parâmetros, consulte Como consultar a saída do comando da CLI do Azure.
Nenhum formato de saída
Algumas informações de saída de comandos da CLI do Azure que você deve proteger. Eis quatro exemplos:
- palavras-passe
- Cadeias de conexão
- segredos
- Teclas
Para proteger segredos e chaves ao usar comandos da CLI do Azure, escolha uma destas opções:
Opção | Benefício | Caso de uso |
---|---|---|
--output none formato de saída |
Impede que informações confidenciais sejam exibidas no console. Se o comando falhar, você ainda receberá mensagens de erro. | 1. Use quando a saída do comando puder ser recuperada posteriormente. |
2. Use quando não tiver necessidade de obter saída. | ||
3. Uma escolha comum quando uma identidade gerenciada ou uma entidade de serviço está sendo usada para gerenciar recursos do Azure. | ||
parâmetro --query |
Armazena a saída em uma variável. | 1. Use quando a saída do comando não puder ser recuperada posteriormente. |
2. Use quando precisar usar um valor de saída de comando em um script. |
Usar none
e recuperar posteriormente informações de segurança
Alguns Os segredos do Azure podem ser recuperados posteriormente. Um bom exemplo são os segredos armazenados no Cofre da Chave do Azure. Neste exemplo, crie um segredo do Azure Key Vault usando az keyvault secret set com a --output none
opção. Você pode recuperar o segredo mais tarde usando o comando az keyvault secret show .
az keyvault secret set --name MySecretName \
--vault-name MyKeyVaultName \
--value MySecretValue\
--output none
Usar --query
e retornar informações de segurança para uma variável
O uso de --query
para armazenar a saída em uma variável tecnicamente não é um formato de saída. É uma solução para proteger segredos, e é uma alternativa ao uso --output none
. Por exemplo, quando se redefine uma credencial de principal de serviço, a senha não pode ser recuperada.
Redefina uma credencial de entidade de serviço retornando a saída no formato json padrão:
# reset service principal credentials using default output format (json).
az ad sp credential reset --id myServicePrincipalID --output json
A nova senha exibida na saída do console.
{
"appId": "myServicePrincipalID",
"password": "myServicePrincipalNewPassword",
"tenant": "myTenantID"
}
Uma solução melhor é retornar informações confidenciais para uma variável.
# 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"
Para obter mais exemplos sobre como armazenar a saída para uma variável, consulte Usar a CLI do Azure com êxito - passar valores para outro comando. Para saber mais sobre --query
a sintaxe dos parâmetros, consulte Como consultar a saída do comando da CLI do Azure.
Definir o formato de saída padrão
Os comandos da CLI do Azure fornecem saída que pode ser controlada de duas maneiras:
Controlo de saída | Benefício | Como fazer |
---|---|---|
Cenário global | Selecione um valor de saída padrão que você mais usa para não precisar fornecer continuamente um --output parâmetro para cada comando de referência. |
Especifique um formato de saída padrão usando az config set. |
Parâmetro de comando | Especifique a saída no nível de comando e dê aos seus scripts a máxima flexibilidade. Você controla a saída do console e a entrada variável para cada comando de referência. | Anule a definição padrão utilizando o parâmetro do comando de referência --output . |
A saída padrão para a CLI do Azure é json
. Defina a saída padrão para none
quando a saída do console não for necessária.
az config set core.output=none
Você pode substituir a saída padrão de qualquer comando de referência da CLI do Azure usando o --output
parâmetro. Aqui está um script de comandos que alteram e testam a saída do comando:
# 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