Экспорт Firestore в облачное хранилище с помощью облачной функции - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть облачная функция, вызывающая exportDocuments , которая выглядит следующим образом:

client = googleapiclient.discovery.build('firestore', 'v1beta1')
client.projects().databases().exportDocuments(name=name, body=body).execute()

Сбой из-за ошибки аутентификации:

HttpError 403 "The caller does not have permission"

Облакосбой функции при срабатывании с использованием Pub / Sub.Но если я запускаю тот же код из Cloud Shell, он работает.

Мои вопросы:

  • Я делаю это неправильно?Разве аутентификация не должна обрабатываться автоматически, так как я выполняю в облачной функции?Я имею в виду, что это работает из Cloud Shell.

  • Что я могу сделать?Пример кода более чем приветствуется, так как я не могу обернуть голову аутентификацией вручную.

1 Ответ

0 голосов
/ 22 сентября 2018

Учетная запись службы Cloud Function по умолчанию имеет роль редактора проекта .Эта роль не включает разрешения для запуска экспорта Cloud Firestore.

Вы можете выполнить шаги 3 и 4 здесь , чтобы назначить учетной записи службы по умолчанию YOUR_PROJECT_ID@appspot.gserviceaccount.com разрешения для запуска Cloud Datastore / Firestoreэкспорт и доступ к указанному вами хранилищу облачного хранилища.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...