В разрешении отказано при запуске функции планировщика Firebase pubsub

Я здесь совершенно застрял. Я создал одну функцию планировщика pubsub, как показано ниже.

const functions = require("firebase-functions");
exports.addTasksToQueueScheduler =  functions.pubsub
    .schedule('every 5 minutes')
    .onRun((context) => {
        console.log('This will be run every five minutes!');
  return null;
});

Это действительно простая функция. Я разворачиваю его с помощью

firebase deploy --only functions

Я вижу, что моя функция создана функцией firebase. введите описание изображения здесь

Я вошел в облачный планировщик firebase и там вижу функцию. Я нажимаю кнопки «Выполнить», но получаю Результат = сбой.

введите описание изображения здесь

Я добавил такие роли, как Администратор облачных функций, Администратор облачного планировщика, Администратор облачных задач, Редактор, Владелец, Администратор публикации / подписки, Издатель / дополнительный издатель, Вызыватель Cloud Run, Средство просмотра объектов хранилища в службу App Engine по умолчанию по умолчанию. учетная запись. Это действительно расстраивает, что они не предоставляют надлежащую документацию о том, какие роли / разрешения требуются для этого. Они просто отдают все, и вам нужно это выяснить. Новичок может совсем потеряться.

Кто-нибудь может помочь?


person Dhara    schedule 17.03.2021    source источник
comment
Вы упомянули, что получаете сообщение об ошибке отказа в разрешении. Не могли бы вы опубликовать ее здесь? Они часто приходят с кодом ошибки, если не указывают точную необходимую роль, если это ошибка облака, так что это может сделать устранение неполадок немного более плавным.   -  person fabc    schedule 30.03.2021


Ответы (1)


Попробуйте выполнить развертывание в том же регионе (это зависит от расположения ресурса по умолчанию, установленного вами):

exports.addTasksToQueueScheduler = functions.region('europe-west1').pubsub
    .schedule('every 5 minutes')
    .onRun((context) => {
        console.log('This will be run every five minutes!');
        return null;
    });

Думаю, ему нужно roles/pubsub.subscriber, чтобы можно было вызвать функцию.

person Martin Zeitler    schedule 17.03.2021
comment
Я применил регион и назначил roles/pubsub.subscriber, но он по-прежнему показывает ту же ошибку. - person Dhara; 18.03.2021