Azure CLI 명령의 출력 형식
Azure CLI는 JSON을 기본 출력 형식으로 사용하지만 다른 형식을 제공합니다. --output
(--out
또는-o
) 매개 변수를 사용하여 CLI 출력의 서식을 지정합니다. 인수 값 및 출력 형식은 다음과 같습니다.
--출력 | 설명 |
---|---|
json |
JSON 문자열입니다. 이 설정은 기본값 |
jsonc |
색이 지정한 JSON |
table |
열 머리글로 키가 있는 ASCII 테이블 |
tsv |
키가 없는 탭으로 구분된 값 |
yaml |
YAML, JSON에 대한 사람이 읽을 수 있는 대안 |
yamlc |
색으로 구분된 YAML |
none |
오류 및 경고 이외의 출력 없음 |
Warning
API 키 및 자격 증명과 같은 비밀을 노출하지 않도록 변수에 명령 출력의 none
출력 형식을 사용하거나 저장합니다. 참고: 특정 CI/CD 환경에서는 실행된 명령의 출력을 로그에 저장할 수 있습니다. 로그 파일에 기록된 내용과 로그에 대한 액세스 권한이 있는 사용자를 확인하는 것이 좋습니다.
자세한 내용은 없음 출력 형식을 참조 하세요.
JSON 출력 형식(기본값)
다음 예제에서는 구독에 있는 가상 머신의 목록을 기본 JSON 형식으로 표시합니다.
az vm list --output json
다음 출력에는 간결성을 위해 생략된 일부 필드와 대체된 정보를 식별하는 필드가 있습니다.
[
{
"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 출력 형식
yaml
형식은 출력을 일반 텍스트 데이터 serialization 형식인 YAML로 인쇄합니다. YAML은 JSON보다 읽기 쉬우며 해당 형식에 쉽게 매핑됩니다. 일부 애플리케이션 및 CLI 명령은 JSON 대신 YAML을 구성 입력으로 사용합니다.
az vm list --output yaml
다음 출력에는 간결성을 위해 생략된 일부 필드와 대체된 정보를 식별하는 필드가 있습니다.
- 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
...
...
테이블 출력 형식
이 형식은 table
출력을 ASCII 테이블로 인쇄하므로 쉽게 읽고 스캔할 수 있습니다. 중첩된 개체는 테이블 출력에 포함되지 않지만 쿼리의 일부로 필터링될 수 있습니다. 일부 필드는 테이블에 포함되지 않으므로 이 형식은 사용자가 검색할 수 있는 빠른 데이터 개요를 원하는 경우에 가장 적합합니다.
az vm list --output table
Name ResourceGroup Location
----------- --------------- ----------
DemoVM010 DEMORG1 westus
demovm212 DEMORG1 westus
demovm213 DEMORG1 westus
KBDemo001VM RGDEMO001 westus
KBDemo020 RGDEMO001 westus
매개 변수를 --query
사용하여 목록 출력에 표시할 속성 및 열을 사용자 지정할 수 있습니다. 다음 예제에서는 명령에서 VM 이름 및 리소스 그룹 이름 list
만 선택하는 방법을 보여줍니다.
az vm list --query "[].{resource:resourceGroup, name:name}" --output table
Resource Name
---------- -----------
DEMORG1 DemoVM010
DEMORG1 demovm212
DEMORG1 demovm213
RGDEMO001 KBDemo001VM
RGDEMO001 KBDemo020
참고 항목
일부 키는 기본적으로 테이블 뷰에 인쇄되지 않습니다. 이러한 항목은 id
, type
및 etag
. 출력에서 이러한 항목을 확인해야 하는 경우 JMESPath 다시 키 지정 기능을 사용하여 키 이름을 변경하고 필터링을 방지할 수 있습니다.
az vm list --query "[].{objectID:id}" --output table
쿼리를 사용하여 데이터를 필터링하는 방법에 대한 자세한 내용은 Azure CLI에서 JMESPath 쿼리 사용을 참조하세요.
TSV 출력 형식
출력 형식은 tsv
추가 서식, 키 또는 기타 기호 없이 탭 및 줄 바꿈으로 구분된 값을 반환합니다. 이 형식은 출력을 어떤 형태의 텍스트를 처리해야 하는 다른 명령 및 도구에 간편하게 사용할 수 있습니다. table
형식과 마찬가지로 tsv
는 중첩된 개체를 인쇄하지 않습니다.
위의 예제를 옵션과 함께 tsv
사용하면 탭으로 구분된 결과가 출력됩니다.
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 출력 형식의 한 가지 제한 사항은 출력 순서를 보장하지 않는다는 것입니다. CLI는 응답 JSON에서 키를 사전순으로 정렬한 다음 TSV 출력을 위해 값을 인쇄하여 순서를 유지하기 위해 최선을 다합니다. Azure 서비스 응답 형식이 변경 될 수 있으므로 주문이 항상 동일하다는 보장은 없습니다.
일관된 순서를 적용하려면 매개 변수와 다중 선택 목록 형식을 사용해야 --query
합니다. CLI 명령이 단일 JSON 사전을 반환하는 경우 일반 형식 [key1, key2, ..., keyN]
을 사용하여 키 순서를 강제로 지정합니다. 배열을 반환하는 CLI 명령의 경우 일반 형식 [].[key1, key2, ..., keyN]
을 사용하여 열 값을 정렬합니다.
예를 들어 ID, 위치, 리소스 그룹 및 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
다음 예제에서는 출력을 bash의 다른 명령에 파이프하는 방법을 tsv
보여 줍니다. 쿼리는 출력을 필터링하고 순서를 강제 지정하는 데 사용되며, grep
텍스트가 "RGD"인 항목을 선택한 다음 cut
, 명령에서 네 번째 필드를 선택하여 출력에 VM의 이름을 표시합니다.
az vm list --output tsv --query '[].[id, location, resourceGroup, name]' | grep RGD | cut -f4
KBDemo001VM
KBDemo020
tsv
출력 형식은 변수에 값을 할당할 때 자주 사용됩니다. 다음은 활성 구독 ID를 가져오고 스크립트에서 사용할 변수에 저장하는 예제입니다.
# Bash Script
subscriptionID=$(az account show --query id --output tsv)
echo "Using subscription ID $subscriptionID"
더 많은 --query
매개 변수 예제는 Azure CLI 명령 출력을 쿼리하는 방법을 참조 하세요.
없음 출력 형식
일부 Azure CLI 명령은 보호해야 하는 정보를 출력합니다. 다음은 네 가지 예입니다.
- 암호
- 연결 문자열
- 비밀
- 키
Azure CLI 명령을 사용할 때 비밀 및 키를 보호하려면 다음 옵션 중 하나를 선택합니다.
옵션 | 혜택 | 사용 사례 |
---|---|---|
--output none 출력 형식 |
중요한 정보가 콘솔에 표시되지 않도록 합니다. 명령이 실패하면 오류 메시지가 계속 표시됩니다. | 1. 나중에 명령 출력 을 검색할 수 있는 경우에 사용합니다. |
2. 출력이 필요하지 않은 경우 사용합니다. | ||
3. 관리 ID 또는 서비스 주체를 사용하여 Azure 리소스를 관리하는 일반적인 선택입니다. | ||
--query 매개 변수 |
출력을 변수에 저장합니다. | 1. 나중에 명령 출력 을 검색할 수 없는 경우에 사용합니다. |
2. 스크립트에서 명령 출력 값을 사용해야 하는 경우에 사용합니다. |
나중에 보안 정보 사용 none
및 검색
일부 Azure 비밀은 나중에 검색할 수 있습니다. 좋은 예는 Azure Key Vault에 저장된 비밀입니다. 이 예제에서는 옵션과 함께 --output none
az keyvault secret set를 사용하여 Azure Key Vault 비밀을 만듭니다. 나중에 az keyvault secret show 명령을 사용하여 비밀을 검색할 수 있습니다.
az keyvault secret set --name MySecretName \
--vault-name MyKeyVaultName \
--value MySecretValue\
--output none
변수에 보안 정보 사용 --query
및 반환
변수에 --query
출력을 저장하는 데 사용하는 것은 기술적으로 출력 형식이 아닙니다. 비밀을 보호하는 솔루션이며 --output none
. 예를 들어 서비스 주체 자격 증명을 다시 설정하면 암호를 다시 검색할 수 없습니다.
기본 json 형식으로 출력을 반환하는 서비스 주체 자격 증명을 다시 설정합니다.
# reset service principal credentials using default output format (json).
az ad sp credential reset --id myServicePrincipalID --output json
콘솔의 새 암호를 보여 주는 콘솔 출력입니다.
{
"appId": "myServicePrincipalID",
"password": "myServicePrincipalNewPassword",
"tenant": "myTenantID"
}
더 나은 해결 방법은 중요한 정보를 변수에 반환하는 것입니다.
# 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"
변수 에 출력을 저장하는 방법에 대한 자세한 예제는 Azure CLI 사용 - 다른 명령에 값 전달을 참조하세요. 매개 변수 구문에 대한 --query
자세한 내용은 Azure CLI 명령 출력을 쿼리하는 방법을 참조하세요.
기본 출력 형식 설정
Azure CLI 명령은 다음 두 가지 방법으로 제어할 수 있는 출력을 제공합니다.
출력 컨트롤 | 혜택 | 방법 |
---|---|---|
전역 설정 | 각 참조 명령에 대한 매개 변수를 지속적으로 제공할 --output 필요가 없도록 가장 많이 사용하는 기본 출력 값을 선택합니다. |
az config set을 사용하여 기본 출력 형식을 지정합니다. |
Command 매개 변수 | 명령 수준에서 출력을 지정하고 스크립트에 최대한의 유연성을 제공합니다. 각 참조 명령에 대한 콘솔 출력 및 변수 입력을 제어합니다. | 참조 명령의 매개 변수를 사용하여 기본 설정을 재정의 --output 합니다. |
Azure CLI의 기본 출력은 .입니다 json
. 콘솔 출력 none
이 필요하지 않은 경우 기본 출력을 설정합니다.
az config set core.output=none
매개 변수를 사용하여 Azure CLI 참조 명령의 기본 출력을 --output
덮어쓸 수 있습니다. 명령 출력을 변경하고 테스트하는 명령 스크립트는 다음과 같습니다.
# 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
참고 항목
Azure CLI