Write to /tmp directory in aws lambda with python Write to /tmp directory in aws lambda with python python python

Write to /tmp directory in aws lambda with python


extractAll() will extract files in the current directory, which is /var/task/test-deploy in your case.

You need to use os.chdir() to change the current directory:

import os, zipfileos.chdir('/tmp')with zipfile.ZipFile(source, 'r') as archive:    archive.extractall()

Even better, you can create a temporary directory and extract the files there, to avoid polluting /tmp:

import os, tempfile, zipfilewith tempfile.TemporaryDirectory() as tmpdir:    os.chdir(tmpdir)    with zipfile.ZipFile(source, 'r') as archive:        archive.extractall()

If you want to restore the current working directory after extracting the file, consider using this decorator:

import os, tempfile, zipfile, contextlib@contextlib.context_managerdef temporary_work_dir():    old_work_dir = os.getcwd()    with tempfile.TemporaryDirectory() as tmp_dir:        os.chdir(tmp_dir)        try:            yield        finally:            os.chdir(old_work_dir)with temporary_work_dir():    with zipfile.ZipFile(source, 'r') as archive:        archive.extractall()