从 PubSub 推送订阅验证云功能

Authenticating to cloud function from PubSub push subscription

我们正在使用 PubSub 进行排队,利用指向 http 触发的 云函数的推送订阅。根据 this 文档 Cloud 运行 和 App Engine 都将对来自 PubSub 的请求进行身份验证,未列出云功能。我们使用了其他 google 服务,例如调度程序来调用需要身份验证的函数,但使用 PubSub 时运气不佳。

我的问题是,云函数是否支持通过订阅目标帐户集从 PubSub 进行身份验证,或者是否需要该函数读取并处理 JWT 本身以进行身份​​验证?

Pub/Sub订阅支持对使用“推送”的订阅使用服务帐号认证。

要使用服务帐户,只需指定云函数的端点、启用身份验证并添加用于向云函数发送请求的服务帐户。确保服务帐户具有访问 PubSub 和云功能的适当权限。

你需要不同的东西:

  • 具有 role/cloudfunctions.invoker
  • 的服务帐户
  • 勾选 Enable authentication
  • Select 您的服务帐号
  • 在受众字段中添加云功能URL(如云功能中提供的那样)。 这是 Ricco 答案中缺少的部分


编辑 1

PubSub 需要获得在服务帐户上生成令牌的授权。检查 first step on this。在那里,它展示了如何将 pubsub 服务代理服务帐户授予令牌创建者。