ファイル生成:
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