两个相同的GCP项目,但其中一个云功能无法加载默认凭据

我正在2个不同的GCP项目(阶段和生产)中运行相同的Cloud Function。

在登台项目中,Cloud Functions运行良好,但在生产中会引发以下异常:

Error: Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.
    at GoogleAuth.getapplicationDefaultAsync (/srv/node_modules/@google-cloud/common/node_modules/google-auth-library/build/src/auth/googleauth.js:161:19)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:229:7)" 

在生产中引起问题的部分是这样的:

function saveContentToBucket(contents,destination,bucket,gzip){
  const bucket = storage.bucket(FIRESTORE_BUCKET_NAME);
  const file = bucket.file(destination);
  file.save(JSON.stringify(contents),function(err) {
    if(err) console.log("saveContentToBucket | err:",err)
  });
}

这是我启动项目和存储的方式。

const {Storage} = require('@google-cloud/storage');
const storage = new Storage();

// Firebase related stuff
const functions = require('firebase-functions');
admin.initializeApp(functions.config().firebase);

由于我在两个项目中都部署了相同的功能,所以我不明白为什么它在生产中会出现问题,而不是暂存。

通常是什么导致默认凭据出现问题? 我跟踪了跟踪中的链接,但它与实际问题无关。

谢谢。

giggs361 回答:两个相同的GCP项目,但其中一个云功能无法加载默认凭据

如果要使用默认凭据,则应像这样初始化Admin SDK,不带任何参数:

const admin = require('firebase-admin');
admin.initializeApp();
本文链接:https://www.f2er.com/3160839.html

大家都在问