代码之家  ›  专栏  ›  技术社区  ›  Lin Du Correcter

是否可以在云函数中获取项目元数据?

  •  0
  • Lin Du Correcter  · 技术社区  · 6 年前

    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 回复  |  直到 6 年前
        1
  •  0
  •   FridayPush    6 年前

    您要访问的API“…v1/project/attributes/”不可用。当云函数在GAE标准上运行时,有关于端点的细节 available here.