Google云端功能:无法验证请求

时间:2017-03-29 20:25:47

标签: node.js google-cloud-storage google-cloud-platform google-cloud-functions

我在Google Cloud Functions上使用node.js函数将Pub / Sub消息保存到GCS(存储),但是它随机给了我一些消息的以下错误(大部分消息都是成功编写的):

"Error: Could not authenticate request. Could not load the default credentials. Browse to https://developers.google.com/accounts/docs/application-default-credentials for more information."

没有意义,一旦在GCE上运行,将对具有适当权限的所有消息使用相同的服务帐户,并且所有消息来自相同的源并转到相同的目的地。有人可以告诉我我该怎么办?

我使用谷歌云/存储版本0.8.0。

/**
 * Triggered from a message on a Cloud Pub/Sub topic.
 *
 * @param {!Object} event The Cloud Functions event.
 * @param {!Function} The callback function.
 */

const bucketName = 'backup-queue-bucket';

const util = require('util')
const gcs = require('@google-cloud/storage')();
const crypto = require('crypto');

exports.backupQueue = function backupQueue(event, callback) {
    // The Cloud Pub/Sub Message object.
    const timestamp = event.timestamp;
    const resources = event.resource.split('/');
    const pubsubMessage = event.data;
    const messageContent = Buffer.from(pubsubMessage.data, 'base64').toString();

    // We're just going to log the message to prove that
    // it worked.      
      var queueName = resources[resources.length-1];
    console.log(`Message received: ${messageContent} in queue ${queueName}`);

    const filename = timestamp+'_'+crypto.createHash('md5').update(messageContent).digest('hex');

    const bucket = gcs.bucket(bucketName);
    const file = bucket.file(queueName+'/'+filename);
    const fs = file.createWriteStream({});
    fs.on('finish', function () {
        console.log(`Message ${filename} successfully written to file.`);
    });
    fs.on('error', function (error) {
        console.warn(`Message ${filename} could not be written to file. Retry will be called. Error: ${error.message}`);
        setTimeout(backupQueue(event, callback), 1000);
    });

    fs.write(Buffer.from(pubsubMessage.data, 'base64').toString());
    fs.end();

    callback();
};`

编辑:

我在google-cloud-node上打开了一个问题,他们将此报告为错误。它应该在下一个版本中修复。

0 个答案:

没有答案