How to use set_archive_code method in localstack

Best Python code snippet using localstack_python

lambda_api.py

Source:lambda_api.py Github

copy

Full Screen

...393 return result394 return execute395 raise ClientError(error_response(396 'Unable to extract Java Lambda handler - file is not a valid zip/jar files', 400, error_type='ValidationError'))397def set_archive_code(code, lambda_name, zip_file_content=None):398 # get metadata399 lambda_arn = func_arn(lambda_name)400 lambda_details = arn_to_lambda[lambda_arn]401 is_local_mount = code.get('S3Bucket') == BUCKET_MARKER_LOCAL402 # Stop/remove any containers that this arn uses.403 LAMBDA_EXECUTOR.cleanup(lambda_arn)404 if is_local_mount:405 # Mount or use a local folder lambda executors can reference406 # WARNING: this means we're pointing lambda_cwd to a local path in the user's407 # file system! We must ensure that there is no data loss (i.e., we must *not* add408 # this folder to TMP_FILES or similar).409 return code['S3Key']410 # get file content411 zip_file_content = zip_file_content or get_zip_bytes(code)412 # Save the zip file to a temporary file that the lambda executors can reference413 code_sha_256 = base64.standard_b64encode(hashlib.sha256(zip_file_content).digest())414 lambda_details.get_version('$LATEST')['CodeSize'] = len(zip_file_content)415 lambda_details.get_version('$LATEST')['CodeSha256'] = code_sha_256.decode('utf-8')416 tmp_dir = '%s/zipfile.%s' % (config.TMP_FOLDER, short_uid())417 mkdir(tmp_dir)418 tmp_file = '%s/%s' % (tmp_dir, LAMBDA_ZIP_FILE_NAME)419 save_file(tmp_file, zip_file_content)420 TMP_FILES.append(tmp_dir)421 lambda_details.cwd = tmp_dir422 return tmp_dir423def set_function_code(code, lambda_name, lambda_cwd=None):424 def generic_handler(event, context):425 raise ClientError(('Unable to find executor for Lambda function "%s". Note that ' +426 'Node.js, Golang, and .Net Core Lambdas currently require LAMBDA_EXECUTOR=docker') % lambda_name)427 arn = func_arn(lambda_name)428 lambda_details = arn_to_lambda[arn]429 runtime = lambda_details.runtime430 lambda_environment = lambda_details.envvars431 handler_name = lambda_details.handler or LAMBDA_DEFAULT_HANDLER432 code_passed = code433 code = code or lambda_details.code434 is_local_mount = code.get('S3Bucket') == BUCKET_MARKER_LOCAL435 zip_file_content = None436 if code_passed:437 lambda_cwd = lambda_cwd or set_archive_code(code_passed, lambda_name)438 if not is_local_mount:439 # Save the zip file to a temporary file that the lambda executors can reference440 zip_file_content = get_zip_bytes(code_passed)441 else:442 lambda_cwd = lambda_cwd or lambda_details.cwd443 # get local lambda working directory444 tmp_file = '%s/%s' % (lambda_cwd, LAMBDA_ZIP_FILE_NAME)445 if not zip_file_content:446 zip_file_content = load_file(tmp_file, mode='rb')447 # Set the appropriate lambda handler.448 lambda_handler = generic_handler449 if runtime == LAMBDA_RUNTIME_JAVA8:450 # The Lambda executors for Docker subclass LambdaExecutorContainers,451 # which runs Lambda in Docker by passing all *.jar files in the function...

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