파일 생성:
QUERY := "securityresources | where type == 'microsoft.security/assessments' | summarize by assessmentKey=name | join kind=inner ( securityresources | where type == 'microsoft.security/assessments/subassessments' | extend assessmentKey = extract('.*assessments/(.+?)/.*',1, id) ) on assessmentKey | where properties.additionalData.assessedResourceType == 'ContainerRegistryVulnerability' | extend status = properties.status.code | extend severity = properties.status.severity"
.ONESHELL:
check:
# az graph query -q ${QUERY}
results="`az graph query -q ${QUERY}`"
@for result in $$results.data;
do
echo "$${result.status}"
done
출력은 az graph query -q ${QUERY}
다음과 같습니다.
{ "count": 10,
"data" : [{"status":"healthy", "abc":"123"},
{"status":"unhealthy", "abc":"322"},
{"status":"healthy", "abc":"432"}
]
}
실수:
/bin/bash: 4행: ${result.status}: make 교체 오류: ***
[Makefile:23: 확인] 오류 1
명령 출력을 변수에 할당하고 해당 객체를 반복하고 이러한 객체의 키, 값에 액세스하려면 어떻게 해야 합니까?
답변1
이를 사용하여 jq
JSON을 반복할 수 있습니다.
그것은 다음과 같습니다:
az graph query -q ${QUERY} | jq .data[].status
이것이 확실히 관련이 있는지는 확실하지 않지만make