gcloud compute命令用于了解机器的当前区域

时间:2016-02-22 05:44:59

标签: cloud gcloud zone

我需要谷歌云的帮助,我正在使用谷歌云做一个应用程序。在谷歌云我有1个窗口和谷歌云sdk实例。我需要一个命令来返回该实例的区域名称。 注意 - 我不需要区域列表。 我只需要运行我的实例的区域名称。 提前谢谢你。

3 个答案:

答案 0 :(得分:8)

TL; DR:

gcloud compute instances list <your instance name> --format 'csv[no-heading](zone)'

。 。 。

这是做两件事。在

gcloud compute instances list your-instance-name

部分列出了具有该名称的所有实例,例如

NAME                ZONE           MACHINE_TYPE  PREEMPTIBLE INTERNAL_IP    EXTERNAL_IP    STATUS
your-instance-name  europe-west1-c n1-standard-1             1.000.000.001 100.000.000.01 RUNNING

--format 'csv[no-heading](zone)'  

部分将输出重新格式化为包含标题的表,而只包含zone列。有关格式化输出的详细信息,请参阅https://cloud.google.com/sdk/gcloud/reference/topic/formats(或gcloud help topic formats)。

答案 1 :(得分:2)

如果在实例本身并且您想要获取区域:

gcloud compute instances list --filter="name=('`hostname`')" --format 'csv[no-heading](zone)'

答案 2 :(得分:1)

使用gcloud命令行工具可以发现Jeffrey的答案。如果您想使用GoogleCloud PowerShell模块,则以下内容将为您提供该区域的uri:

$zone = (Get-GCEInstance).Where({$_.Name -eq $(hostname)}).Zone

例如这可能会在$ zone中填充:

https://www.googleapis.com/compute/v1/projects/my-project-001/zones/us-east1-a

如果只需要结尾部分(烦人的是,其他cmdlet上的参数似乎只需要结尾部分,而uri不是有效格式),则可以执行以下操作:

$zone.Substring($zone.LastIndexOf("/")+1)

返回:

us-east1-a