云功能存储在其他项目的存储桶上触发

时间:2019-04-17 11:45:45

标签: google-cloud-platform google-cloud-storage google-cloud-functions

无法在其他项目下的存储桶上创建云功能触发器。

  

部署功能(可能需要一段时间-最多2分钟)...失败。

     

错误:(gcloud.functions.deploy)OperationError:代码= 7,消息=权限不足,无法(重新)配置触发器   (对于bucket ing-auto,该权限被拒绝)。请给主人   桶的编辑者角色的权限,然后重试。

对于云功能中使用的服务帐户,所有者有权访问存储桶所在的项目。

即 有两个项目项目a和项目b。 云功能需要在 project-a 中创建。 google bucket在project-b中。 服务帐户用户 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 个答案:

答案 0 :(得分:2)

您无法在另一个项目中使用存储桶来触发Cloud Function。

按照documentation

  

注意:云功能只能由同一Google Cloud Platform项目中的Cloud Storage存储桶触发。

答案 1 :(得分:1)

不可能。引用Google Cloud Functions documentation

  

云功能只能由同一Google Cloud Platform项目中的Cloud Storage存储桶触发。

作为一种可能的解决方法,您可以将云功能部署为HTTP triggered。然后,在存储桶所属的项目中,部署由Cloud Storage事件触发的另一个Cloud Function,并在其代码中进行HTTP调用以触发第一个Cloud Function。