我已经部署了一个Google App Engine App。
App Engine cron job每天触发一次。
应用引擎防火墙规则设置为"拒绝"以保持其私有。防火墙不会阻止App Engine的cron job。
现在我想用Google Cloud Scheduler替换App Engine cron job (Cloud Scheduler更容易使用,因为它有暂停功能)。
但是应用程序引擎防火墙阻止云调度程序。因此,为了使其工作,我需要将防火墙设置为"允许",以使其可公开访问。
是否有一种方法可以在它们之间建立私人通信,使我的应用程序只能通过云调度程序访问?
你不知道,它是一个无服务器产品,你不能将它连接到你的VPC或公共IP(然而,我希望这将很快改变!)。您可以允许一个Google公共IP范围。但在这种情况下,谷歌云上的任何人都可以访问你的应用引擎服务。
这就是为什么谷歌的座右铭之一是"不要相信网络",我建议你使用IAP等功能,而不是使用防火墙规则进行IP过滤。
我偶然发现了解决办法。
Cloud Scheduler - Create a Job - Target选择App Engine HTTP.
和玉米作业一样,应用引擎防火墙不会阻止它。