【问题标题】:Can I save files in a serverless server?我可以将文件保存在无服务器服务器中吗?
【发布时间】:2021-11-05 06:39:50
【问题描述】:

例如,如果我做类似的事情

f = open("demofile.txt", "w")
f.write("test content")
f.close()

在 Google Cloud Run 或 Anthos 等无服务器环境中(假设这是 Web 应用程序的一部分),demofile.txt 是否会永久存在,我是否始终能够通过f.read() 访问它?

【问题讨论】:

  • 无服务器通常意味着无状态。如果您希望文件持久保存,则必须在构建容器时将其存储或将其存储在其他地方(云存储、数据库、缓存等)。 @guillaume 提供了一个很好的答案,提供了更多细节。

标签: python file serverless google-cloud-run google-anthos


【解决方案1】:

你的问题很奇怪,但我会尽力回答。

您可以在无服务器产品中编写文件,例如 Cloud Run、Cloud Functions 和 App Engine。 /tmp 目录是可写的。 但是它是一个内存文件系统。这意味着您可以从您的实例(而不是从其他实例)写入和访问您的数据,并且该文件将持续到实例的末尾。此外,文件占用分配的内存中的空间。因此,存储限制是您实例的内存大小。

使用 Cloud Run,有一个新的先前功能(仅在几天前公开发布)允许您使用第二代运行时和use network file system(带有 GCSFuse 或 Filestore 的 Google Cloud Storage)。它是“外部存储”,但在您的应用中被视为本地目录。


关于 Anthos 的最后一点(因为您在问题中提到了它):Anthos 是一套产品,允许从 Google Cloud 控制台管理运行在 Google Cloud 之外的资源(主要是 Kubernetes 集群)。有一个 Cloud Run for Anthos 版本,但 Anthos 本身并不是无服务器产品。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    相关资源
    最近更新 更多