diff --git a/bentoml/deployment/serverless/aws_lambda.py b/bentoml/deployment/serverless/aws_lambda.py index a5b50377b2e..ead20f1e4e2 100644 --- a/bentoml/deployment/serverless/aws_lambda.py +++ b/bentoml/deployment/serverless/aws_lambda.py @@ -54,9 +54,9 @@ # Set BENTOML_HOME to /tmp directory due to AWS lambda disk access restrictions os.environ['BENTOML_HOME'] = '/tmp/bentoml/' -from {class_name} import {class_name} +from {class_name} import load -bento_service = {class_name}.load() +bento_service = load() """ @@ -133,7 +133,7 @@ def apply(self, deployment_pb, repo, prev_deployment=None): template = 'aws-python3' minimum_python_version = version.parse('3.0.0') bento_python_version = version.parse(bento_config['env']['python_version']) - if bento_python_version > minimum_python_version: + if bento_python_version < minimum_python_version: template = 'aws-python' with TemporaryServerlessContent( @@ -153,8 +153,8 @@ def apply(self, deployment_pb, repo, prev_deployment=None): stage=deployment_pb.namespace, ) logger.info( - 'Installing additional packages: serverless-python-requirements, \ - serverless-apigw-binary' + 'Installing additional packages: serverless-python-requirements, ' + 'serverless-apigw-binary' ) install_serverless_plugin("serverless-python-requirements", output_path) install_serverless_plugin("serverless-apigw-binary", output_path) @@ -170,8 +170,12 @@ def apply(self, deployment_pb, repo, prev_deployment=None): def delete(self, deployment_pb, repo=None): state = self.describe(deployment_pb, repo).state if state.state != DeploymentState.RUNNING: - message = 'Failed to delete, no active deployment {name}. The current state is {state}'.format( - name=deployment_pb.name, state=DeploymentState.State.Name(state.state) + message = ( + 'Failed to delete, no active deployment {name}. ' + 'The current state is {state}'.format( + name=deployment_pb.name, + state=DeploymentState.State.Name(state.state), + ) ) return DeleteDeploymentResponse(status=Status.ABORTED(message)) diff --git a/bentoml/deployment/serverless/gcp_function.py b/bentoml/deployment/serverless/gcp_function.py index 677e7811ae5..58f6b309dc9 100644 --- a/bentoml/deployment/serverless/gcp_function.py +++ b/bentoml/deployment/serverless/gcp_function.py @@ -43,9 +43,9 @@ logger = logging.getLogger(__name__) GOOGLE_MAIN_PY_TEMPLATE_HEADER = """\ -from {class_name} import {class_name} +from {class_name} import load -bento_service = {class_name}.load() +bento_service = load() """ @@ -161,8 +161,12 @@ def describe(self, deployment_pb, repo=None): def delete(self, deployment_pb, repo=None): state = self.describe(deployment_pb, repo).state if state.state != DeploymentState.RUNNING: - message = 'Failed to delete, no active deployment {name}. The current state is {state}'.format( - name=deployment_pb.name, state=DeploymentState.State.Name(state.state) + message = ( + 'Failed to delete, no active deployment {name}. ' + 'The current state is {state}'.format( + name=deployment_pb.name, + state=DeploymentState.State.Name(state.state), + ) ) return DeleteDeploymentResponse(status=Status.ABORTED(message)) diff --git a/bentoml/deployment/serverless/serverless_utils.py b/bentoml/deployment/serverless/serverless_utils.py index 3ff6bf762dd..86c719f6df9 100644 --- a/bentoml/deployment/serverless/serverless_utils.py +++ b/bentoml/deployment/serverless/serverless_utils.py @@ -86,10 +86,12 @@ def parse_serverless_response(serverless_response): def parse_serverless_info_response_to_json_string(responses): result = {} - for line in responses: + for i in range(len(responses)): + line = responses[i] if ': ' in line: items = line.split(': ') result[items[0]] = items[1] + result['raw_response'] = responses return json.dumps(result) @@ -129,7 +131,8 @@ def generate(self): ) shutil.copy(os.path.join(self.archive_path, "requirements.txt"), tempdir) model_serivce_archive_path = os.path.join(tempdir, self.bento_name) - shutil.copytree(self.archive_path, model_serivce_archive_path) + model_path = os.path.join(self.archive_path, self.bento_name) + shutil.copytree(model_path, model_serivce_archive_path) self.path = tempdir def cleanup(self):