对云功能执行http PUSH的Google Pubsub订阅者(在同一项目或其他项目中)

For*_*est 2 google-cloud-platform google-cloud-functions

是否可以在一个项目中设置pubsub主题/订阅者,该项目在同一个OR中的http PUSH到云功能在另一个Google项目中?我知道有PubSub触发器,但是当pubsub主题在另一个Google项目中时,这些触发器不起作用。奇怪的是,这是否甚至可以与订户PUSH一起使用。

错误如果我尝试创建pubsub错误,则会收到INVALID_ARGUMENT错误。我不确定这是否是因为我需要注册端点(https://cloud.google.com/pubsub/docs/push#other-endpoints)。但这感觉不对,因为当我创建一个函数时,URL是自动提供给我的,我可以通过Postman来访问它。

我确实找到了此链接(GCP-验证对PubSub推送的云函数https端点的所有权),并认为它与url验证有关..只想确认一下:)

有什么想法吗?我在某处错过了一些文档吗?

编辑:我认为它与URL验证以及使用../_ah/push-handlers/..路径有关。当我注册PubSub触发器时,该函数的传递类型仍然是PUSH,但它是具有更多路径的编码url:https://{hash}-dot-{hash}.appspot.com/_ah/push-handlers/pubsub/projects/{project-id}/topics/prototype-contact-created?pubsub_trigger=true

For*_*est 5

这是我在这里得到的一个解决方案:https : //github.com/googleapis/nodejs-pubsub/issues/118

您需要通过您的谷歌云端控制台,要去验证这个URL API & ServicesCredentials,那么Domain Verification标签。添加您的Cloud Functions的URL。您将需要为每个人做到这一点。

然后,确保在Search Console中选择了META TAG验证方法,然后根据GET请求进行响应。

if (req.method === 'GET') {
      // mine is in a settings file but you can hardcode yours for testing purposes
      return res.send(`<html><head><meta name="google-site-verification" content="${settings.google.siteVerificationCode}" /></head><body></body></html>`)
}
Run Code Online (Sandbox Code Playgroud)