https://learn.microsoft.com/ja-jp/cli/azure/storage/account?view=azure-cli-latest
https://learn.microsoft.com/ja-jp/cli/azure/storage/blob/service-properties?view=azure-cli-latest
- ストレージアカウントに紐づいてるリソースグループの確認
1 |
$ az storage account list --query "[].{name:name, resourceGroup:resourceGroup}" -o tsv |
- Blobサービスのプロパティ情報を取得する場合
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/bin/bash # すべてのストレージアカウントとそのリソースグループ名を取得 accounts=$(az storage account list --query "[].{name:name,resourceGroup:resourceGroup}" -o tsv) blob=~/blob rm -rf ${blob}/all-properties.json # 各アカウントのBlobサービスプロパティを取得し、アカウント名とリソースグループ名を追加 while read -r name resourceGroup; do props=$(az storage account blob-service-properties show --account-name "$name" --resource-group "$resourceGroup" | jq .) echo "{\"accountName\": \"$name\", \"resourceGroup\": \"$resourceGroup\", \"properties\": $props}" >> ${blob}/all-properties.json done <<< "$accounts" |
- all-properties.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
{"accountName": "hoge", "resourceGroup": "hoge", "properties": { "automaticSnapshotPolicyEnabled": null, "changeFeed": { "enabled": true, "retentionInDays": null }, "containerDeleteRetentionPolicy": { "allowPermanentDelete": null, "days": 7, "enabled": true }, "cors": { "corsRules": [] }, "defaultServiceVersion": null, "deleteRetentionPolicy": { "allowPermanentDelete": false, "days": 7, "enabled": true }, |
for文にすると各行がタブ区切りの2つの値(アカウント名とリソースグループ名)を考慮しないといけないのでwhileの方が可読性良さそう。以下CSVにすると便利。
- CSVで出力する場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#!/bin/bash # 出力ファイル blob=~/blob all_properties_csv="${blob}/all_properties.csv" rm -rf ${blob}/all_properties.csv # ヘッダーの書き込み echo "Account Name,Resource Group,Property Name,Property Value" > "$all_properties_csv" # すべてのストレージアカウントとそのリソースグループ名を取得 accounts=$(az storage account list --query "[].{name:name,resourceGroup:resourceGroup}" -o tsv) # BlobサービスプロパティをCSVに出力 while IFS=$'\t' read -r name resourceGroup; do properties=$(az storage account blob-service-properties show --account-name "$name" --resource-group "$resourceGroup" | jq -r '. | to_entries | .[] | [.key, .value | tostring] | @csv') while IFS=$'\n' read -r property; do echo "\"$name\",\"$resourceGroup\",$property" >> "$all_properties_csv" done <<< "$properties" done <<< "$accounts" |
Was this helpful?
0 / 0
1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。