Триггер облачного хранилища на другом проекте - PullRequest
1 голос
/ 17 апреля 2019

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

Функция развертывания (может занять некоторое время - до 2 минут) ... не удалось.

ОШИБКА: (gcloud.functions.deploy) OperationError: code = 7, message = Недостаточно прав для (повторной) настройки триггера (Отказано в разрешении на ведро ing-auto). Пожалуйста, дайте владельцу разрешения на роль редактора ведра и попробуйте снова.

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

т.е. Есть два проекта: проект а и проект б. Облачная функция должна быть создана в project-a . Google Bucket находится в проекте-б. пользователь учетной записи службы serv-user является частью проекта a и имеет доступ владельца проекта-b, который будет использоваться для выполнения облачной функции.

gcloud functions deploy hello_gcs --runtime python37 --trigger-resource bucket-from-other-project-xxx --trigger-event goog
le.storage.object.finalize

Я могу создать триггер облачной функции для хранилищ одного и того же проекта

Ответы [ 2 ]

2 голосов
/ 17 апреля 2019

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

Согласно документации :

Примечание. Облачные функции могут запускаться только корзинами облачного хранилища в одном проекте Google Cloud Platform.

1 голос
/ 17 апреля 2019

Это невозможно.Цитирование документации по облачным функциям Google :

Облачные функции могут запускаться только корзинами Cloud Storage в том же проекте Google Cloud Platform.

AsВ качестве возможного обходного пути вы можете развернуть свою облачную функцию как HTTP, запущенный .Затем в проекте, к которому принадлежит сегмент, разверните другую облачную функцию, вызванную событием облачного хранилища, и в ее коде выполните HTTP-вызов для запуска первой облачной функции.

...