GCloud:按 'In Use by' 列过滤 IP 地址,如 GCP 控制台中所示

GCloud: Filter IP Address by 'In Use by' Column as seen in GCP Console

我正在尝试过滤掉路由器使用的外部 IP 地址。当我 运行 地址列表命令时,我无法使用名称进行过滤,因为它是由 NAT 自动创建的:

 gcloud compute addresses list
NAME                                     ADDRESS/RANGE    TYPE      PURPOSE      NETWORK                       REGION        SUBNET  STATUS
test-network-1234                       10.xxx.0.0/18    INTERNAL  VPC_PEERING  test-network-gcp-1                                  RESERVED
test-network-abcd                       10.xxx.xx.0/18   INTERNAL  VPC_PEERING  test-network-gcp-1                                  RESERVED
nat-auto-ip-15564773-5-xx               xx.xxx.xx.x     EXTERNAL  NAT_AUTO         IN_USE

在控制台中我可以看到 'In use by' 'Router abcd' 列。我可以使用此 'In use' 参数进行过滤吗?

编辑:添加了控制台的屏幕截图

编辑:发现这一点,与其他 GCP 值一样,用户代表的 'in use by' 列(如此 reponse-body 中给出)作为 API URL.

所以我必须创建一个 URL 并传递以下值:

api_url="https://www.googleapis.com/compute/v1/projects/${landscape_project}/regions/${landscape_region}/routers/${router_name}"

external_ip="$(gcloud compute addresses list --filter="users=('${api_url}')" --format=json | jq -r '.[].address')"

这样我就能够传递 router_name 并创建 API URL 并将其作为过滤器传递以获取外部 IP。

希望这对某人有所帮助

干杯! -阿斯文