繁体   English   中英

gcloud compute 命令知道机器的当前区域

[英]gcloud compute command to know current zone of machine

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

tl;博士:

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

. . .

这是在做两件事。

gcloud compute instances list your-instance-name

part 列出所有具有该名称的实例,例如

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 )。

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

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

Jeffrey 的答案是使用 gcloud 命令行工具的正确答案。 如果您更愿意使用 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

假设您有某种 URL 获取工具,例如 cURL,您可以像这样获取区域名称:

curl http://metadata.google.internal/computeMetadata/v1/instance/zone -H Metadata-Flavor:Google | cut '-d/' -f4

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM