[英]Existence of a resource within a resource group
如何檢查資源組中是否存在快速路由。 我有資源組列表,但並非所有資源組中都有快速路由。 檢查每個資源組內部是否有快速路由需要寫什么條件
rgList ==> 特定訂閱中所有資源組的列表
erList ==> 特定訂閱中所有快速路由的列表
rgList="$(az group list --subscription "sub1" --query [].name --output tsv)"
erList="$(az network express-route list --subscription "sub1" --query [].name --output tsv)"
for i in $rgList; do
if [[ $(az network express-route list -g "$i" --subscription "sub-network-central-services" --query "[].name | length(@))" > 0 ]]
then
for j in $erList; do
hubname+="$(az network express-route auth list --circuit-name "$j" --resource-group "$i" --query [].authorizations[].name --output tsv)"
done
fi
done
我收到以下錯誤bash:意外標記“完成”附近出現語法錯誤
如上所述,是的,在我們的本地環境中進行測試時存在一些語法錯誤,我們已經修復了這些錯誤並且我們也修改了上述腳本。
修改后的腳本將提取授權名稱和快速路由電路名稱。
如果要獲取具有快速路由電路的資源組列表,可以直接參考我的解決方案中的替代腳本。
這是修改后的 Bash 腳本:
hubname=""
rglist=$(az group list --subscription "<subNameorSubId>" --query [].name --output tsv)
erList=$(az network express-route list --subscription "<subNameorSubId>" --query [].name --output tsv)
for i in $rglist;
do
if [[ $(az network express-route list -g $i --subscription "<subNameorSubId>" --query "[].name | length(@)") > 0 ]]
then
for j in $erList;
do
hubname+=$(az network express-route auth list --circuit-name $j --resource-group $i --query [].name --output tsv)
echo $j,$hubname
done
fi
done
這是示例 output 的屏幕截圖供參考:
或者,您可以使用下面的 bash 腳本,如果其中存在快速路由電路,這將為您提供資源組列表。
替代腳本:
rgList=$(az group list --subscription "<SubNameorSubId>" --query [].name --output tsv)
for i in $rgList;do
resourcelist=$(az resource list -g $i --query [].type -o tsv)
for j in $resourcelist;do
if [[ $j == "Microsoft.Network/expressRouteCircuits" ]]
then
echo $i
fi
done
done
這是供參考的樣品Output:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.