Pandas : AWS S3 버킷의 'read_csv'함수가 때때로 "FileNotFoundError"를 반환 함

데이비드

'eu-west-1'리전의 s3 이벤트 (파일 생성)에서 트리거되는 AWS 람다를 개발했습니다. 이 람다는이를 트리거 한 "csv"파일을 읽고 처리합니다 (따라서 존재합니다!). 총 실행 시간은 최대 4 초입니다. 파일은 약 10 초마다 도착하며 항상 몇 주 동안 완벽하게 작동했습니다. 오늘, 20 분 동안 "FileNotFoundError"예외는 람다가 그것을 트리거 한 파일을 읽을 때 체계적으로 오류를 일으켰습니다. 몇 분 후 오류를 생성 한 파일을 수동으로 다시 업로드하면 람다가 성공적으로 실행됩니다.

다음은 람다 코드의 샘플입니다.

import pandas as pd
import boto3

...

def lambda_handler(event, context):

    for record in event['Records']:
        bucket_name = record['s3']['bucket']['name']
        source_key = unquote_plus(record['s3']['object']['key'])

        df = pd.read_csv(f"s3://{bucket_name}/{source_key}", sep=',', index_col=0)  # Returns sometimes "FileNotFoundError"
...

다음은 람다 실행에 대해 반환 된 오류 로그입니다.

[ERROR] FileNotFoundError: frefin-bitbot-prd-202714940105-eu-west-1-data/data/collection/kraken/order_book/depth-100/compilation/xxbtzusd/timeframe-10/shift-0/XXBTZUSD_1599718540_1599718550_10_0.csv
Traceback (most recent call last):
  File "/var/task/entrypoint.py", line 96, in lambda_handler
    df = pd.read_csv(f"s3://{bucket_name}/{source_key}", sep=',', index_col=0)
  File "/var/task/pandas/io/parsers.py", line 686, in read_csv
    return _read(filepath_or_buffer, kwds)
  File "/var/task/pandas/io/parsers.py", line 435, in _read
    filepath_or_buffer, encoding, compression
  File "/var/task/pandas/io/common.py", line 222, in get_filepath_or_buffer
    filepath_or_buffer, mode=mode or "rb", **(storage_options or 
{}
)
  File "/var/task/fsspec/core.py", line 133, in open
    out = self.__enter__()
  File "/var/task/fsspec/core.py", line 101, in __enter__
    f = self.fs.open(self.path, mode=mode)
  File "/var/task/fsspec/spec.py", line 844, in open
    **kwargs
  File "/var/task/s3fs/core.py", line 378, in _open
    autocommit=autocommit, requester_pays=requester_pays)
  File "/var/task/s3fs/core.py", line 1097, in __init__
    cache_type=cache_type)
  File "/var/task/fsspec/spec.py", line 1134, in __init__
    self.details = fs.info(path)
  File "/var/task/s3fs/core.py", line 527, in info
    if self.version_aware or (key and self._ls_from_cache(path) is None) or refresh:
  File "/var/task/fsspec/spec.py", line 321, in _ls_from_cache
    raise FileNotFoundError(path)

그것에 대해 두 가지 질문이 있습니다.

  1. 이 오류에 대한 설명이 있습니까?
  2. 이 상황을 가장 잘 관리하는 방법은 무엇입니까?

미리 감사드립니다

마르신

이 상황을 가장 잘 관리하는 방법은 무엇입니까?

왜 그런 일이 일어 났는지에 대한 설명은 없지만, 어떻게 대처할 것인지에 대한 아이디어가 있거나 최소한 그러한 상황을 관리하려고 노력합니다. 함수에서 오류 재시도 및 지수 백 오프구현할 수 있습니다 . 오류가 발생하면이를 포착하고 다른 지연으로 몇 번 재 시도합니다.

백 오프가 도움이되지 않고 실패가 검역 된 경우 이러한 오류를 유발하는 "불량"S3 이벤트를 캡처하도록 함수에 배달 못한 편지 대기열설정할 수 있습니다. 이렇게하면 자동으로 응답 할 수 있습니다 (예 : 알림 받기 및 문제 해결).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Nodejs의 AWS Lambda 함수에서 S3 버킷의 콘텐츠를 읽으려고 할 때 결과를 얻지 못함

분류에서Dev

S3 버킷에서 이미지 경로를 추출 할 때 ENOENT 오류가 발생 함

분류에서Dev

Spring Cloud AWS S3가 포함 된 Spring Batch는 EU 버킷에 대해 301을 반환합니다.

분류에서Dev

Pandas read_csv의 람다 함수에 추가 인수를 전달할 수 있습니까?

분류에서Dev

aws_s3.query_export_to_s3 함수를 사용하여 AWS RDS Postgres 테이블을 S3의 CSV로 내보낼 수 없음

분류에서Dev

csv를 json으로 변환 할 때 .append () 함수의 KeyError

분류에서Dev

Pandas : read_csv를 사용할 때 큰 따옴표를 포함하는 방법은 무엇입니까?

분류에서Dev

s3의 코드 최적화는 csv를 읽고 s3 버킷으로 다시 수집합니다.

분류에서Dev

S3 버킷에서 AWS Lambda 함수 코드의 라이브러리 가져 오기

분류에서Dev

Pandas read_csv 함수로 문제 없음

분류에서Dev

AWS Lambda를 사용하여 AWS의 한 s3 버킷에서 다른 버킷으로 파일 이동

분류에서Dev

구성자가 때때로 빈 결과를 반환 함

분류에서Dev

AWS CloudFront가 라우팅 규칙을 잘못 해석하고 리소스를 다시 S3 버킷 객체 URL로 리디렉션 함

분류에서Dev

함수를 실행할 때 AWS 계층에서 로컬로 빌드 된 편집 가능한 pip3 패키지 지정으로 전환 할 수 없음

분류에서Dev

S3 버킷에 디렉터리 콘텐츠를 업로드해야 함

분류에서Dev

함수의 반환 객체를 암시 적으로 캐스팅 할 때 성능 저하가 있습니까?

분류에서Dev

AWS Python Lambda 함수-UTF-8로 인코딩 된 CSV를 S3에 작성

분류에서Dev

사전 처리 된 데이터를 s3 버킷의 폴더에 csv로 저장할 수 없음

분류에서Dev

Pandas read_csv 가져 오기로 인해 오류가 발생 함

분류에서Dev

Apache Ozone + AWS S3 .Net API : PutObject가 키 대신 버킷을 생성 함

분류에서Dev

pandas read_csv 객체를 float로 변환

분류에서Dev

pandas read_csv () 및 python 반복기를 입력으로 사용

분류에서Dev

Spring Boot가 AWS S3 버킷에 연결할 수 없음-IAM 자격 증명이 정확함

분류에서Dev

csv 행 파이썬에 함수를 적용 할 때 Pandas가 두 번 반복됩니다.

분류에서Dev

AWS s3가 다른 s3 버킷으로 리디렉션

분류에서Dev

aws s3.copyObject는 대상 경로와 함께 매개 변수를 반환합니다.

분류에서Dev

열을 기반으로 데이터 프레임을 정렬하려면 read_csv 함수에서 "sort by"함수를 사용할 수 있습니까?

분류에서Dev

서버리스를 사용하여 S3 버킷을 생성 할 때 '버킷 이름에 대문자가 포함되지 않아야 함'오류가 발생 함

분류에서Dev

Python Pandas-groupby 함수의 결과를 부모 테이블로 반환

Related 관련 기사

  1. 1

    Nodejs의 AWS Lambda 함수에서 S3 버킷의 콘텐츠를 읽으려고 할 때 결과를 얻지 못함

  2. 2

    S3 버킷에서 이미지 경로를 추출 할 때 ENOENT 오류가 발생 함

  3. 3

    Spring Cloud AWS S3가 포함 된 Spring Batch는 EU 버킷에 대해 301을 반환합니다.

  4. 4

    Pandas read_csv의 람다 함수에 추가 인수를 전달할 수 있습니까?

  5. 5

    aws_s3.query_export_to_s3 함수를 사용하여 AWS RDS Postgres 테이블을 S3의 CSV로 내보낼 수 없음

  6. 6

    csv를 json으로 변환 할 때 .append () 함수의 KeyError

  7. 7

    Pandas : read_csv를 사용할 때 큰 따옴표를 포함하는 방법은 무엇입니까?

  8. 8

    s3의 코드 최적화는 csv를 읽고 s3 버킷으로 다시 수집합니다.

  9. 9

    S3 버킷에서 AWS Lambda 함수 코드의 라이브러리 가져 오기

  10. 10

    Pandas read_csv 함수로 문제 없음

  11. 11

    AWS Lambda를 사용하여 AWS의 한 s3 버킷에서 다른 버킷으로 파일 이동

  12. 12

    구성자가 때때로 빈 결과를 반환 함

  13. 13

    AWS CloudFront가 라우팅 규칙을 잘못 해석하고 리소스를 다시 S3 버킷 객체 URL로 리디렉션 함

  14. 14

    함수를 실행할 때 AWS 계층에서 로컬로 빌드 된 편집 가능한 pip3 패키지 지정으로 전환 할 수 없음

  15. 15

    S3 버킷에 디렉터리 콘텐츠를 업로드해야 함

  16. 16

    함수의 반환 객체를 암시 적으로 캐스팅 할 때 성능 저하가 있습니까?

  17. 17

    AWS Python Lambda 함수-UTF-8로 인코딩 된 CSV를 S3에 작성

  18. 18

    사전 처리 된 데이터를 s3 버킷의 폴더에 csv로 저장할 수 없음

  19. 19

    Pandas read_csv 가져 오기로 인해 오류가 발생 함

  20. 20

    Apache Ozone + AWS S3 .Net API : PutObject가 키 대신 버킷을 생성 함

  21. 21

    pandas read_csv 객체를 float로 변환

  22. 22

    pandas read_csv () 및 python 반복기를 입력으로 사용

  23. 23

    Spring Boot가 AWS S3 버킷에 연결할 수 없음-IAM 자격 증명이 정확함

  24. 24

    csv 행 파이썬에 함수를 적용 할 때 Pandas가 두 번 반복됩니다.

  25. 25

    AWS s3가 다른 s3 버킷으로 리디렉션

  26. 26

    aws s3.copyObject는 대상 경로와 함께 매개 변수를 반환합니다.

  27. 27

    열을 기반으로 데이터 프레임을 정렬하려면 read_csv 함수에서 "sort by"함수를 사용할 수 있습니까?

  28. 28

    서버리스를 사용하여 S3 버킷을 생성 할 때 '버킷 이름에 대문자가 포함되지 않아야 함'오류가 발생 함

  29. 29

    Python Pandas-groupby 함수의 결과를 부모 테이블로 반환

뜨겁다태그

보관