「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に関する情報を継続的に発信しています。
関連記事を紹介するので、興味のある方は是非、合わせて読んでみて下さい!
ご精読ありがとうございました!
コメント