You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取GCP所有项目的负载均衡器及配置详情并导出

获取所有GCP项目的负载均衡完整配置并导出

核心解决方案(Bash脚本)

以下脚本会遍历你有权限访问的所有GCP项目,收集全局和区域负载均衡的完整转发规则配置(包含项目归属标识),最终导出为JSON格式文件:

#!/bin/bash

# 定义输出文件路径
OUTPUT_FILE="all_gcp_lb_full_config.json"

# 初始化JSON数组
echo "[" > "$OUTPUT_FILE"
FIRST_ENTRY=true

# 获取所有有权限的GCP项目ID
PROJECT_LIST=$(gcloud projects list --format="value(projectId)")

for PROJECT_ID in $PROJECT_LIST; do
    echo "Processing project: $PROJECT_ID"
    
    # 收集全局转发规则(对应HTTP/S等全局LB)
    GLOBAL_LBS=$(gcloud compute forwarding-rules list --global --project "$PROJECT_ID" --format=json)
    # 收集区域转发规则(对应TCP/UDP等区域LB)
    REGIONAL_LBS=$(gcloud compute forwarding-rules list --project "$PROJECT_ID" --format=json)
    
    # 合并两类规则并添加项目ID字段,确保JSON格式合法
    COMBINED_LBS=$(echo "$GLOBAL_LBS $REGIONAL_LBS" | jq -s 'flatten | .[] | . + {"projectId": "'"$PROJECT_ID"'"}')
    
    # 处理JSON数组的逗号分隔
    if [ "$FIRST_ENTRY" = true ]; then
        FIRST_ENTRY=false
    else
        echo "," >> "$OUTPUT_FILE"
    fi
    
    # 写入结果到输出文件
    echo "$COMBINED_LBS" >> "$OUTPUT_FILE"
done

# 闭合JSON数组
echo "]" >> "$OUTPUT_FILE"

echo "Export completed. Full config saved to $OUTPUT_FILE"

导出为CSV格式(可选)

如果需要CSV格式(包含关键完整字段),可以修改脚本中的COMBINED_LBS生成逻辑,并调整输出方式:

#!/bin/bash

OUTPUT_FILE="all_gcp_lb_full_config.csv"

# 写入CSV表头
echo '"projectId","name","IPAddress","region","isGlobal","target","protocols","portRange","loadBalancingScheme"' > "$OUTPUT_FILE"

PROJECT_LIST=$(gcloud projects list --format="value(projectId)")

for PROJECT_ID in $PROJECT_LIST; do
    echo "Processing project: $PROJECT_ID"
    
    GLOBAL_LBS=$(gcloud compute forwarding-rules list --global --project "$PROJECT_ID" --format=json)
    REGIONAL_LBS=$(gcloud compute forwarding-rules list --project "$PROJECT_ID" --format=json)
    
    # 提取指定字段并生成CSV行
    echo "$GLOBAL_LBS $REGIONAL_LBS" | jq -r 'flatten | .[] | . + {"projectId": "'"$PROJECT_ID"'", "isGlobal": (.region == null)} | [.projectId, .name, .IPAddress, .region, .isGlobal, .target, .protocols, .portRange, .loadBalancingScheme] | @csv' >> "$OUTPUT_FILE"
done

echo "CSV export completed. File saved to $OUTPUT_FILE"

注意事项

  • 权限要求:需确保你的GCP账号拥有roles/resourcemanager.projectViewer(列出项目)和roles/compute.viewer(查看负载均衡资源)权限,或更高权限角色。
  • 性能优化:若项目数量较多,建议后台运行脚本(如添加nohup前缀),避免终端中断。
  • 扩展完整配置:如果需要关联的后端服务、URL映射、SSL证书等更深层配置,可以在循环中额外调用gcloud compute backend-services describe、gcloud compute url-maps describe等命令,将关联资源信息合并到输出结果中。

内容的提问来源于stack exchange,提问作者Jithu Joseph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 19:07:04