如何获取完整的资源名称(例如),projects/<project_id>/global/networkInstances/<instance_id>
并仅通过该信息查找有关它的更多信息?
我目前正在尝试从我的一个现有 GCP 项目中删除默认网络。运行gcloud compute networks delete --quiet default
导致此错误:
- The network resource 'projects/<project_id>/global/networks/default'
is already being used by 'projects/<project_id>/global/networkInstances/<instance_id>'
我已经搜索了所有能想到的地方,但无法在默认网络中找到任何资源,所以我希望可以使用这个资源名称来了解更多信息。
答案1
就我的情况来说,我有一个连接到 VPC 网络的 Cloud Run 服务。我删除了允许 Cloud Run 连接的“无服务器 VPC 访问连接器”,但这可能不应该被允许,因为 Cloud Run 服务/版本仍然引用该连接器,因此也“使用”VPC 网络。
总结删除 Cloud Run 服务后,我就可以删除 VPC 网络。这可能是projects/<project_id>/global/networkInstances/<instance_id>
错误消息所指的。
答案2
根据我的理解,VPC 网络包括:
- 子网
- 静态内部 IP 地址
- 防火墙规则
- 路线(包括静态和自动/动态创建的路线)
- VPC 网络对等连接
- 私人服务连接
- 实例
前提条件删除 VPC 网络即,您必须删除其所有子网中的所有资源以及引用该网络的所有资源。引用该网络的资源包括 Cloud VPN 网关、Cloud Router、防火墙规则和自定义静态路由。
我建议在尝试删除该 VPC 网络之前,先删除任何手动添加的配置(自定义静态路由、VPC 对等、私有服务连接等)。
答案3
就像 userX 所说的那样,您需要删除以下所有引用该 VPC 的资源,但还有其他事情 -
- 子网
- 静态内部 IP 地址
- 防火墙规则
- 航线
- VPC 网络对等连接
- 私人服务连接
- 实例
因此,如果您确认错误不是由于上述 1 至 7 项引起的,请检查是否存在任何
- 云运行
- 云任务
- 具有 redis 缓存实现的 App Engine 服务
在我的案例中,问题是由于 App engine (标准) Java 服务引用了删除的 redis 缓存,而 redis 缓存需要无服务器 VPC,而无服务器 VPC 需要 VPC。尽管无服务器 VPC 和 Redis 实例已被删除,但 app engine 实例不允许我删除 VPC。
所以也尝试一下吧。
答案4
就我而言,我尝试在主机共享 vpc 项目中更新我的共享 vpc 网络。我遇到了错误“资源使用无效:资源‘projects/project_name/global/networkInstances/v-1212313....’仍链接到共享 VPC 主机”/projects/other-project。
我已遵循以下步骤:
首先,我删除了共享 vpc 子网中的所有 vm 实例和资源。其次,我尝试删除附加项目列表中的主机共享 vpc 项目。
我再次收到该错误:“资源‘projects/project_name/global/networkInstances/v-1212313....’仍然链接到共享 VPC 主机”
毕竟,我仔细检查了我的共享 vpc 项目(不是主机共享 vpc 项目)中的所有资源。我发现一个正在运行的共享 vpc 网络的功能。我将其子网设置为 None。我重新部署了
这就是我解决问题的方法。在我看来,无论谁在处理这个问题,都应该验证所有不应该使用共享 vpc 子网的资源(云运行、云功能、vms 和 vpc 连接器、静态 ip 地址等)。