GCP - 验证PubSub推送的云功能https端点的所有权

Lou*_*oid 10 google-cloud-platform google-cloud-pubsub google-cloud-functions

很确定没有办法做到这一点,但很高兴能够找到其他人是否有任何想法.

我想要做的是这样的:

  • 我在Google Cloud Platform上托管了2个微服务作为云功能
  • 我的第一个微服务确实填充并使用主题[x]触发PubSub消息
  • 我想将我的第二个微服务设置为主题[x]的推送订阅者.我知道我可以通过使用订阅触发器部署第二个云功能来实现这一点,但我不想这样做,因为没有合适的方式来确认/拒绝该消息(请参阅此帖子:Google Cloud Functions仅限Ack Pub/Sub成功).
  • 因此我将第二个函数部署为具有HTTP触发器.然后我尝试在GCP控制台中将推送订阅配置到此端点URL.当然,这不起作用,因为 https:// [cloud-subdomain] .cloudfunctions.net /不是经过验证的域.

我想这是不可能做我正在尝试的,而是需要在应用程序引擎或其他我可以验证域的地方创建我的第二个微服务.

提前致谢!

Tux*_*ude 7

使用HTML标记方法进行网站验证

不仅仅是基于域名注册商的验证,您还可以使用此处列出的任何方法验证您的网站.我同意其中大部分内容不适用于云功能,但可以HTML Tag通过云功能在几分钟内完成基于验证的工作.

您需要meta在body属性之前的HTML响应中添加给定属性.

例:

<meta name="google-site-verification" content="VERIFICATION_TAG" />
Run Code Online (Sandbox Code Playgroud)

此外,Google会定期验证域名(即使在初次成功之后),因此只要您要验证网址,就必须继续返回此回复.

验证持续多长时间?

Google会以适合您的验证方式的方式定期检查您的验证是否有效(例如,检查您网站上是否存在HTML标记).如果无法再确认验证,则您对该属性的权限将在特定宽限期后过期.

在Cloud功能中实现重试机制

这与您链接其他答案中解释的选项相同,IMO更简单.以currentRetryAttempt作为请求的参数并每次排队再试请求的递归回到相同的功能,当你超时时间增加此值.在排队新的重试请求之前,您需要检查currentRetryAttempt一个maxRetriesAllowed值.

与之前的选项不同,它不会对您的Cloud功能的响应施加任何限制.