首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用实例元数据检索GCP Windows实例的外部IP?

如何使用实例元数据检索GCP Windows实例的外部IP?
EN

Stack Overflow用户
提问于 2019-06-25 21:53:20
回答 2查看 591关注 0票数 0

我需要检索一些GCP Windows实例的外部IP。

我尝试请求实例元数据(https://cloud.google.com/compute/docs/storing-retrieving-metadata)。

外部IP的端点为http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip

这是使用curl在Linux实例上运行的:

代码语言:javascript
复制
$ curl -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip
35.XXX.XXX.XXX

但是,我无法使用powershell在Windows实例上使用它:

代码语言:javascript
复制
> (Invoke-WebRequest -UseBasicParsing -Headers @{"Metadata-Flavor"="Google"} "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip").Content
51
53
46
50
49
46
46
57
49
57
46
55

我使用windows-2019和windows-2016公共镜像对不同的实例进行了尝试。

实例是使用标准的gcloud命令行启动的:

代码语言:javascript
复制
gcloud compute instances create $instance-name \
    --image-project windows-cloud \
    --image-family windows-2019 \
    --machine-type n1-standard-1 \
    --boot-disk-size 50 \
    --boot-disk-type pd-ssd \
    --zone europe-west1-b
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-26 00:51:59

出于某种原因,Invoke-WebRequest在响应中忽略Content-Type: application/text,并将其视为字节数组。

您可以将字节转换为字符串:

代码语言:javascript
复制
[System.Text.Encoding]::UTF8.GetString(
    (Invoke-WebRequest -Headers @{'Metadata-Flavor'='Google'} -Uri 'http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip').Content
)

或者使用Invoke-RestMethod

代码语言:javascript
复制
Invoke-RestMethod -Headers @{'Metadata-Flavor'='Google'} -Uri 'http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/access-configs/0/external-ip'
票数 0
EN

Stack Overflow用户

发布于 2019-06-25 23:35:15

喂!我猜最简单(也是更快)的方法是安装CURL for Windows,然后按照Google Docs for Storing and Retrieving Metadata中定义的方式处理元数据,最后如果必须使用power shell,那么您可以随时访问Google Cloud Tools for Power Shell,但有时最简单的方法是更好的,而且Google Cloud中几乎所有的示例都是基于cURL的。

希望这能对你有所帮助!快乐的脚本

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56755704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档