将源拆分为资源 name/zone/project 的正确方法是什么?

What is the proper way to split a source into resource name/zone/project?

我正在使用 google cloud python library 方法列出实例: service.instances().list()

这 return 是一个实例字典,对于每个实例,它 return 是一个磁盘列表,对于每个磁盘,磁盘的 source 可用以下格式:

https://www.googleapis.com/compute/v1/projects/<project name>/zones/<zone>/disks/<disk name>

磁盘字典中没有其他“名称”,所以这是我检索磁盘名称最接近的东西。

在研究了其他方法之后,其中许多 return 资源都以类似的方式出现。

但是,如果我想使用库中的任何 google disk 方法,我应该将磁盘名称、项目和区域作为单独的参数提供给库的方法。

有没有我可以写的通用方法来拆分资源参数?

在此示例中,这将是项目名称、区域和磁盘名称,但其他资源可能具有不同的资源。

我在库中找不到任何可以为我进行拆分的方法,所以我想应该是我自己写的。

GCP 中没有特定的 API 可以帮助你给你这样的结果,尽管考虑到你得到的 URL 是恒定的(你想要的顺序是恒定的) ,我认为最简单的方法是应用下一个代码,

disk_url = "https://www.googleapis.com/compute/v1/projects/<project name>/zones/<zone>/disks/<disk name>".split('/')
project = disk_url[6]
zone = disk_url[8]
disk = disk_url[10]

我认为这会有所帮助,但如果您需要更具体的东西,我相信您自己还有更多工作要做“处理 python 中的字符串”。