保护节点应用引擎中的PubSub推送端点?

时间:2017-08-30 21:39:11

标签: node.js google-app-engine google-cloud-pubsub

我正在使用pubsub将消息推送到灵活环境中的节点中编写的App Engine应用程序中。有没有办法可以限制我的端点只限于来自pubsub的流量?

在标准环境中,App Engine具有可以定义仅管理请求和安全端点的处理程序。但是,此功能在灵活环境中不可用。是否可以仅针对Google请求设置防火墙规则(防火墙似乎是应用程序范围,而不是端点?),是否有标准方法来保护端点或我是否需要自定义解决方案?

1 个答案:

答案 0 :(得分:1)

原来Google已发布了此in the docs的解决方案。

解决方案是:

在app.yaml环境中创建令牌:

env_variables:
 PUBSUB_TOPIC: <your-topic-name>
 # This token is used to verify that requests originate from your
 # application. It can be any sufficiently random string.
 PUBSUB_VERIFICATION_TOKEN: <your-verification-token>

发送带有您留言的令牌:

 https://YOUR_APP_ID.appspot.com/pubsub/push?token=YOUR_TOKEN \
--ack-deadline 10

检查推送处理程序中的令牌:

  if (req.query.token !== PUBSUB_VERIFICATION_TOKEN) {
    res.status(400).send();
    return;
  }

RTFM!