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

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を見ると指定したバケットの中にファイルが作成されています。
ファイルをダウンロードして中を見ると指定した文字列があります。

バケット

 

テキストファイル

 

関連の記事

AWS IAMユーザを作成するサンプル

△上に戻る