AWSのLambdaからS3にファイルを書き込むサンプルです。
目次
サンプル | Lambdaからs3にファイルを書き込む |
Lambdaで関数を作成する | |
Lambdaの関数にs3フルアクセスのポリシーをアタッチする | |
ファイル書き込みのコードを記入して実行する |
LambdaからS3にファイルを書き込む
-
- Lambdaの関数を実行してS3にテキストファイルを作成します。
Lambdaで関数を作成する
1.検索入力欄で「Lambda」と入力し、表示された「Lambda」をクリックします。
2.「関数の作成」ボタンをクリックします。
3.関数の作成では「一から作成」を選択します。
4.関数名は、write-text1としランタイムはPython 3.9、アーキテクチャはx86_64を選択しました。
関数の作成をクリックすると関数が作成されます。
Lambdaの関数にs3フルアクセスのポリシーをアタッチする
1.関数の一覧から「設定」>「アクセス権限」>実行ロールのロール名のリンクをクリックします。
2.「許可」>「許可を追加」>「ポリシーをアタッチ」をクリックします。
3.S3で検索し、AmazonS3FullAccessにチェックを入れ、「ポリシーをアタッチ」をクリックするとs3フルアクセスのポリシーが追加されます。
(参考)AmazonS3FullAccess
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:*",
"s3-object-lambda:*"
],
"Resource": "*"
}
]
}
ファイル書き込みのコードを記入して実行する
1.lambda_function.pyにコードを記載します。
import boto3
s3 = boto3.resource('s3')
def lambda_handler(event, context):
bucket = 'test-s3-data-2022' # バケット名
key = 'testData1.txt'
contents = 'hello world 1122'
obj = s3.Object(bucket,key)
obj.put(Body=contents)
return
1行目のboto3はAWSのライブラリです。
3行目は、バケットです。作成済みの状態です。
4行目は、これから作成されます。
この処理を繰り返すとファイルは同名ですがエラーにならず上書きされます。
2.「Deploy」をクリックしてから「Test」をクリックすると実行されます。
3.S3を見ると指定したバケットの中にファイルが作成されています。
ファイルをダウンロードして中を見ると指定した文字列があります。
バケット
テキストファイル
関連の記事