def post()

in sagemaker_run_notebook/server_extension/handlers.py [0:0]


    def post(self):
        data = self.load_params(["image", "input_path", "notebook"])
        if data is None:
            return

        params = data.get("parameters", {})
        if isinstance(params, str):
            params = json.loads(params)

        kwargs = dict(
            image=data["image"],
            input_path=data["input_path"],
            output_prefix=data.get("output_prefix", None),
            notebook=data["notebook"],
            parameters=params,
            role=data.get("role", None),
        )
        instance_type = data.get("instance_type", None)
        if instance_type:
            kwargs["instance_type"] = instance_type

        try:
            job_name = run.invoke(**kwargs)
            self.json_response(dict(job_name=job_name))
        except botocore.exceptions.ClientError as e:
            self.client_error_response(e)
        except botocore.exceptions.BotoCoreError as e:
            self.botocore_error_response(e)
        except run.InvokeException as ie:
            self.error_response(
                400, "InvokeException", f"Lambda function returned error: {str(ie)}"
            )
        except ValueError as ve:
            self.error_response(400, "ValueError", str(ve))