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)が作成されています。