Makefile:オブジェクトを変数に割り当て、オブジェクトの配列を繰り返す方法

Makefile:オブジェクトを変数に割り当て、オブジェクトの配列を繰り返す方法

ファイル生成:

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

これを使用してjqJSONを繰り返すことができます。

それは次のとおりです。

az graph query -q ${QUERY} | jq .data[].status

これが間違いなく関連しているかどうかはわかりませんが、make

関連情報