AWS LambdaからS3にファイルを読み込むサンプル
環境
AWS S3
AWS Lambda
Python 3.11
操作方法
1.Lambdaで関数を作成する
1).検索入力欄で「Lambda」と入力し、表示されたサービス「Lambda」をクリックします。
2).左の関数のリンクをクリックし、画面右の「関数の作成」ボタンをクリックします。
3).関数の作成では「一から作成」を選択します。
4).関数名は、read-test1としランタイムはPython 3.11、アーキテクチャはx86_64を選択しました。「関数の作成」をクリックすると関数が作成されます。
2.Lambdaの関数にs3フルアクセスのポリシーをアタッチする
1).関数が表示されている画面に「設定」タブをクリックします。 「アクセス権限」>実行ロールのロール名(例read-test1-role-wrv7c15h)のリンクをクリックします。 2).「許可」>「許可を追加」>「ポリシーをアタッチ」をクリックします。 3).S3を入力し検索し、AmazonS3FullAccessにチェックを入れ、右下に「許可を追加」をクリックするとs3フルアクセスのポリシーが追加されます。
AmazonS3FullAccessのポリシー
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*", "s3-object-lambda:*" ], "Resource": "*" } ] }
2.S3にあるファイルを読み込む
関数が表示されている画面で「コード」をクリックしてコードを表示します。
1).lambda_function.pyに以下のコードを記載します。
import boto3 s3 = boto3.client('s3') def lambda_handler(event, context): bucket = 'test-s3-data-2023' # バケット名 key = 'arktgame.txt' #ファイル名 obj = s3.get_object(Bucket=bucket, Key=key) text = obj['Body'].read() return text
2).「Deploy」をクリックしてから「Test」をクリックすると実行します。
3).Execution ResultタブのResponseに文字列が表示されます。