tmp ディレクトリ説明
各実行環境は、
/tmp
ディレクトリ内の512 MB
~10240 MB
のディスク領域を提供します。ディレクトリのコンテンツは、実行環境が停止された際に維持され、複数の呼び出しに使用できる一時的なキャッシュを提供します。キャッシュに保存したデータが存在するかどうかを確認するための追加コードを追加できます。デプロイのサイズ制限の詳細については、「Lambda クォータ」を参照してください。
Lambda 実行環境のライフサイクルを理解する - AWS Lambda
ファイルを tmp ディレクトリに保存方法
AWS Lambda 関数内で S3 からファイルをダウンロードして/tmp ディレクトリに保存するには、以下の手順に従います。
boto3
モジュールを使用して S3 クライアントを作成します。Lambda 関数の外部でクライアントを作成し、再利用することをお勧めします。
import boto3
s3 = boto3.resource('s3')
- ダウンロードするファイルを指定し、download_file メソッドを使用してファイルを
/tmp
ディレクトリにダウンロードします。
import boto3
from datetime import datetime
s3 = boto3.resource('s3')
BUCKET_NAME= 'bucket_name'
def lambda_handler(event, context):
file_key = 'your-file-key'
local_file_path = '/tmp/my-file.txt' # ダウンロード後のローカルファイルパス
bucket = s3.Bucket(BUCKET_NAME)
bucket.download_file(file_key, local_file_path)
上記の例では、your-bucket-name
は S3 バケットの名前で、your-file-key
はダウンロードするファイルのキーです。local_file_path
はローカルで保存するファイルのパスを指定します。この例では/tmp/my-file.txt
に保存しています。
S3 ファイルの内容を読取方法
import boto3
from datetime import datetime
s3 = boto3.resource('s3')
BUCKET_NAME= 'bucket_name'
def lambda_handler(event, context):
file_key = 'your-file-key'
local_file_path = '/tmp/my-file.txt' # ダウンロード後のローカルファイルパス
bucket = s3.Bucket(BUCKET_NAME)
bucket.download_file(file_key, local_file_path)
with open(local_file_path, 'r') as file:
file_contents = file.read()
# ファイルの内容に対する処理
print(file_contents)
# 他の処理...
上記の例では、open
関数を使用してダウンロードしたファイルを読み込み、内容を表示しています。必要に応じて、他の処理を追加してください。
纏め
Lambda 関数は/tmp
ディレクトリ内のファイルにのみアクセスできます。そのため、一時的な保存先として/tmp
ディレクトリを使用しています。
Lambda 関数の実行が終了すると、/tmp
ディレクトリ内のファイルは削除されるため、必要な場合は適切に処理してください。