Ошибка 2: Нет такого файла или каталога: SSLError при вызове s3.get_object () - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь загрузить CSV-файл из моего S3-контейнера через функцию лямбда-выражения.Когда я это делаю, я получаю следующую ошибку:

Errno 2: No such file or directory: SSLError
Traceback (most recent call last):
File "/var/task/lambda_function_csv.py", line 12, in lambda_handler
obj = raw_s3.get_object(Bucket ='h2h-demo', Key ='H2H_results_100.csv')

Я использую приведенный ниже код в своей функции, чтобы получить файл.При использовании встроенного редактора в конфигурации функции для создания небольшой функции, которая печатает строки файла CSV, который я читаю, он работает.

Это также работает, когда я запускаю его на своем локальном компьютере.

raw_s3 = boto3.client('s3')
obj = raw_s3.get_object(Bucket ='h2h-demo', Key ='H2H_results_100.csv')

Однако, когда я помещаю его в свой окончательный код, который архивируется с некоторыми другими зависимостями и использует данные строки для другой обработки, я получаю ошибку, указанную выше.Я не понимаю, почему это происходит.

1 Ответ

0 голосов
/ 17 декабря 2018

Вы можете копировать объекты только в папку tmp на лямбде, внесите следующие изменения, добавив папку tmp к месту назначения:
obj = raw_s3.get_object(Bucket ='h2h-demo', Key ='/tmp/H2H_results_100.csv')

Я бы предложил выбрасывать исключения, в будущем они будутдействительно полезен при отладке:

 import boto3
 import botocore

BUCKET_NAME = 'xyz' # replace with your bucket name
KEY = 'xyz' # replace with your object key

s3 = boto3.resource('s3')

try:
    s3.Bucket(BUCKET_NAME).download_file(KEY, '/tmp/xyz')
except botocore.exceptions.ClientError as e:
    if e.response['Error']['Code'] == "404":
        print("The object does not exist.")
    else:
        raise

Если вы попытаетесь сохранить его в лямбда-файле, отличном от папки tmp, вы получите следующую ошибку:

"errorMessage": "[Errno 30] Read-only file system: 'xyz'",

Ссылка: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-example-download-file.html

...