python - 在 Serverless Lambda 函数中访问/tmp 或其他临时文件结构

标签 python amazon-web-services aws-lambda serverless aws-serverless

使用控制台的 AWS Lambda 函数

在 AWS Lambda 中,我的函数会将文件从 S3 保存到 /tmp 目录,如下所示:

local_filepath = '/tmp/file.txt'

s3.download_file(
  Bucket=bucket,
  Key=key,
  Filename=local_filepath
)

生活很美好。

使用无服务器的 AWS Lambda 函数

然而,使用无服务器是另一回事。

相同的设置会导致以下错误:

[Errno 2] 没有这样的文件或目录:'/tmp/processed.txt.7E4850BD'

所以我猜测 Serverless 执行环境中没有 /tmp 目录。

我尝试使用 local_filepath = 'file.txt' 将文件保存到当前目录,但我得到了一个 OSError(30, 'Read-only file system ') 错误。

最佳答案

尝试使用 tempfile 模块,它有一组技术来检索要使用的临时目录:

local_filepath = os.path.join(tempfile.gettempdir(), 'file.txt')

关于python - 在 Serverless Lambda 函数中访问/tmp 或其他临时文件结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56153604/

相关文章:

python - 无法在 pynput 中选择文本

c# - 如何在本地运行基于 C# 的 AWS Lambda 函数进行开发?

amazon-web-services - aws ApiGateway 部署到特定阶段

python - 在 AWS Lambda 中连接 AWS RDS (psql)

python - 根据行值使用其他列的名称填充新的 pandas 数据框列

python - 按索引将列表中的值映射到列表

amazon-web-services - 配置文件中未指定 Hyperkube apiserver 区域

amazon-web-services - 将 cloudformation 文件分解为更小的脚本

python - 如何使用: split 'hh:mm:ss' string to milliseconds float in every row of a dataframe in Python?

amazon-web-services - 由于 EMI 问题,使用 aws vpc 的 ECS 服务无法启动