我有一个podjs中运行的nodejs代码。从Pod内部,我想找到运行此Pod的节点的区域。这样做的最好方法是什么?我需要额外的权限吗?
请您参考如下方法:
我无法找到一个库,但是我在下面发布了执行该操作的代码。从此post稍微修改了getContent函数。此代码应在GKE pod或GCE主机内运行。
使用它如下:
const gcp = require('./gcp.js')
gcp.zone().then(z => console.log('Zone is: ' + z))
模组:gcp.js
const getContent = function(lib, options) {
// return new pending promise
return new Promise((resolve, reject) => {
// select http or https module, depending on reqested url
const request = lib.get(options, (response) => {
// handle http errors
if (response.statusCode < 200 || response.statusCode > 299) {
reject(new Error('Failed to load page, status code: ' + response.statusCode));
}
// temporary data holder
const body = [];
// on every content chunk, push it to the data array
response.on('data', (chunk) => body.push(chunk));
// we are done, resolve promise with those joined chunks
response.on('end', () => resolve(body.join('')));
});
// handle connection errors of the request
request.on('error', (err) => reject(err))
})
};
exports.zone = () => {
return getContent(
require('http'),
{
hostname: 'metadata.google.internal',
path: '/computeMetadata/v1/instance/zone',
headers: {
'Metadata-Flavor': 'Google'
},
method: 'GET'
})
}




