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

Dav*_*vid 1 google-app-engine google-cloud-platform app-engine-flexible

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

Ale*_*nok 5

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

文档

您可能需要验证对您的cron URL的请求是来自App Engine而不是来自其他来源。您可以通过验证请求的HTTP标头和源IP地址来实现:

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

    X-Appengine-Cron: true

X-Appengine-Cron标头由Google App Engine在内部设置。如果您的请求处理程序找到此标头,则可以相信该请求是cron请求。当X-标头来自外部来源时,App Engine会将它们剥离,以便您可以信任此标头。

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