def launch_udocker_container(event, context, command):
lambda_output = "/tmp/%s/lambda-stdout.txt" % request_id
remaining_seconds = get_invocation_remaining_seconds(context)
logger.info("Executing udocker container. Timeout set to %s seconds" % str(remaining_seconds))
with subprocess.Popen(command, stderr=subprocess.STDOUT, stdout=open(lambda_output, "w"), preexec_fn=os.setsid) as process:
try:
process.wait(timeout=remaining_seconds)
except subprocess.TimeoutExpired:
kill_udocker_process(process)
# Processing recursive function
if (is_recursive()):
launch_recursive_lambda(event, context.function_name)
else:
logger.warning("Container timeout")
return lambda_output
评论列表
文章目录