Два идентичных проекта GCP, но в одном облачные функции не могут загрузить учетные данные по умолчанию - PullRequest
0 голосов
/ 05 ноября 2019

Я использую одну и ту же облачную функцию в 2 разных проектах GCP (подготовка и производство).

В промежуточном проекте облачные функции работают хорошо, но в процессе работы выдает следующее исключение:

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);

Поскольку яразвернуть одну и ту же функцию в обоих проектах. Я не понимаю, почему возникают проблемы с производством, а не с подготовкой.

Что обычно вызывает проблему с учетными данными по умолчанию? Я перешел по ссылке в трассировке, но она не имеет отношения к актуальной проблеме.

Спасибо.

1 Ответ

1 голос
/ 05 ноября 2019

Если вы хотите использовать учетные данные по умолчанию, вы должны инициализировать Admin SDK следующим образом, без аргументов:

const admin = require('firebase-admin');
admin.initializeApp();
...