gpt4 book ai didi

python - 在 AWS lambda 上运行时出现无法打开数据库文件错误

转载 作者:太空宇宙 更新时间:2023-11-03 14:45:09 26 4
gpt4 key购买 nike

我在程序中使用 coinmarketcap,并且已将该库正确安装到已上传到我的 aws lambda 函数的部署包中。但是,即使代码在我的计算机上本地运行,在 aws lambda 上运行时它也会返回以下错误消息:

{
"stackTrace": [
[
"/var/task/main.py",
11,
"lambda_handler",
"return on_intent(event[\"request\"], event[\"session\"])"
],
[
"/var/task/main.py",
50,
"on_intent",
"data = coinmarketcap.ticker('Bitcoin', limit=3, convert='USD')"
],
[
"/var/task/coinmarketcap/core.py",
54,
"ticker",
"response = self.__request('ticker/' + currency, params)"
],
[
"/var/task/coinmarketcap/core.py",
28,
"__request",
"response_object = self.session.get(self.base_url + endpoint, params = params, timeout = self.request_timeout)"
],
[
"/var/task/coinmarketcap/core.py",
21,
"session",
"self._session = requests_cache.core.CachedSession(cache_name='coinmarketcap_cache', backend='sqlite', expire_after=120)"
],
[
"/var/task/requests_cache/core.py",
68,
"__init__",
"self.cache = backends.create_backend(backend, cache_name, backend_options)"
],
[
"/var/task/requests_cache/backends/__init__.py",
50,
"create_backend",
"return registry[backend_name](cache_name, **options)"
],
[
"/var/task/requests_cache/backends/sqlite.py",
28,
"__init__",
"self.responses = DbPickleDict(location + extension, 'responses', fast_save=fast_save)"
],
[
"/var/task/requests_cache/backends/storage/dbdict.py",
58,
"__init__",
"with self.connection() as con:"
],
[
"/usr/lib64/python2.7/contextlib.py",
17,
"__enter__",
"return self.gen.next()"
],
[
"/var/task/requests_cache/backends/storage/dbdict.py",
70,
"connection",
"con = sqlite.connect(self.filename)"
]
],
"errorType": "OperationalError",
"errorMessage": "unable to open database file"
}

代码:

Was Here

知道为什么会发生这种情况吗?

最佳答案

尝试在 /var/task/ 中创建名为 coinmarketcap_cache.sqlite 的本地文件时,coinmarketcap-api 代码(查看 here )失败(您会在您的本地计算机上找到它,这就是它在本地工作的原因)。

AWS Lambda 没有对 /var/task/ 的写入权限。但是,它具有对/tmp/ 的写访问权限。遗憾的是,coinmarketcap-api 不支持更改该文件的位置,这让您几乎没有选择:

尝试更改代码最顶层的当前目录。

import os
os.chdir("/tmp")

关于python - 在 AWS lambda 上运行时出现无法打开数据库文件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46282576/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com