有没有办法确定应用引擎收到的消息来自 Google PubSub 服务?目前,PubSub 服务在 appengine app.yaml 中配置为“login: admin”的 URL 上获得 302。所以它一直在重试。
我本来希望它的行为类似于 Appengine 中的任务,并自动对“登录:管理员”URL 进行身份验证。
有没有办法确定应用引擎收到的消息来自 Google PubSub 服务?目前,PubSub 服务在 appengine app.yaml 中配置为“login: admin”的 URL 上获得 302。所以它一直在重试。
我本来希望它的行为类似于 Appengine 中的任务,并自动对“登录:管理员”URL 进行身份验证。
常见问题解答建议在设置您的 PubSub 推送订阅时,您将共享秘密令牌作为您在处理程序中检查的请求参数。
如果您还想验证消息是否来自 Google Cloud Pub/Sub,您可以将端点配置为仅接受带有秘密令牌参数的消息,例如,
https://myapp.mydomain.com/myhandler?token=application-secret.
由于 PubSub 不使用 appengine 身份验证并且我们使用令牌进行身份验证,因此您不应login
在 app.yaml 条目中为此处理程序指定密钥。这是一个例子:
主文件
class Handler(webapp2.RequestHandler):
def post(self):
token = self.request.params['token']
if token != 'foo':
self.abort(401, 'Not authorized')
# do stuff
app = webapp2.WSGIApplication([
('/', Handler),
], debug=True)
应用程序.yaml
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: main.app