我在AWS Lambda中遇到了Google Drive凭证的问题,在部署我的.zip文件后,在本地机器上调用函数之前,一切正常,但在将zip部署到AWS后约30分钟后,我会遇到Lambda函数错误。
"errorMessage": "[Errno 30] Read-only file system: 'drive-python-quickstart.json'",
"errorType": "OSError",
"stackTrace": [
[
"/var/task/lambda_function.py",
33,
"lambda_handler",
"pageSize=10,fields=\"nextPageToken, files(id, name)\").execute()"
],
[
"/var/task/oauth2client/_helpers.py",
133,
"positional_wrapper",
"return wrapped(*args, **kwargs)"
],
[
"/var/task/googleapiclient/http.py",
835,
"execute",
"method=str(self.method), body=self.body, headers=self.headers)"
],
[
"/var/task/googleapiclient/http.py",
162,
"_retry_request",
"resp, content = http.request(uri, method, *args, **kwargs)"
],
[
"/var/task/oauth2client/transport.py",
186,
"new_request",
"credentials._refresh(orig_request_method)"
],
[
"/var/task/oauth2client/client.py",
761,
"_refresh",
"self._do_refresh_request(http)"
],
[
"/var/task/oauth2client/client.py",
802,
"_do_refresh_request",
"self.store.locked_put(self)"
],
[
"/var/task/oauth2client/file.py",
79,
"locked_put",
"f = open(self._filename, 'w')"
]
]
}
在文件file.py中,我有如下代码:
def locked_put(self, credentials):
"""Write Credentials to file.
Args:
credentials: Credentials, the credentials to store.
Raises:
IOError if the file is a symbolic link.
"""
self._create_file_if_needed()
_helpers.validate_file(self._filename)
f = open(self._filename, 'w')
f.write(credentials.to_json())
f.close()
def locked_delete(self):
"""Delete Credentials file.
Args:
credentials: Credentials, the credentials to store.
"""
os.unlink(self._filename)
我尝试将f = open(self._filename, 'w') 设置为 'r',但这没有帮助,也许有人知道我该如何修复它?请建议。
tmp
的文件夹,然后将要写入的文件路径更改为/tmp/FILE
。 - yudhiesh