How to use _do_exec_lambda_code method in localstack

Best Python code snippet using localstack_python

lambda_api.py

Source:lambda_api.py Github

copy

Full Screen

...491 return importlib.machinery.SourceFileLoader(name, file).load_module()492def exec_lambda_code(script, handler_function="handler", lambda_cwd=None, lambda_env=None):493 # TODO: The code in this function is generally not thread-safe and potentially insecure494 # (e.g., mutating environment variables, and globally loaded modules). Should be redesigned.495 def _do_exec_lambda_code():496 if lambda_cwd or lambda_env:497 if lambda_cwd:498 previous_cwd = os.getcwd()499 os.chdir(lambda_cwd)500 sys.path = [lambda_cwd] + sys.path501 if lambda_env:502 previous_env = dict(os.environ)503 os.environ.update(lambda_env)504 # generate lambda file name505 lambda_id = "l_%s" % short_uid()506 lambda_file = LAMBDA_SCRIPT_PATTERN.replace("*", lambda_id)507 save_file(lambda_file, script)508 # delete temporary .py and .pyc files on exit509 TMP_FILES.append(lambda_file)510 TMP_FILES.append("%sc" % lambda_file)511 try:512 pre_sys_modules_keys = set(sys.modules.keys())513 # set default env variables required for most Lambda handlers514 env_vars_before = lambda_executors.LambdaExecutorLocal.set_default_env_variables()515 try:516 handler_module = load_source(lambda_id, lambda_file)517 module_vars = handler_module.__dict__518 finally:519 lambda_executors.LambdaExecutorLocal.reset_default_env_variables(env_vars_before)520 # the above import can bring files for the function521 # (eg settings.py) into the global namespace. subsequent522 # calls can pick up file from another function, causing523 # general issues.524 post_sys_modules_keys = set(sys.modules.keys())525 for key in post_sys_modules_keys:526 if key not in pre_sys_modules_keys:527 sys.modules.pop(key)528 except Exception as e:529 LOG.error("Unable to exec: %s %s", script, traceback.format_exc())530 raise e531 finally:532 if lambda_cwd or lambda_env:533 if lambda_cwd:534 os.chdir(previous_cwd)535 sys.path.pop(0)536 if lambda_env:537 os.environ = previous_env538 return module_vars[handler_function]539 lock = EXEC_MUTEX if lambda_cwd or lambda_env else empty_context_manager()540 with lock:541 return _do_exec_lambda_code()542def get_handler_function_from_name(handler_name, runtime=None):543 runtime = runtime or LAMBDA_DEFAULT_RUNTIME544 if runtime.startswith(tuple(DOTNET_LAMBDA_RUNTIMES)):545 return handler_name.split(":")[-1]546 return handler_name.split(".")[-1]547def get_java_handler(zip_file_content, main_file, lambda_function=None):548 """Creates a Java handler from an uploaded ZIP or JAR.549 :type zip_file_content: bytes550 :param zip_file_content: ZIP file bytes.551 :type handler: str552 :param handler: The lambda handler path.553 :type main_file: str554 :param main_file: Filepath to the uploaded ZIP or JAR file.555 :returns: function or flask.Response...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run localstack automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful