首页 > 解决方案 > 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 环境会出现这样的错误?以及如何正确修复它?

标签: pythonamazon-s3aws-lambdassl-certificateboto3

解决方案


推荐阅读