BBH
-Biz Branding Hub-
投稿日 : 
2019/11/20
更新日 : 
2019/11/20

【AWS】Lambdaではtmp領域が使用可能

AWS Lambdaでは、例えばzipファイルを展開する用途などでtmp領域を使用することが可能です。
以下使用例のサンプルです。
S3からファイルをtmpフォルダにダウンロードする処理になります。

S3DownloadSample.py

# ZIPファイル中に入っているファイル名の一覧を格納する変数
fileListInZip = []

# S3からダウンロードしたいファイル名
s3BucketName = 'TestBucket'
key = '/TestFolder/TestData.zip'

# ローカルにダウンロードしたいファイル名
fileName = 'LocalTestData.zip'

# ファイルをダウンロードするディレクトリ
downloadTo = '/tmp/{0}'.format(fileName)  # ここでtmpディレクトリを使用する

# ファイルが存在しない場合のエラーハンドリング
s3BucketObj = s3.Bucket(s3BucketName)
try:
    s3BucketObj.download_file(key, downloadTo)
except Exception as e:
    print('ダウンロード対象のファイルが存在しません。FileName={0}'.format(key))
    print(e)
    return

# zipファイルの一覧を取得
zip = zipfile.ZipFile(downloadTo)
fileListInZip = zip.namelist()  # 展開したzip内のファイル一覧

# ファイルを解凍
zip.extractall('/tmp/')
zip.close()
os.remove(downloadTo)

# ファイル読み込み
lineList = []
for f in fileListInZip:
    fileData = open('/tmp/{0}'.format(f), "r")  # tmpに解凍したファイルを読み込み
    lines = fileData.readlines()
    fileData.close()
    lineList.append(lines)

Profile

管理人プロフィール

都内でITエンジニアをやってます。
変遷:中規模SES→独立系SIer→Webサービス内製開発
使用技術はその時々でバラバラですが、C#、AWSが長いです。
どちらかと言うとバックエンドより開発が多かったです。
顧客との折衝や要件定義、マネジメント(10名弱程度)の経験あり。
最近はJava+SpringBootがメイン。

Recommend