How to use _prepare_invocation_for_python_lambda method in localstack

Best Python code snippet using localstack_python

thundra.py

Source:thundra.py Github

copy

Full Screen

...277 LAMBDA_RUNTIME_PYTHON36,278 LAMBDA_RUNTIME_PYTHON37,279 LAMBDA_RUNTIME_PYTHON38,280 ]281def _prepare_invocation_for_python_lambda(282 context: InvocationContext,283) -> AdditionalInvocationOptions:284 # Download and initialize Python agent285 _ensure_python_agent_initialized()286 # If agent could not be initialized, skip here287 if not THUNDRA_PYTHON_AGENT_INITIALIZED:288 return None289 result = AdditionalInvocationOptions()290 # Make sure API key is contained in environment291 result.env_updates[THUNDRA_APIKEY_ENV_VAR_NAME] = _get_apikey(context.environment)292 # Switch handler to Thundra and pass original handler to Thundra through environment variable293 result.env_updates[THUNDRA_AGENT_LAMBDA_HANDLER_ENV_VAR_NAME] = context.handler294 result.updated_handler = "thundra.handler.wrapper"295 # If log disable is not configured explicitly, set it to false to enable log capturing by default296 log_disabled = context.environment.get(THUNDRA_AGENT_LOG_DISABLE_ENV_VAR_NAME)297 if not log_disabled:298 result.env_updates[THUNDRA_AGENT_LOG_DISABLE_ENV_VAR_NAME] = "false"299 # Map Thundra agent path into container so it will be accessible by Lambda function Python environment300 agent_path_mapping = "-v %s/:/opt/python/" % THUNDRA_PYTHON_AGENT_LOCAL_PATH_ON_HOST301 if context.docker_flags:302 context.docker_flags = f"{context.docker_flags} {agent_path_mapping}"303 else:304 context.docker_flags = agent_path_mapping305 return result306################307# THUNDRA PLUGIN308################309class LambdaExecutorPluginThundra(LambdaExecutorPlugin):310 def should_apply(self, context: InvocationContext) -> bool:311 # Local executor is not supported yet312 if "local" in config.LAMBDA_EXECUTOR:313 return False314 # Plugin can only applied if LAMBDA_REMOTE_DOCKER=0315 if "docker" in config.LAMBDA_EXECUTOR and config.LAMBDA_REMOTE_DOCKER:316 return False317 # Plugin can only applied if API key is configured318 thundra_apikey = _get_apikey(context.environment)319 if not thundra_apikey:320 return False321 # Plugin can be applied for Java Lambdas with supported versions322 if _is_java_lambda_with_support_version(context.lambda_function.runtime):323 return True324 # Plugin can be applied for Node Lambdas with supported versions325 if _is_node_lambda_with_support_version(context.lambda_function.runtime):326 return True327 # Plugin can be applied for Python Lambdas with supported versions328 if _is_python_lambda_with_support_version(context.lambda_function.runtime):329 return True330 # Not applicable for Thundra plugin331 return False332 def prepare_invocation(333 self, context: InvocationContext334 ) -> Optional[Union[AdditionalInvocationOptions, InvocationResult]]:335 if is_java_lambda(context.lambda_function):336 return _prepare_invocation_for_java_lambda(context)337 elif is_nodejs_runtime(context.lambda_function):338 return _prepare_invocation_for_node_lambda(context)339 elif is_python_runtime(context.lambda_function):340 return _prepare_invocation_for_python_lambda(context)...

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