【发布时间】:2019-11-08 16:02:49
【问题描述】:
我需要读取我的 App Engine(标准)实例内 Google Cloud Storage 中的存储桶中的 .php 文件。
我有两个网络应用程序:
- Web App 1 是一个内部工具(托管在本地),它允许我们更改一些配置并将其以 JSON 格式保存到本地 .php 文件,然后再同步到 Google Cloud Storage。
- Web App 2 是另一个托管在 App Engine 上的内部工具(标准 - php72)。此应用需要不断地从 Web App 1 读取配置文件。
我们还有一些其他的 web 应用程序也依赖于这些配置文件,但由于它们与这个特定问题无关,我不会解释它们。
我们目前解决此问题的方法是每分钟在 Web App 2 上运行一个 cron,将 rsync 从 Google Cloud Storage 传输到服务器。
我想出的一些选项:
- 将配置文件从存储桶流式传输到 Web App 2
- Cloud Storage Fuse,但我得想办法重新加载 PHP
- 切换到 App Engine (Flex),创建已安装 gcloud 和存储桶凭据的自定义 docker 映像。这个选项的问题是我们的生产环境与我们的暂存环境不同
【问题讨论】:
-
让我看看我是否理解正确:您有两个应用程序。应用 1 更新了一些 rsync-ed 到 Google Cloud Storage 的文件。 App 2 (PHP72) 必须从 Cloud Storage 中读取这些文件。这是正确的吗?
-
@Mayeru 没错。 App Engine Standard 没有 gcloud 工具,因此可以使用
gcloud rsync命令。我认为我最好的选择是将登台和生产切换到 App Engine Flex :( -
如果您想从 App2 实例上的文件系统中“同步”文件,这将是一个简单的选择,如果您想保留 App Engine 标准环境,我已经发布了一个答案。
标签: php google-app-engine google-cloud-platform google-cloud-storage