Проблема с разрешением Google Cloud Storage - PullRequest
0 голосов
/ 29 марта 2019

Я получаю сообщение об ошибке при выполнении любого действия в облачном хранилище Google из облачных функций.Я продолжаю получать ошибку [project-id]@appspot.gserviceaccount.com does not have storage.buckets.get.Я назначил администратору службы различные роли, включая editor, storage admin и storage object admin, но, похоже, они не работают.

Ниже приведена функция тестирования.

exports.test = async (req, res) => {

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

  // Creates a client
  const storage = new Storage();

  // Gets the ACL for the bucket
  const [acls] = await storage.bucket('sharedbox').acl.get();

  acls.forEach(acl => {
    console.log(`${acl.role}: ${acl.entity}`);
  });
};

1 Ответ

0 голосов
/ 01 апреля 2019

Я немного изменил ваш код и создал запущенную по HTTP облачную функцию Google Node.js 8, которая была выполнена правильно, и получил ACL для корзины.Следуйте приведенным ниже инструкциям, и это также должно работать для вас:

  1. Создайте новую облачную функцию Google с именем по вашему выбору.
  2. Триггер HTTP.
  3. Время выполнения Node.js 8.
  4. В package.json заменить все на:
{
  "name": "sample-http",
  "version": "0.0.1",
  "dependencies": {
     "@google-cloud/storage" : "^2.4.3" 
  }
}
Под Функция для выполнения добавить getAClGoogleCloudStorage. Внутри index.js заменить весь код на этот код из GitHub . Нажмите CREATE.

После успешного создания перейдите на страницу сведений о функции облака и перейдите на вкладку Trigger.Щелкните URL-адрес, предоставленный для триггера, и вы должны увидеть Execution finished! в качестве ответа.

При проверке журналов облачной функции вы увидите ACL OWNER ..., READER ... в списке.

Я проверил приведенный выше код, и он работает без каких-либо проблем с правами доступа.

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