Можно ли получить метаданные проекта в облачной функции? - PullRequest
0 голосов
/ 22 октября 2018

Я хочу получить метаданные всего проекта в compute engine в моей облачной функции GCP.Возможно ли это?

Вот моя попытка:

metadata.js:

const request = require('request-promise');

async function getMetaData(attr) {
  const url = `http://metadata.google.internal/computeMetadata/v1/project/attributes/${attr}`;
  const options = {
    headers: {
      'Metadata-Flavor': 'Google'
    }
  };
  return request(url, options)
    .then(response => {
      console.info(`Retrieve meta data successfully. meta data: ${response.body}`);
      return response.body;
    })
    .catch(err => {
      console.error('Retrieve meta data failed.', err);
    });
}

async function retrieveMetaData() {
  return {
    IT_EBOOKS_API: await getMetaData('IT_EBOOKS_API')
  };
}

module.exports = { getMetaData, retrieveMetaData };

функция облака index.js:

const { retrieveMetaData } = require('./metadata');

async function retrieveComputeMetadata(req, res) {
  const envVars = await retrieveMetaData();
  console.log('envVars: ', envVars);
  res.status(200).json(envVars);
}

exports.retrieveComputeMetadata = retrieveComputeMetadata;

КогдаЯ тестирую функцию облака, логи показывают ошибку:

Retrieve meta data failed. { StatusCodeError: 404 - "404 page not found\n" at new StatusCodeError (/srv/node_modules/request-promise-core/lib/errors.js:32:15) at ....

Кажется, url не найден.

1 Ответ

0 голосов
/ 01 ноября 2018

API, который вы хотите нажать на «..v1 / project / attribute /», недоступен.Поскольку облачные функции работают в стандарте GAE, здесь есть сведения о том, какие конечные точки доступны здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...