我希望将 Google VM 连接到网站

I'm looking to connect a Google VM to a website

我需要对我的问题进行反思、设想和记录。

我写了一个 python 脚本来根据 API 计算一些东西并将结果导出到 CSV 文件中。然后,我使用 JavaScript 脚本在建筑网站上显示来自此 CSV 文件的数据。 我需要为我的网站提供最新数据,所以我在 Google 云平台(Google 计算引擎)中打开了一个 VM 实例,并自动将 Crontab 作业设置为 运行 我的 python 脚本。现在每天执行计算并将结果导出到 CSV 文件,但存储在此 VM 实例中。

我的目标是:如何在我的网站上获取我的 CSV 文件? CSV 始终在虚拟机上,我不知道如何将我的 JavaScript 脚本与虚拟机通信。我必须直接与 VM 通信吗?我是否必须在(服务器、API 等)之前完成另一个步骤?

我无法在 Internet 上找到针对我的问题的具体解决方案。

提前致谢。

我建议您采用不同于使用 VM 计算和存储 CSV 的方法。

我们的想法是使用 Python Cloud Function,即 运行 by Cloud Scheduler and Pub/Sub.

此函数将生成您的 CSV 文件,该文件将存储在云存储中。 Here 您可以找到有关如何使用 Python.

将对象上传到云存储的示例

然后,您需要让您的网站能够在需要时访问云存储中的该 CSV 文件。正如@guillaumeblaquiere 所指出的,确切的方式将取决于您网站的托管位置:特别是,它将限制您需要用于下载数据的身份验证机制。 GCP 中的文档提供了关于此事的几个 examples

Google Cloud 的 documentation 提供了建议架构的示例。

我发现 an article 以某种方式描述了我建议的设置。

请考虑查看上述不同产品的成本。

How can I get my CSV file on my website?

通过使您的 python 脚本将 CSV 文件输出到您网站的根文件夹中。

例如,如果您是 运行 apache,您的根文件夹很可能位于 /var/www/html/...

如果脚本是从另一台机器(不是您网站所在的机器)生成的,那么我会托管它并让托管您网站的服务器通过 cronjob 获取它。

基本上: 如果您的 CSV 生成自与将使用它的网站相同的机器 - 只需将其输出到网站的文件夹

如果您的 CSV 是从另一台机器生成的,请将其公开访问并让您网站的机器 cronjob 在生成该 CSV 几分钟后获取该 CSV。