AWS Lambda 함수를 사용하여 S3에서 .gz 파일을 디코딩하려면 어떻게해야합니까?

신중한 4

AWS Config가 12 시간마다 AWS 시스템의 스냅 샷을 S3 버킷으로 전송합니다. 전체 AWS 시스템에 대한 정보를 포함하는 .json.gz 형식으로 저장된 JSON 파일입니다. 버킷에서 객체 생성시 Lambda 함수가 트리거되어 해당 파일을 읽습니다. 내 계획은 함수에서 JSON 정보를 읽고 데이터를 구문 분석하고 AWS 시스템의 특정 요소를 설명하는 보고서를 생성 한 다음 해당 보고서를 다른 S3 버킷으로 푸시하는 것입니다.

내 현재 코드는 다음과 같습니다.

data = s3.get_object(Bucket=bucket, Key=key)
text = data['Body'].read().decode('utf-8')
json_data = json.loads(text)

현재 내가 받고있는 오류는 'utf-8'코덱이 위치 1에서 0x8b 바이트를 디코딩 할 수 없습니다. 잘못된 시작 바이트입니다.

내 생각 엔이 오류는 data [ 'Body']의 특정 바이트가 ASCII 문자가 아니라는 것입니다. 분명히 표준 utf-8을 사용하여 디코딩 할 수 없으므로 대신 .gz 파일의 압축을 풀고 싶습니다. 이를 수행하는 방법이 있습니까? 이미 zipfile.py를 살펴 보았지만 실제로 사용 사례에 대한 정보를 수집 할 수 없습니다. 감사.

Stdunbar

맞습니다-이것을 텍스트로 디코딩 할 수 없습니다. 다음과 같은 것을 원할 것입니다.

import io
import gzip
import json

import boto3
from urllib.parse import unquote_plus

def handler_name(event, context): 
    s3client = boto3.client('s3')
    for record in event['Records']:
        bucket = record['s3']['bucket']['name']
        key = unquote_plus(record['s3']['object']['key'])

        response = s3client.get_object(Bucket=bucket, Key=key)
        content = response['Body'].read()
        with gzip.GzipFile(fileobj=io.BytesIO(content), mode='rb') as fh:
            yourJson = json.load(fh)

그런 다음 yourJson변수를 사용 하여 JSON을 읽을 수 있습니다 .

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Javascript를 사용하여 브라우저에서 AWS Lambda를 호출하면 함수에 입력 값을 보내려면 어떻게해야합니까?

분류에서Dev

NodeJS를 사용하여 AWS Lambda 함수의 성능을 개선하려면 어떻게해야합니까?

분류에서Dev

Python Lambda 함수를 AWS Amplify의 파이프 라인에 통합하려면 어떻게해야합니까?

분류에서Dev

AWS S3 버킷에서 암호화 된 .gz 파일을 다운로드하려면 어떻게해야합니까?

분류에서Dev

gunzip과 tar를 사용하여 내가 원하는 특정 디렉토리에 tar.gz 파일을 추출하려면 어떻게해야합니까?

분류에서Dev

boto3를 사용하여 Github의 파일을 AWS S3 버킷에 업로드하려면 어떻게해야합니까?

분류에서Dev

AWS SDK를 설치하지 않고 Powershell을 통해 S3에서 파일을 다운로드하려면 어떻게해야합니까?

분류에서Dev

AWS CLI를 사용하여 Elastic Container Registry 이미지에서 lambda 함수를 생성하려면 어떻게해야합니까?

분류에서Dev

s3를 저장소로 사용하여 django에서 미디어 파일을 자동으로 표시하려면 어떻게해야합니까?

분류에서Dev

VSCode에서 AWS Lambda 함수를 업데이트하려면 어떻게해야합니까?

분류에서Dev

Amazon AWS Lambda 함수에서 MQTT 주제를 구독하려면 어떻게해야합니까?

분류에서Dev

AWS Lambda ListFunctions API에서 자체 필터 조건과 일치하는 원하는 수의 레코드를 얻으려면 어떻게해야합니까?

분류에서Dev

JSON을 매개 변수로 AWS Lambda에 전달하려면 어떻게해야합니까?

분류에서Dev

Java를 사용하여 AWS S3에 폴더를 업로드하려면 어떻게해야합니까?

분류에서Dev

AWS Gateway를 사용하여 Lambda를 가져와 C #에서 HTTP 오류 상태 코드를 반환하려면 어떻게해야합니까?

분류에서Dev

AWS S3 C ++ SDK를 사용하여 서명을 v2로 설정하려면 어떻게해야합니까?

분류에서Dev

Courier를 사용하여 AWS SES에서 보낸 이메일에 파일을 첨부하려면 어떻게해야합니까?

분류에서Dev

Django가 AWS Lambda 계층을 사용하는 SQL Server에 연결하려면 어떻게해야합니까?

분류에서Dev

Node.js 및 Axios를 사용하여 AWS의 사전 서명 된 URL에 파일을 업로드하려면 어떻게해야합니까?

분류에서Dev

AWS Lambda에서 여러 AWS Parameter Store 값을 캐시하려면 어떻게해야합니까?

분류에서Dev

AWS API 게이트웨이의 10MB 제한을 우회하고 대용량 파일을 AWS Lambda에 POST하려면 어떻게해야합니까?

분류에서Dev

AWS Lambda 계층에 사용자 지정 클래스를 추가하려면 어떻게해야합니까?

분류에서Dev

MFC에서 "rot-13 디코딩"을 수행하려면 어떻게해야합니까?

분류에서Dev

Cloudformation Lambda에서 AWS Lambda에 대한 maximumRetryAttempt를 설정하려면 어떻게해야합니까?

분류에서Dev

AWS SDK를 설치하지 않고 AES256 암호화를 사용하여 Powershell을 통해 S3에 파일을 업로드하려면 어떻게해야합니까?

분류에서Dev

C ++에서 Mosquitto를 사용하여 파일을 게시하려면 어떻게해야합니까?

분류에서Dev

Php AWS S3 API를 사용하여 동적 키 이름을 생성하려면 어떻게해야합니까?

분류에서Dev

fscanf_s를 사용하여 파일에서 STRING을 가져 오려면 어떻게해야합니까?

분류에서Dev

Python의 AWS Lambda 함수를 사용하여 X-Ray의 추가 함수를 계측하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    Javascript를 사용하여 브라우저에서 AWS Lambda를 호출하면 함수에 입력 값을 보내려면 어떻게해야합니까?

  2. 2

    NodeJS를 사용하여 AWS Lambda 함수의 성능을 개선하려면 어떻게해야합니까?

  3. 3

    Python Lambda 함수를 AWS Amplify의 파이프 라인에 통합하려면 어떻게해야합니까?

  4. 4

    AWS S3 버킷에서 암호화 된 .gz 파일을 다운로드하려면 어떻게해야합니까?

  5. 5

    gunzip과 tar를 사용하여 내가 원하는 특정 디렉토리에 tar.gz 파일을 추출하려면 어떻게해야합니까?

  6. 6

    boto3를 사용하여 Github의 파일을 AWS S3 버킷에 업로드하려면 어떻게해야합니까?

  7. 7

    AWS SDK를 설치하지 않고 Powershell을 통해 S3에서 파일을 다운로드하려면 어떻게해야합니까?

  8. 8

    AWS CLI를 사용하여 Elastic Container Registry 이미지에서 lambda 함수를 생성하려면 어떻게해야합니까?

  9. 9

    s3를 저장소로 사용하여 django에서 미디어 파일을 자동으로 표시하려면 어떻게해야합니까?

  10. 10

    VSCode에서 AWS Lambda 함수를 업데이트하려면 어떻게해야합니까?

  11. 11

    Amazon AWS Lambda 함수에서 MQTT 주제를 구독하려면 어떻게해야합니까?

  12. 12

    AWS Lambda ListFunctions API에서 자체 필터 조건과 일치하는 원하는 수의 레코드를 얻으려면 어떻게해야합니까?

  13. 13

    JSON을 매개 변수로 AWS Lambda에 전달하려면 어떻게해야합니까?

  14. 14

    Java를 사용하여 AWS S3에 폴더를 업로드하려면 어떻게해야합니까?

  15. 15

    AWS Gateway를 사용하여 Lambda를 가져와 C #에서 HTTP 오류 상태 코드를 반환하려면 어떻게해야합니까?

  16. 16

    AWS S3 C ++ SDK를 사용하여 서명을 v2로 설정하려면 어떻게해야합니까?

  17. 17

    Courier를 사용하여 AWS SES에서 보낸 이메일에 파일을 첨부하려면 어떻게해야합니까?

  18. 18

    Django가 AWS Lambda 계층을 사용하는 SQL Server에 연결하려면 어떻게해야합니까?

  19. 19

    Node.js 및 Axios를 사용하여 AWS의 사전 서명 된 URL에 파일을 업로드하려면 어떻게해야합니까?

  20. 20

    AWS Lambda에서 여러 AWS Parameter Store 값을 캐시하려면 어떻게해야합니까?

  21. 21

    AWS API 게이트웨이의 10MB 제한을 우회하고 대용량 파일을 AWS Lambda에 POST하려면 어떻게해야합니까?

  22. 22

    AWS Lambda 계층에 사용자 지정 클래스를 추가하려면 어떻게해야합니까?

  23. 23

    MFC에서 "rot-13 디코딩"을 수행하려면 어떻게해야합니까?

  24. 24

    Cloudformation Lambda에서 AWS Lambda에 대한 maximumRetryAttempt를 설정하려면 어떻게해야합니까?

  25. 25

    AWS SDK를 설치하지 않고 AES256 암호화를 사용하여 Powershell을 통해 S3에 파일을 업로드하려면 어떻게해야합니까?

  26. 26

    C ++에서 Mosquitto를 사용하여 파일을 게시하려면 어떻게해야합니까?

  27. 27

    Php AWS S3 API를 사용하여 동적 키 이름을 생성하려면 어떻게해야합니까?

  28. 28

    fscanf_s를 사용하여 파일에서 STRING을 가져 오려면 어떻게해야합니까?

  29. 29

    Python의 AWS Lambda 함수를 사용하여 X-Ray의 추가 함수를 계측하려면 어떻게해야합니까?

뜨겁다태그

보관