python - AWS lambda 从 S3 存储桶下载时出现 SSLError
问题描述
我创建了一个从 S3 存储桶下载文件的 Python lambda 函数。我给了这个 lambda 允许这个的角色。这段代码在本地运行良好。但是当在 AWS Lambda 上执行时,它会返回一个错误:
[Errno 2] No such file or directory: SSLError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 104, in downloadNewImage
s3_client.download_file(bucketName, imagePath, dest_pathname)
...
File "/var/runtime/botocore/vendored/requests/adapters.py", line 431, in send
raise SSLError(e, request=request)
botocore.vendored.requests.exceptions.SSLError: [Errno 2] No such file or directory
改变我s3_client
的创作方式:
s3_client = boto3.client('s3')
对此:
s3_client = boto3.client('s3', verify=False)
解决了这个问题。但是现在我在日志中看到了很多警告:
/var/runtime/botocore/vendored/requests/packages/urllib3/connectionpool.py:768:InsecureRequestWarning:正在发出未经验证的 HTTPS 请求。强烈建议添加证书验证。请参阅:https ://urllib3.readthedocs.org/en/latest/security.html
为什么 AWS Lambda 环境会出现这样的错误?以及如何正确修复它?
解决方案
推荐阅读
- javascript - 如何根据一些数据渲染路由
- python - 如何以一分钟的间隔获取历史数据?
- python-3.x - 如何以编程方式更改 Word 文档中的页面?
- matlab - 具有 2 个变量的隐式函数
- python - 创建仅选择符合条件的行的数据框
- matlab - 如何在Matlab的条形图中将值放在条形上方?
- python-3.x - 如何使用非常大的稀疏矩阵拟合 Scikit-learn 分类器?
- django - 在 AWS EC2 上的多个子域上部署一个具有多个应用程序的 django 项目
- react-native - 如何将 ListFooterComponent 粘贴到屏幕底部?
- java - 以编程方式将设置 TimePicker 视图更改为微调器模式