目前,我正在使用nodejs App Engine(灵活环境)来执行计划任务,例如关闭和启动实例或创建shapshots。问题是这些应用程序引擎可以从任何地方访问,但我只希望它们可以在我的Google云网络中访问。 我似乎无法让防火墙以这种方式工作。 有谁知道是否有办法做到这一点?
答案 0 :(得分:4)
要强制在Google云网络中触发cron作业,您可以检查请求的X-Appengine-Cron: true
标头,客户端IP为0.1.0.1
。
您可能希望验证对您的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请求