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に文字列が表示されます。

AWS

Posted by arkgame