2017-05-03 13 views
1

ラムダ関数は、それ自身の/ tmpディレクトリにディスク領域を持っています。私の質問は、どこで/ tmpディレクトリを視覚的に見ることができるのですか?Python/AWS Lambda関数:/ tmpストレージの表示方法?

私はファイルを/ tmpディレクトリにダウンロードしようとしていますが、そのファイルを読み込んで新しいファイルを書き込もうとしています。実際には、私が作業しているファイルが、実行中に/ tmpディレクトリに適切に格納されているのを見たいと思うでしょう。

はありがとうとラムダの実行が終了した後に投票し、答え

答えて

4

あなたは「ビュー」/ tmpディレクトリことはできませんを受け入れます。

ラムダは分散アーキテクチャで動作し、実行後にすべてのリソース(/tmpに格納されているすべてのファイルを含む)が配置されます。

ファイルを確認したい場合は、EC2またはS3の使用を検討してください。

あなただけS3のダウンロードが実行中に、成功したかどうかを確認したい場合は、あなたが試すことができます:

import os 
os.path.isfile('/tmp/' + filename) 
+0

EC2はファイルをチェックする以外にも、アクセスしたい '/ tmp'ディレクトリだけを必要とするならば、S3で十分です。 –

+0

@joarleymoraes私は実際にS3バケットからファイルをダウンロードしており、ダウンロードしたファイルを/ tmpに一時的に保存したいと考えています。ちょうど私が実際に/ tmpディレクトリを使用していることを確認したいだけです。サイトから '各Lambda関数はそれ自身の/ tmpディレクトリに500MBの非永続的なディスクスペースを受け取ります.'ラムダの実行中に/ tmpディレクトリを見る方法はありますか? –

+0

よろしくお願いします。どのようにファイルをダウンロードしていますか?ファイルをダウンロードする関数はtmpファイル名を返します。 – joarleymoraes

1

は、ストレージにファイルをS3バケットを使用し、ラムダfubctionからそれを読むようにしてください、あなたはラムダの役割がS3バケットにアクセスできるようにする必要があります。

0

/tmpディレクトリを作成し、最後にクリーンアップする前にtemp処理ファイルをこの/tmpディレクトリにダウンロード/アップロードすることをお勧めします。あなたは(私はここでは詳細な処理を示すないよ)次の操作を行うことができます

import boto 
s3 = boto3.client("s3") 
client.put_object(Bucket=Your_bucket_name,Key=tmp/Your_file_name) 

あなたの/tmpからファイルをダウンロードする方法は経由です:あなたがファイルをダウンロードした後

s3.download_file(Your_bucket_name, Your_key_name, Your_file_name) 

とプロセスを終了すると、/tmpに再度アップロードします。

s3.upload_file(Your_file_name, Your_bucket_name, Your_key_name) 
for key in bucket.list(): 
     print "{name}\t{size}\t{modified}".format(
       name = key.name, 
       size = key.size, 
       modified = key.last_modified, 
       ) 

をあなたのダウンロードを維持し、this boto async packageで非同期にアップロードしてください:あなたは次にあなたがこのsampleから簡単にバケツを一覧表示することができるはずYour_key_name

であなたの/tmp/を追加することができます。

+0

いいえ私は実際にS3バケットからファイルをダウンロードしていて、ダウンロードしたファイルを/ tmpに一時的に保存したいと思います。ちょうど私が実際に/ tmpディレクトリを使用していることを確認したいだけです。サイト '各ラムダ関数はそれ自身の/ tmpディレクトリに500MBの非永続的なディスクスペースを受け取ります。 –