AWS  LambdaからS3にファイルを書き込むサンプル

環境
AWS S3
AWS Lambda
Python 3.11

操作方法
1.Lambdaで関数を作成する
1).検索入力欄で「Lambda」と入力し、表示されたサービス「Lambda」をクリックします。

2).左の関数のリンクをクリックし、画面右の「関数の作成」ボタンをクリックします。

3).関数の作成では「一から作成」を選択します。

4).関数名は、write-test1としランタイムはPython 3.11、アーキテクチャはx86_64を選択しました。「関数の作成」をクリックすると関数が作成されます。

2.Lambdaの関数にs3フルアクセスのポリシーをアタッチする

1).関数が表示されている画面に「設定」タブをクリックします。
 「アクセス権限」>実行ロールのロール名(例write-test1-role-wrv7c15h)のリンクをクリックします。

2).「許可」>「許可を追加」>「ポリシーをアタッチ」をクリックします。

3).S3を入力し検索し、AmazonS3FullAccessにチェックを入れ、右下に「許可を追加」をクリックするとs3フルアクセスのポリシーが追加されます。

AmazonS3FullAccessのポリシー

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:*",
                "s3-object-lambda:*"
            ],
            "Resource": "*"
        }
    ]
}

2.ファイル書き込みのコードを記入して実行する
関数が表示されている画面で「コード」をクリックしてコードを表示します。
1).lambda_function.pyに以下のコードを記載します。

import boto3

s3 = boto3.resource('s3')

def lambda_handler(event, context):
    
    bucket = 'ark-s3-data-2023' # バケット名
    key = 'arktgame.csv'
    contents = 'hello world study s3 aws'
    
    obj = s3.Object(bucket,key)
    obj.put(Body=contents)
    return

2).「Deploy」をクリックしてから「Test」をクリックすると実行されます。
3).S3を確認します。
バケットの中にファイル(arkgame.csv)が作成されています。

AWS

Posted by arkgame