AWS Lambda関数を使用してS3から.gzファイルをデコードするにはどうすればよいですか?

慎重な4

AWSConfigがAWSシステムのスナップショットを12時間ごとに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

std :: fstreamでgz圧縮されたファイルの事前署名されたURLを使用して、AWS S3 HTTPアップロードのコンテンツの長さを設定するにはどうすればよいですか?

分類Dev

aws-sdkを使用してファイルをS3に同期的にアップロードするにはどうすればよいですか?

分類Dev

AWS-lambdaを使用してjsonデータからcsvファイルを作成するにはどうすればよいですか?

分類Dev

AWS Java-〜/ .aws / configファイルをロードするにはどうすればよいですか?

分類Dev

Aws s3からオーディオファイル(mp3)をストリーミングするにはどうすればよいですか?

分類Dev

aws s3 lsコマンドからのファイルのみを表示するにはどうすればよいですか?

分類Dev

AWS Lambda:Javaを使用してLambda関数からS3バケットにアクセスする方法

分類Dev

aws cliを使用してS3バケット内のファイルに権限を設定するにはどうすればよいですか?

分類Dev

AWS S3に複数のファイルをアップロードし、Angularを使用してURLをFirebaseに保存するにはどうすればよいですか?

分類Dev

コードファイルがs3のzipファイル内にある場合、AWSハンドラーでPythonファイルを指定するにはどうすればよいですか?

分類Dev

AWS SDKをインストールせずに、AES256暗号化を使用してPowershell経由でS3にファイルをアップロードするにはどうすればよいですか?

分類Dev

AWS cliでawsリージョンを使用してS3エンドポイントを取得するにはどうすればよいですか?

分類Dev

デフォルトではない aws プロファイルを介して aws sdk と対話するにはどうすればよいですか?

分類Dev

AWS S3からクライアントのデバイスにファイルをダウンロードするにはどうすればよいですか?

分類Dev

AWS Lambdaハンドラー内で実行可能ファイルを使用するにはどうすればよいですか?

分類Dev

AWS Lambdaで使用するためにS3からpickleファイルをロードする方法は?

分類Dev

JavascriptからAWS静的ファイルのURLを取得するにはどうすればよいですか?

分類Dev

JavaScript用のaws-sdkを使用して、iOSアプリ(Konyでビルド)からAWS S3にイメージをアップロードするにはどうすればよいですか?

分類Dev

AWS Lambdaからデータを取得し、AWS S3でホストされている静的ウェブサイトに表示するにはどうすればよいですか?

分類Dev

Pythonを使用して、ファイル/ディレクトリをLinuxからAWS EC2インスタンスのWindowsにリモートでコピーするにはどうすればよいですか?

分類Dev

AWSで事前に署名されたURLにファイルをアップロードするにはどうすればよいですか?

分類Dev

AWS SDK for S3を使用してJavaScriptのpromiseを修正するにはどうすればよいですか?

分類Dev

.warファイルをAWSのEC2インスタンスにコピーするにはどうすればよいですか?

分類Dev

AWS SDKをインストールせずにPowershell経由でS3からファイルをダウンロードするにはどうすればよいですか?

分類Dev

Pythonを使用してmyBucketにCSVファイルをアップロードし、S3AWSでファイルを読み取るにはどうすればよいですか

分類Dev

HTTPリクエストからメールにファイルを添付するにはどうすればよいですか?(Python / AWS Lambda)

分類Dev

データファイルを数百のAWSインスタンスに分割するにはどうすればよいですか?

分類Dev

AWSアプリケーションロードバランサーに設定ファイルを追加するにはどうすればよいですか?

分類Dev

AWS Application Load Balancerでファイルのアップロードサイズを制限するにはどうすればよいですか?

Related 関連記事

  1. 1

    std :: fstreamでgz圧縮されたファイルの事前署名されたURLを使用して、AWS S3 HTTPアップロードのコンテンツの長さを設定するにはどうすればよいですか?

  2. 2

    aws-sdkを使用してファイルをS3に同期的にアップロードするにはどうすればよいですか?

  3. 3

    AWS-lambdaを使用してjsonデータからcsvファイルを作成するにはどうすればよいですか?

  4. 4

    AWS Java-〜/ .aws / configファイルをロードするにはどうすればよいですか?

  5. 5

    Aws s3からオーディオファイル(mp3)をストリーミングするにはどうすればよいですか?

  6. 6

    aws s3 lsコマンドからのファイルのみを表示するにはどうすればよいですか?

  7. 7

    AWS Lambda:Javaを使用してLambda関数からS3バケットにアクセスする方法

  8. 8

    aws cliを使用してS3バケット内のファイルに権限を設定するにはどうすればよいですか?

  9. 9

    AWS S3に複数のファイルをアップロードし、Angularを使用してURLをFirebaseに保存するにはどうすればよいですか?

  10. 10

    コードファイルがs3のzipファイル内にある場合、AWSハンドラーでPythonファイルを指定するにはどうすればよいですか?

  11. 11

    AWS SDKをインストールせずに、AES256暗号化を使用してPowershell経由でS3にファイルをアップロードするにはどうすればよいですか?

  12. 12

    AWS cliでawsリージョンを使用してS3エンドポイントを取得するにはどうすればよいですか?

  13. 13

    デフォルトではない aws プロファイルを介して aws sdk と対話するにはどうすればよいですか?

  14. 14

    AWS S3からクライアントのデバイスにファイルをダウンロードするにはどうすればよいですか?

  15. 15

    AWS Lambdaハンドラー内で実行可能ファイルを使用するにはどうすればよいですか?

  16. 16

    AWS Lambdaで使用するためにS3からpickleファイルをロードする方法は?

  17. 17

    JavascriptからAWS静的ファイルのURLを取得するにはどうすればよいですか?

  18. 18

    JavaScript用のaws-sdkを使用して、iOSアプリ(Konyでビルド)からAWS S3にイメージをアップロードするにはどうすればよいですか?

  19. 19

    AWS Lambdaからデータを取得し、AWS S3でホストされている静的ウェブサイトに表示するにはどうすればよいですか?

  20. 20

    Pythonを使用して、ファイル/ディレクトリをLinuxからAWS EC2インスタンスのWindowsにリモートでコピーするにはどうすればよいですか?

  21. 21

    AWSで事前に署名されたURLにファイルをアップロードするにはどうすればよいですか?

  22. 22

    AWS SDK for S3を使用してJavaScriptのpromiseを修正するにはどうすればよいですか?

  23. 23

    .warファイルをAWSのEC2インスタンスにコピーするにはどうすればよいですか?

  24. 24

    AWS SDKをインストールせずにPowershell経由でS3からファイルをダウンロードするにはどうすればよいですか?

  25. 25

    Pythonを使用してmyBucketにCSVファイルをアップロードし、S3AWSでファイルを読み取るにはどうすればよいですか

  26. 26

    HTTPリクエストからメールにファイルを添付するにはどうすればよいですか?(Python / AWS Lambda)

  27. 27

    データファイルを数百のAWSインスタンスに分割するにはどうすればよいですか?

  28. 28

    AWSアプリケーションロードバランサーに設定ファイルを追加するにはどうすればよいですか?

  29. 29

    AWS Application Load Balancerでファイルのアップロードサイズを制限するにはどうすればよいですか?

ホットタグ

アーカイブ