lambdaからS3にファイルを書き込み

lambdaからS3にファイルを書き込みするPythonコードは以下の通り。

 

import boto3

# S3に接続するためのクライアントを作成
s3 = boto3.client('s3')

bucket_name = 'hogetest01'  # 使用するS3バケット名を指定

# 作成するファイル名と内容
file_name = 'test.txt'
file_content = 'hello world!!'

def lambda_handler(event, context):
    # S3バケットにファイルをアップロード
    s3.put_object(
        Bucket=bucket_name,
        Key=file_name,
        Body=file_content
    )
    return {
        'statusCode': 200,
        'body': 'File uploaded successfully!'
    }
 
●悩んだところとかのメモ
・lambdaから実行する場合はS3にアクセスするためのアクセスキーIDや
シークレットアクセスキーは設定不要でよい
 
・関数名はlambda_handlerから変更してはいけない
 
・lambda関数にはS3にアクセスする権限をつけなければならない。
 デフォルトでロールを作成するよりかあらかじめロールを作成しておき、
 既存のロールを使用したほうがよい。
 

 ※既存のロールには以下のポリシーをつけて実行した。
  本来はもう少しポリシーを細かく設定すべきかもしれない。
 
  AWSLambdaBasicExecutionRole
  AmazonS3FullAccess