PR

LambdaでS3ファイルのデータを読み込む3ステップ

LambdaとS3アイキャッチ Lambda
記事内に広告が含まれています。

「Lambdaを使ってS3ファイルのデータを取り出したい…」
「S3の操作を自動化したい…」

S3から特定のデータを取り出して、データの加工ができたら業務の幅が広がりますよね!
この記事では、「LambdaでS3ファイルのデータを読み込む方法」を3ステップに分けて紹介していきます。とても簡単なので、しっかり理解してS3の操作を自動化していきましょう!

以下の3ステップでLambdaを使ってS3ファイルのデータを取り込むことができます。

1. boto3をインポートする
2. S3のClient API、バケットをセットする
3. get_objectを使ってS3ファイルを読み込む

普段仕事でLambdaをよく使う私が、手順を追って説明します。
この記事を読んで悩みを解決し、業務に有効活用していきましょう!

前提条件

LambdaでS3からデータを取り込む前に、前提条件として2つのポイントがあります。

1. LambdaにS3を操作するIAMロールが付与されている
2. S3に必要なデータがアップロードされている

2つのポイントを満たしていないと、Lambdaを使う際に、S3にアクセスできなかったり、S3データ取得エラーが発生します。

プログラミング

LambdaでS3ファイルのデータを読み込む方法

前述した通り、以下の3ステップでLambdaでS3のデータを読み込むことができます。

1. boto3をインポートする
2. S3のClient API、バケットをセットする
3. get_objectを使ってS3ファイルを読み込む

まずは、一連の流れをコードにしたので、見ていきましょう!

#boto3のインポート
import boto3

#Client APIのセット
s3 = boto3.client('s3')

#バケット名のセット
BUCKET_NAME = 's3-test-bucket'
#取得ファイルパスのセット
key = 'test_folder/test.txt'

#S3からファイルを取得
res = s3.get_object(
    Bucket=BUCKET_NAME, 
    Key=key
)

#取得したファイルの中身を読み込む
file_body = res['Body'].read()
return file_body

このコードをみて分かる方は、この先は読み飛ばして大丈夫です!
まだ理解するのが難しい方は、一緒に見ていきましょう。

boto3をインポートする

まずは、boto3をインポートする所から始まります。

#boto3のインポート
import boto3

boto3をインポートすることで、Pythonを使ってAWSサービスの操作をできるようになります。

S3のClient API、バケットをセットする

次に、S3のClient API、バケットをセットして行きます。

#Client APIのセット
s3 = boto3.client('s3')

#バケット名のセット
BUCKET_NAME = 's3-test-bucket'
#取得ファイルパスのセット
key = 'test_folder/test.txt'

AWSサービスを操作するためには、Client APIのセットも必要です。
また、取得したいデータのS3バケットとファイルパスをセットします。

get_objectを使ってS3ファイルを読み込む

最後にget_objectを使ってS3ファイルを読み込みます。

#S3からファイルを取得
res = s3.get_object(
    Bucket=BUCKET_NAME, 
    Key=key
)

#取得したファイルの中身を読み込む
file_body = res['Body'].read()
return file_body

先ほどセットしたS3バケットとファイルパスを用いて、get_objectを使うことで、指定したS3バケット内のデータを取得できるようになります。
また、readメソッドを使うことで、取得したデータの中身を見ることができます。

さいごに

今回は、「LambdaでS3ファイルのデータを読み込む方法」について紹介して行きました!
この手順をしっかり覚えて業務の効率化アップに繋げていきましょう!

また私のサイトでは他にも、AWSに関する情報を継続的に発信しています。
関連記事を紹介するので、興味のある方は是非、合わせて読んでみて下さい!

ご精読ありがとうございました!

関連記事

コメント

タイトルとURLをコピーしました