Python 无法将文件下载到AWS Lambda

Python 无法将文件下载到AWS Lambda,python,amazon-web-services,aws-lambda,kaggle,Python,Amazon Web Services,Aws Lambda,Kaggle,我有一个AWS Lambda函数,可以下载一个文件。我已经读到我唯一可以写入的目录是/tmp目录,但是我仍然收到这个错误 [ERROR] OSError: [Errno 30] Read-only file system: '/home/sbx_user1051' Traceback (most recent call last):   File "/var/lang/lib/python3.8/imp.py", line 234, in load_module     re

我有一个AWS Lambda函数,可以下载一个文件。我已经读到我唯一可以写入的目录是
/tmp
目录,但是我仍然收到这个错误

[ERROR] OSError: [Errno 30] Read-only file system: '/home/sbx_user1051'
Traceback (most recent call last):
  File "/var/lang/lib/python3.8/imp.py", line 234, in load_module
    return load_source(name, filename, file)
  File "/var/lang/lib/python3.8/imp.py", line 171, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 702, in _load
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/var/task/lambda_function.py", line 9, in <module>
    from kaggle.api.kaggle_api_extended import KaggleApi
  File "/var/task/kaggle/__init__.py", line 19, in <module>
    from kaggle.api.kaggle_api_extended import KaggleApi
  File "/var/task/kaggle/api/__init__.py", line 22, in <module>
    from kaggle.api.kaggle_api_extended import KaggleApi
  File "/var/task/kaggle/api/kaggle_api_extended.py", line 84, in <module>
    class KaggleApi(KaggleApi):
  File "/var/task/kaggle/api/kaggle_api_extended.py", line 102, in KaggleApi
    os.makedirs(config_dir)
  File "/var/lang/lib/python3.8/os.py", line 213, in makedirs
    makedirs(head, exist_ok=exist_ok)
  File "/var/lang/lib/python3.8/os.py", line 223, in makedirs
    mkdir(name, mode)

正如@joran所指出的,导入试图创建一些配置目录

config\u dir=os.environ.get('KAGGLE\u config\u dir')或os.path.join(
expanduser(“~”,“.kaggle”)
如果不存在os.path.exists(配置目录):
os.makedirs(配置目录)
您可以设置环境变量,或者在本例中,您可以将其直接指向
/tmp/
,因为这是您可以编写任何内容的唯一目录

相应的

从文档中可以看出,您似乎只需要配置凭据,您可以将其放入lambda中并将其取出

export-KAGGLE\u USERNAME=DataDigon
导出KAGGLE_密钥=XXXXXXXXXXXXX
获取并导出凭据后,就可以为API添加导入语句

或者,如果您有足够的冒险精神,可以稍微修改代码,并尝试创建
配置
类对象,最终在初始化中使用该类对象

        self.username = ""
        # Password for HTTP basic authentication
        self.password = ""


它出现故障的线路似乎是来自kaggle.api.kaggle\u api\u扩展导入KaggleApi的
。。。不是下载。。。看起来导入尝试创建一些配置文件和文件夹(您可能可以使用os.enviro vars更改它创建配置目录的位置…可能,可能不)谢谢,您知道我该怎么做吗?可能需要注意的是,此步骤必须在导入之前进行
        self.username = ""
        # Password for HTTP basic authentication
        self.password = ""