如何在我的App Engine中仅允许内部(cron)请求

时间:2017-10-10 06:03:31

标签: google-app-engine google-cloud-platform app-engine-flexible

目前,我正在使用nodejs App Engine(灵活环境)来执行计划任务,例如关闭和启动实例或创建shapshots。问题是这些应用程序引擎可以从任何地方访问,但我只希望它们可以在我的Google云网络中访问。 我似乎无法让防火墙以这种方式工作。 有谁知道是否有办法做到这一点?

1 个答案:

答案 0 :(得分:4)

要强制在Google云网络中触发cron作业,您可以检查请求的X-Appengine-Cron: true标头,客户端IP为0.1.0.1

来自documentation

  

您可能希望验证对您的cron网址的请求即将到来   来自App Engine,而不是来自其他来源。你可以这样做   验证HTTP标头和请求的源IP地址:

     
      
  • 来自Cron服务的请求还将包含HTTP标头:

         

    X-Appengine-Cron: true

  •   
     

X-Appengine-Cron标头由Google App Engine在内部设置。   如果您的请求处理程序找到此标头,则可以信任该标头   请求是一个cron请求。 App引擎剥离了X-header   当它们来自外部来源,以便您可以相信这一点   报头中。

     
      
  • Google App Engine从IP地址0.1.0.1
  • 发出cron请求