const Compute = require('@google-cloud/compute');
const compute = new Compute({
projectId: 'your-project-id',
keyFilename: '/your/path/to/file'
});
const zone = compute.zone('instanceZone');
const vm = zone.vm('instanceName');
vm.getMetadata(function(err, metadata, apiResponse) {});
//-
// If the callback is omitted, we'll return a Promise.
//-
vm.getMetadata().then(function(data) {
// Representation of this VM as the API sees it.
const metadata = data[0];
console.log(metadata.networkInterfaces[0].accessConfigs[0].natIP)
});
4条答案
按热度按时间czq61nw11#
您可以使用Node.js Client library for Google Compute Engine。
检索计算示例的外部IP地址有多种方法,例如,您可以运行以下代码:
此外,您还可以使用Google Cloud Platform command-line interface。
gcloud compute instances describe instanceName --zone=instanceZone | grep natIP
pzfprimi2#
另一种可能性是利用元数据服务。有关详细信息,请参阅以下文档:
https://cloud.google.com/compute/docs/storing-retrieving-metadata
在最高级别,GCP保存每个VM示例的元数据,其中包括您的外部IP地址。通过对一个特殊端点进行REST调用,您可以自行请求所有元数据。这将以JSON文档的形式返回,然后可以轻松解析。
例如,在VM中的shell提示符下运行以下命令:
希望您能看到,通过发出此REST请求,我们几乎是语言中立的,因此,如果您可以从您最喜欢的语言发出REST请求,您可以检索您想要的数据(以及更多)。如果您不使用此技术来满足您当前的需求,请确保并记住它,以便在将来需要其他数据的项目中使用。
mwngjboj3#
作为@llompalles答案的补充,这个函数可能会帮助一些喜欢async / await模式的人:
示例用法-使用已启动的VM的IP地址进行响应:
z2acfund4#
上面提到的方法已被弃用,如果你尝试,你会得到以下错误:
现在我们可以按照下面的方法获取远程计算示例资源的公共IP
GCP Reference