我有以下代碼來獲取 API 資料并將其存盤在 csv 檔案中:
for projectid in `gcloud scc assets list <someorgID>
--filter="security_center_properties.resource_type=\"google.cloud.resourcemanager.Project\""
-- format="get(asset["securityCenterProperties"]["resourceDisplayName"])"`
do
gcloud recommender recommendations list \
--location=global \
--recommender=google.iam.policy.Recommender \
--project=$projectid \
--format="csv[no-heading](content["overview"], content["operationGroups"])" >> temp_iam.csv done
這將得到如下結果:
cloudresourcemanager.googleapis.com, remove
cloudresourcemanager.googleapis.com, add
我想將 $projectid 的值添加到第一位:
projectid1, cloudresourcemanager.googleapis.com, remove
projectid2, cloudresourcemanager.googleapis.com, add
我怎么能做到這一點?
uj5u.com熱心網友回復:
您可以要求awk插入回圈變數;這是一個簡化的回圈來演示:
for projectid in projectid1 projectid2
do
gcloud ... | awk -v project="$projectid" '{ $1=project ", " $1; print;}'
done
這將輸出gcloud ...到 awk;awk 被賦予一個名為“project”的變數,該變數被設定為回圈變數的值$projectid。然后在 awk 輸入(gcloud 的輸出)的每一行上,我們用該project變數、命令和空格的串聯替換第一個欄位,然后是第一個欄位的值——本質上是將 projectid 值作為新的第一個值的前綴CSV 輸出。
新腳本將是:
for projectid in `gcloud scc assets list <someorgID>
--filter="security_center_properties.resource_type=\"google.cloud.resourcemanager.Project\""
-- format="get(asset["securityCenterProperties"]["resourceDisplayName"])"`
do
gcloud recommender recommendations list \
--location=global \
--recommender=google.iam.policy.Recommender \
--project=$projectid \
--format="csv[no-heading](content["overview"], content["operationGroups"])" | \
awk -v project="$projectid" '{ $1=project ", " $1; print;}' >> temp_iam.csv
done
uj5u.com熱心網友回復:
GCP API在回應中包含資源名稱,因此該回應的一部分包含專案編號。
具體來說,gcloud recommender recommendations list就是呼叫Recommender API的projects.locations.recommenders.recommendations.list方法,它回應一個Recommendation 資源,這個被工具接收到,這意味著我們已經有了回應中的專案。gcloud
要了解如何正確列印該資訊,我們可以查看gcloud topic projections,我們可以看到一些適用于此處的轉換。
如果對專案編號感興趣,可以選擇名稱資源的第二段(索引1)進行推薦:
gcloud recommender recommendations list --format="value(name.segment(1))" --location=global --recommender=google.iam.policy.Recommender
要將其包含在列印 CSV 的當前命令中,您可以使用:
gcloud recommender recommendations list \
--location=global \
--recommender=google.iam.policy.Recommender \
--project=$projectid \
--format="csv[no-heading](name.segment(1),content["overview"], content["operationGroups"])" >> temp_iam.csv
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/359263.html
下一篇:從.csv檔案擴展縮寫
