BentoML Example

Titanic Survival Prediction with LightBGM

This is a BentoML Demo Project demonstrating how to package and serve LightBGM model for production using BentoML.

BentoML is an open source platform for machine learning model serving and deployment.

Let's get started! Impression

In [1]:
%reload_ext autoreload
%autoreload 2
%matplotlib inline

import warnings
warnings.filterwarnings("ignore")
In [2]:
!pip install bentoml
!pip install lightgbm numpy pandas
In [2]:
import pandas as pd
import numpy as np
import lightgbm as lgb
from sklearn.model_selection import train_test_split
import bentoml

Prepare Dataset

download dataset from https://www.kaggle.com/c/titanic/data

In [3]:
!mkdir data
!curl https://raw.githubusercontent.com/agconti/kaggle-titanic/master/data/train.csv -o ./data/train.csv
!curl https://raw.githubusercontent.com/agconti/kaggle-titanic/master/data/test.csv -o ./data/test.csv
mkdir: data: File exists
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 60302  100 60302    0     0   154k      0 --:--:-- --:--:-- --:--:--  154k
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 28210  100 28210    0     0   101k      0 --:--:-- --:--:-- --:--:--  101k
In [4]:
train_df = pd.read_csv('./data/train.csv')
test_df = pd.read_csv('./data/test.csv')
train_df.head()
Out[4]:
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S
1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 0 PC 17599 71.2833 C85 C
2 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S
3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 0 113803 53.1000 C123 S
4 5 0 3 Allen, Mr. William Henry male 35.0 0 0 373450 8.0500 NaN S
In [5]:
y = train_df.pop('Survived')
cols = ['Pclass', 'Age', 'Fare', 'SibSp', 'Parch']
X_train, X_test, y_train, y_test = train_test_split(train_df[cols], 
                                                    y, 
                                                    test_size=0.2, 
                                                    random_state=42)
In [6]:
# Create an LGBM dataset for training
train_data = lgb.Dataset(data=X_train[cols],
                        label=y_train)

# Create an LGBM dataset from the test
test_data = lgb.Dataset(data=X_test[cols],
                        label=y_test)

Model Training

In [7]:
lgb_params = {
    'boosting': 'dart',          # dart (drop out trees) often performs better
    'application': 'binary',     # Binary classification
    'learning_rate': 0.05,       # Learning rate, controls size of a gradient descent step
    'min_data_in_leaf': 20,      # Data set is quite small so reduce this a bit
    'feature_fraction': 0.7,     # Proportion of features in each boost, controls overfitting
    'num_leaves': 41,            # Controls size of tree since LGBM uses leaf wise splits
    'metric': 'binary_logloss',  # Area under ROC curve as the evaulation metric
    'drop_rate': 0.15
              }

evaluation_results = {}
model = lgb.train(train_set=train_data,
                params=lgb_params,
                valid_sets=[train_data, test_data], 
                valid_names=['Train', 'Test'],
                evals_result=evaluation_results,
                num_boost_round=500,
                early_stopping_rounds=100,
                verbose_eval=20
                )
[20]	Train's binary_logloss: 0.55215	Test's binary_logloss: 0.587358
[40]	Train's binary_logloss: 0.510164	Test's binary_logloss: 0.559348
[60]	Train's binary_logloss: 0.500602	Test's binary_logloss: 0.551635
[80]	Train's binary_logloss: 0.490215	Test's binary_logloss: 0.547154
[100]	Train's binary_logloss: 0.486812	Test's binary_logloss: 0.547076
[120]	Train's binary_logloss: 0.479242	Test's binary_logloss: 0.542552
[140]	Train's binary_logloss: 0.469847	Test's binary_logloss: 0.539319
[160]	Train's binary_logloss: 0.471384	Test's binary_logloss: 0.542278
[180]	Train's binary_logloss: 0.453052	Test's binary_logloss: 0.535512
[200]	Train's binary_logloss: 0.442048	Test's binary_logloss: 0.533921
[220]	Train's binary_logloss: 0.436788	Test's binary_logloss: 0.534261
[240]	Train's binary_logloss: 0.427196	Test's binary_logloss: 0.532026
[260]	Train's binary_logloss: 0.420145	Test's binary_logloss: 0.531791
[280]	Train's binary_logloss: 0.413336	Test's binary_logloss: 0.527412
[300]	Train's binary_logloss: 0.406546	Test's binary_logloss: 0.529314
[320]	Train's binary_logloss: 0.402753	Test's binary_logloss: 0.525075
[340]	Train's binary_logloss: 0.39979	Test's binary_logloss: 0.523438
[360]	Train's binary_logloss: 0.403024	Test's binary_logloss: 0.525361
[380]	Train's binary_logloss: 0.398387	Test's binary_logloss: 0.528122
[400]	Train's binary_logloss: 0.394841	Test's binary_logloss: 0.529159
[420]	Train's binary_logloss: 0.390478	Test's binary_logloss: 0.528173
[440]	Train's binary_logloss: 0.384254	Test's binary_logloss: 0.526504
[460]	Train's binary_logloss: 0.381594	Test's binary_logloss: 0.525863
[480]	Train's binary_logloss: 0.371362	Test's binary_logloss: 0.527399
[500]	Train's binary_logloss: 0.369978	Test's binary_logloss: 0.525418
In [8]:
test_df['pred'] = model.predict(test_df[cols])
test_df[['Pclass', 'Age', 'Fare', 'SibSp', 'Parch','pred']].iloc[10:].head(2)
Out[8]:
Pclass Age Fare SibSp Parch pred
10 3 NaN 7.8958 0 0 0.052353
11 1 46.0 26.0000 0 0 0.308877

Create BentoService for model serving

In [9]:
%%writefile lightbgm_titanic_bento_service.py

import lightgbm as lgb

import bentoml
from bentoml.artifact import LightGBMModelArtifact
from bentoml.handlers import DataframeHandler

@bentoml.artifacts([LightGBMModelArtifact('model')])
@bentoml.env(pip_dependencies=['lightgbm'])
class TitanicSurvivalPredictionService(bentoml.BentoService):
    
    @bentoml.api(DataframeHandler)
    def predict(self, df):
        data = df[['Pclass', 'Age', 'Fare', 'SibSp', 'Parch']]
        return self.artifacts.model.predict(data)
Overwriting lightbgm_titanic_bento_service.py

Save BentoML service archive

In [10]:
# 1) import the custom BentoService defined above
from lightbgm_titanic_bento_service import TitanicSurvivalPredictionService

# 2) `pack` it with required artifacts
bento_service = TitanicSurvivalPredictionService()
bento_service.pack('model', model)

# 3) save your BentoSerivce
saved_path = bento_service.save()
[2020-01-22 15:41:16,540] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.5.8. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
[2020-01-22 15:41:16,861] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.5.8. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
[2020-01-22 15:41:33,580] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.5.8. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
running sdist
running egg_info
writing BentoML.egg-info/PKG-INFO
writing dependency_links to BentoML.egg-info/dependency_links.txt
writing entry points to BentoML.egg-info/entry_points.txt
writing requirements to BentoML.egg-info/requires.txt
writing top-level names to BentoML.egg-info/top_level.txt
reading manifest file 'BentoML.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'examples'
no previously-included directories found matching 'tests'
no previously-included directories found matching 'docs'
warning: no previously-included files matching '*~' found anywhere in distribution
warning: no previously-included files matching '*.pyo' found anywhere in distribution
warning: no previously-included files matching '.git' found anywhere in distribution
warning: no previously-included files matching '.ipynb_checkpoints' found anywhere in distribution
warning: no previously-included files matching '__pycache__' found anywhere in distribution
writing manifest file 'BentoML.egg-info/SOURCES.txt'
running check
warning: check: missing meta-data: if 'author' supplied, 'author_email' must be supplied too

creating BentoML-0.5.8+23.g1dd72d3
creating BentoML-0.5.8+23.g1dd72d3/BentoML.egg-info
creating BentoML-0.5.8+23.g1dd72d3/bentoml
creating BentoML-0.5.8+23.g1dd72d3/bentoml/artifact
creating BentoML-0.5.8+23.g1dd72d3/bentoml/bundler
creating BentoML-0.5.8+23.g1dd72d3/bentoml/cli
creating BentoML-0.5.8+23.g1dd72d3/bentoml/clipper
creating BentoML-0.5.8+23.g1dd72d3/bentoml/configuration
creating BentoML-0.5.8+23.g1dd72d3/bentoml/deployment
creating BentoML-0.5.8+23.g1dd72d3/bentoml/deployment/aws_lambda
creating BentoML-0.5.8+23.g1dd72d3/bentoml/deployment/sagemaker
creating BentoML-0.5.8+23.g1dd72d3/bentoml/handlers
creating BentoML-0.5.8+23.g1dd72d3/bentoml/migrations
creating BentoML-0.5.8+23.g1dd72d3/bentoml/migrations/versions
creating BentoML-0.5.8+23.g1dd72d3/bentoml/proto
creating BentoML-0.5.8+23.g1dd72d3/bentoml/repository
creating BentoML-0.5.8+23.g1dd72d3/bentoml/server
creating BentoML-0.5.8+23.g1dd72d3/bentoml/server/static
creating BentoML-0.5.8+23.g1dd72d3/bentoml/utils
creating BentoML-0.5.8+23.g1dd72d3/bentoml/utils/validator
creating BentoML-0.5.8+23.g1dd72d3/bentoml/yatai
creating BentoML-0.5.8+23.g1dd72d3/bentoml/yatai/client
copying files to BentoML-0.5.8+23.g1dd72d3...
copying LICENSE -> BentoML-0.5.8+23.g1dd72d3
copying MANIFEST.in -> BentoML-0.5.8+23.g1dd72d3
copying README.md -> BentoML-0.5.8+23.g1dd72d3
copying pyproject.toml -> BentoML-0.5.8+23.g1dd72d3
copying setup.cfg -> BentoML-0.5.8+23.g1dd72d3
copying setup.py -> BentoML-0.5.8+23.g1dd72d3
copying versioneer.py -> BentoML-0.5.8+23.g1dd72d3
copying BentoML.egg-info/PKG-INFO -> BentoML-0.5.8+23.g1dd72d3/BentoML.egg-info
copying BentoML.egg-info/SOURCES.txt -> BentoML-0.5.8+23.g1dd72d3/BentoML.egg-info
copying BentoML.egg-info/dependency_links.txt -> BentoML-0.5.8+23.g1dd72d3/BentoML.egg-info
copying BentoML.egg-info/entry_points.txt -> BentoML-0.5.8+23.g1dd72d3/BentoML.egg-info
copying BentoML.egg-info/requires.txt -> BentoML-0.5.8+23.g1dd72d3/BentoML.egg-info
copying BentoML.egg-info/top_level.txt -> BentoML-0.5.8+23.g1dd72d3/BentoML.egg-info
copying bentoml/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml
copying bentoml/_version.py -> BentoML-0.5.8+23.g1dd72d3/bentoml
copying bentoml/alembic.ini -> BentoML-0.5.8+23.g1dd72d3/bentoml
copying bentoml/db.py -> BentoML-0.5.8+23.g1dd72d3/bentoml
copying bentoml/exceptions.py -> BentoML-0.5.8+23.g1dd72d3/bentoml
copying bentoml/service.py -> BentoML-0.5.8+23.g1dd72d3/bentoml
copying bentoml/service_env.py -> BentoML-0.5.8+23.g1dd72d3/bentoml
copying bentoml/artifact/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/artifact
copying bentoml/artifact/artifact.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/artifact
copying bentoml/artifact/fastai_model_artifact.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/artifact
copying bentoml/artifact/h2o_model_artifact.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/artifact
copying bentoml/artifact/keras_model_artifact.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/artifact
copying bentoml/artifact/lightgbm_model_artifact.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/artifact
copying bentoml/artifact/pickle_artifact.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/artifact
copying bentoml/artifact/pytorch_model_artifact.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/artifact
copying bentoml/artifact/sklearn_model_artifact.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/artifact
copying bentoml/artifact/text_file_artifact.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/artifact
copying bentoml/artifact/tf_savedmodel_artifact.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/artifact
copying bentoml/artifact/xgboost_model_artifact.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/artifact
copying bentoml/bundler/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/bundler
copying bentoml/bundler/bundler.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/bundler
copying bentoml/bundler/config.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/bundler
copying bentoml/bundler/loader.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/bundler
copying bentoml/bundler/py_module_utils.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/bundler
copying bentoml/bundler/templates.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/bundler
copying bentoml/bundler/utils.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/bundler
copying bentoml/cli/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/cli
copying bentoml/cli/aws_lambda.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/cli
copying bentoml/cli/aws_sagemaker.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/cli
copying bentoml/cli/bento.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/cli
copying bentoml/cli/click_utils.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/cli
copying bentoml/cli/config.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/cli
copying bentoml/cli/deployment.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/cli
copying bentoml/cli/utils.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/cli
copying bentoml/clipper/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/clipper
copying bentoml/configuration/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/configuration
copying bentoml/configuration/configparser.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/configuration
copying bentoml/configuration/default_bentoml.cfg -> BentoML-0.5.8+23.g1dd72d3/bentoml/configuration
copying bentoml/deployment/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/deployment
copying bentoml/deployment/operator.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/deployment
copying bentoml/deployment/store.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/deployment
copying bentoml/deployment/utils.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/deployment
copying bentoml/deployment/aws_lambda/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/deployment/aws_lambda
copying bentoml/deployment/aws_lambda/download_extra_resources.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/deployment/aws_lambda
copying bentoml/deployment/aws_lambda/lambda_app.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/deployment/aws_lambda
copying bentoml/deployment/aws_lambda/utils.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/deployment/aws_lambda
copying bentoml/deployment/sagemaker/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/deployment/sagemaker
copying bentoml/deployment/sagemaker/sagemaker_nginx.conf -> BentoML-0.5.8+23.g1dd72d3/bentoml/deployment/sagemaker
copying bentoml/deployment/sagemaker/sagemaker_serve.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/deployment/sagemaker
copying bentoml/deployment/sagemaker/sagemaker_wsgi.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/deployment/sagemaker
copying bentoml/handlers/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/handlers
copying bentoml/handlers/base_handlers.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/handlers
copying bentoml/handlers/clipper_handler.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/handlers
copying bentoml/handlers/dataframe_handler.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/handlers
copying bentoml/handlers/fastai_image_handler.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/handlers
copying bentoml/handlers/image_handler.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/handlers
copying bentoml/handlers/json_handler.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/handlers
copying bentoml/handlers/pytorch_tensor_handler.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/handlers
copying bentoml/handlers/tensorflow_tensor_handler.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/handlers
copying bentoml/handlers/utils.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/handlers
copying bentoml/migrations/README -> BentoML-0.5.8+23.g1dd72d3/bentoml/migrations
copying bentoml/migrations/env.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/migrations
copying bentoml/migrations/script.py.mako -> BentoML-0.5.8+23.g1dd72d3/bentoml/migrations
copying bentoml/migrations/versions/a6b00ae45279_add_last_updated_at_for_deployments.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/migrations/versions
copying bentoml/proto/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/proto
copying bentoml/proto/deployment_pb2.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/proto
copying bentoml/proto/repository_pb2.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/proto
copying bentoml/proto/status_pb2.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/proto
copying bentoml/proto/yatai_service_pb2.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/proto
copying bentoml/proto/yatai_service_pb2_grpc.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/proto
copying bentoml/repository/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/repository
copying bentoml/repository/metadata_store.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/repository
copying bentoml/server/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/server
copying bentoml/server/bento_api_server.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/server
copying bentoml/server/bento_sagemaker_server.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/server
copying bentoml/server/gunicorn_config.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/server
copying bentoml/server/gunicorn_server.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/server
copying bentoml/server/middlewares.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/server
copying bentoml/server/utils.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/server
copying bentoml/server/static/swagger-ui-bundle.js -> BentoML-0.5.8+23.g1dd72d3/bentoml/server/static
copying bentoml/server/static/swagger-ui.css -> BentoML-0.5.8+23.g1dd72d3/bentoml/server/static
copying bentoml/utils/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/utils
copying bentoml/utils/cloudpickle.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/utils
copying bentoml/utils/hybirdmethod.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/utils
copying bentoml/utils/log.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/utils
copying bentoml/utils/s3.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/utils
copying bentoml/utils/tempdir.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/utils
copying bentoml/utils/usage_stats.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/utils
copying bentoml/utils/validator/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/utils/validator
copying bentoml/yatai/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/yatai
copying bentoml/yatai/deployment_utils.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/yatai
copying bentoml/yatai/status.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/yatai
copying bentoml/yatai/yatai_service_impl.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/yatai
copying bentoml/yatai/client/__init__.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/yatai/client
copying bentoml/yatai/client/bento_repository_api.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/yatai/client
copying bentoml/yatai/client/deployment_api.py -> BentoML-0.5.8+23.g1dd72d3/bentoml/yatai/client
Writing BentoML-0.5.8+23.g1dd72d3/setup.cfg
UPDATING BentoML-0.5.8+23.g1dd72d3/bentoml/_version.py
set BentoML-0.5.8+23.g1dd72d3/bentoml/_version.py to '0.5.8+23.g1dd72d3'
Creating tar archive
removing 'BentoML-0.5.8+23.g1dd72d3' (and everything under it)
[2020-01-22 15:41:35,050] INFO - BentoService bundle 'TitanicSurvivalPredictionService:20200122154116_FCEE7A' created at: /private/var/folders/kn/xnc9k74x03567n1mx2tfqnpr0000gn/T/bentoml-temp-uk94neyi
[2020-01-22 15:41:35,052] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.5.8. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
[2020-01-22 15:41:35,064] WARNING - Saved BentoService bundle version mismatch: loading BentoServie bundle create with BentoML version 0.5.8,  but loading from BentoML version 0.5.8+23.g1dd72d3
[2020-01-22 15:41:35,124] INFO - BentoService bundle 'TitanicSurvivalPredictionService:20200122154116_FCEE7A' created at: /Users/bozhaoyu/bentoml/repository/TitanicSurvivalPredictionService/20200122154116_FCEE7A

Load saved BentoService for serving

In [15]:
import bentoml

bento_model = bentoml.load(saved_path)

result = bento_model.predict(test_df)
test_df['pred'] = result
test_df[['Pclass', 'Age', 'Fare', 'SibSp', 'Parch','pred']].iloc[10:].head(2)
[2019-11-25 23:58:54,631] WARNING - Module `lightbgm_titanic_bento_service` already loaded, using existing imported module.
Out[15]:
Pclass Age Fare SibSp Parch pred
10 3 NaN 7.8958 0 0 0.052353
11 1 46.0 26.0000 0 0 0.308877

Access BentoService bundle with CLI

In [11]:
!bentoml get TitanicSurvivalPredictionService
BENTO_SERVICE                                           CREATED_AT        URI                                                                                        APIS                       ARTIFACTS
TitanicSurvivalPredictionService:20200122154116_FCEE7A  2020-01-22 23:41  /Users/bozhaoyu/bentoml/repository/TitanicSurvivalPredictionService/20200122154116_FCEE7A  predict::DataframeHandler  model::LightGBMModelArtifact
In [13]:
!bentoml get {bento_service.name}:{bento_service.version}
{
  "name": "TitanicSurvivalPredictionService",
  "version": "20200122154116_FCEE7A",
  "uri": {
    "type": "LOCAL",
    "uri": "/Users/bozhaoyu/bentoml/repository/TitanicSurvivalPredictionService/20200122154116_FCEE7A"
  },
  "bentoServiceMetadata": {
    "name": "TitanicSurvivalPredictionService",
    "version": "20200122154116_FCEE7A",
    "createdAt": "2020-01-22T23:41:33.581979Z",
    "env": {
      "condaEnv": "name: bentoml-TitanicSurvivalPredictionService\nchannels:\n- defaults\ndependencies:\n- python=3.7.3\n- pip\n",
      "pipDependencies": "bentoml==0.5.8\nlightgbm",
      "pythonVersion": "3.7.3"
    },
    "artifacts": [
      {
        "name": "model",
        "artifactType": "LightGBMModelArtifact"
      }
    ],
    "apis": [
      {
        "name": "predict",
        "handlerType": "DataframeHandler",
        "docs": "BentoService API"
      }
    ]
  }
}
In [22]:
!bentoml run predict /Users/bozhaoyu/bentoml/repository/TitanicSurvivalPredictionService/20200122154116_FCEE7A \
--input '{"PassengerId":{"3":895},"Pclass":{"3":3},"Name":{"3":"Wirz, Mr. Albert"},"Sex":{"3":"male"},"Age":{"3":27.0},"SibSp":{"3":0},"Parch":{"3":0},"Ticket":{"3":"315154"},"Fare":{"3":8.6625},"Cabin":{"3":null},"Embarked":{"3":"S"},"pred":{"3":0.5045963287}}'
[2020-01-22 16:58:19,400] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.5.8. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
[2020-01-22 16:58:19,412] WARNING - Saved BentoService bundle version mismatch: loading BentoServie bundle create with BentoML version 0.5.8,  but loading from BentoML version 0.5.8+23.g1dd72d3
[2020-01-22 16:58:20,036] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.5.8. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
[2020-01-22 16:58:20,057] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.5.8. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
[0.50459633]

BentoService Serving via REST API

In your termnial, run the following command to start the REST API server:

In [32]:
!bentoml serve {saved_path}
[2020-01-22 17:22:12,985] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.5.8. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
[2020-01-22 17:22:13,000] WARNING - Saved BentoService bundle version mismatch: loading BentoServie bundle create with BentoML version 0.5.8,  but loading from BentoML version 0.5.8+23.g1dd72d3
[2020-01-22 17:22:14,210] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.5.8. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
[2020-01-22 17:22:14,236] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.5.8. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
 * Serving Flask app "TitanicSurvivalPredictionService" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
^C

Open http://127.0.0.1:5000 to see more information about the REST APIs server in your browser.

Send prediction requeset to the REST API server

Navigate to parent directory of the notebook(so you have reference to the test.jpg image), and run the following curl command to send the image to REST API server and get a prediction result:

curl -i \
--header "Content-Type: application/json" \
--request POST \
--data '[{"Pclass": 1, "Age": 30, "Fare": 200, "SibSp": 1, "Parch": 0}]' \
localhost:5000/predict

Use BentoService as PyPI package

In [33]:
! pip install {saved_path}
Processing /Users/bozhaoyu/bentoml/repository/TitanicSurvivalPredictionService/20200122154116_FCEE7A
Requirement already satisfied: bentoml==0.5.8 in /Users/bozhaoyu/src/bento (from TitanicSurvivalPredictionService===20200122154116-FCEE7A) (0.5.8+23.g1dd72d3)
Requirement already satisfied: lightgbm in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from TitanicSurvivalPredictionService===20200122154116-FCEE7A) (2.3.1)
Requirement already satisfied: ruamel.yaml>=0.15.0 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (0.15.99)
Requirement already satisfied: numpy in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (1.16.4)
Requirement already satisfied: flask in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (1.0.4)
Requirement already satisfied: gunicorn in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (19.9.0)
Requirement already satisfied: click>=7.0 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (7.0)
Requirement already satisfied: pandas in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (0.24.2)
Requirement already satisfied: prometheus_client in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (0.7.1)
Requirement already satisfied: python-json-logger in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (0.1.11)
Requirement already satisfied: boto3 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (1.10.42)
Requirement already satisfied: requests in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (2.22.0)
Requirement already satisfied: packaging in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (19.0)
Requirement already satisfied: docker in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (4.1.0)
Requirement already satisfied: configparser in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (3.7.4)
Requirement already satisfied: sqlalchemy>=1.3.0 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (1.3.6)
Requirement already satisfied: protobuf>=3.6.0 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (3.7.0)
Requirement already satisfied: grpcio in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (1.22.0)
Requirement already satisfied: cerberus in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (1.3.1)
Requirement already satisfied: tabulate in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (0.8.3)
Requirement already satisfied: humanfriendly in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (4.18)
Requirement already satisfied: alembic in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (1.2.1)
Requirement already satisfied: python-dateutil<2.8.1,>=2.1 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (2.8.0)
Requirement already satisfied: scipy in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from lightgbm->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (1.2.1)
Requirement already satisfied: scikit-learn in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from lightgbm->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (0.22)
Requirement already satisfied: Werkzeug>=0.14 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from flask->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (0.15.4)
Requirement already satisfied: Jinja2>=2.10 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from flask->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (2.10.1)
Requirement already satisfied: itsdangerous>=0.24 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from flask->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (1.1.0)
Requirement already satisfied: pytz>=2011k in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from pandas->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (2019.1)
Requirement already satisfied: botocore<1.14.0,>=1.13.42 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from boto3->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (1.13.42)
Requirement already satisfied: s3transfer<0.3.0,>=0.2.0 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from boto3->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (0.2.1)
Requirement already satisfied: jmespath<1.0.0,>=0.7.1 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from boto3->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (0.9.4)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from requests->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (1.24.1)
Requirement already satisfied: idna<2.9,>=2.5 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from requests->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (2.8)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from requests->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (2019.11.28)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from requests->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (3.0.4)
Requirement already satisfied: pyparsing>=2.0.2 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from packaging->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (2.4.0)
Requirement already satisfied: six in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from packaging->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (1.14.0)
Requirement already satisfied: websocket-client>=0.32.0 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from docker->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (0.57.0)
Requirement already satisfied: setuptools in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from protobuf>=3.6.0->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (45.1.0.post20200119)
Requirement already satisfied: python-editor>=0.3 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from alembic->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (1.0.4)
Requirement already satisfied: Mako in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from alembic->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (1.1.0)
Requirement already satisfied: joblib>=0.11 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from scikit-learn->lightgbm->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (0.14.1)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from Jinja2>=2.10->flask->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (1.1.1)
Requirement already satisfied: docutils<0.16,>=0.10 in /usr/local/anaconda3/envs/dev-py3/lib/python3.7/site-packages (from botocore<1.14.0,>=1.13.42->boto3->bentoml==0.5.8->TitanicSurvivalPredictionService===20200122154116-FCEE7A) (0.15.2)
Building wheels for collected packages: TitanicSurvivalPredictionService
  Building wheel for TitanicSurvivalPredictionService (setup.py) ... done
  Created wheel for TitanicSurvivalPredictionService: filename=TitanicSurvivalPredictionService-20200122154116_FCEE7A-cp37-none-any.whl size=643993 sha256=43f209cae82f18fda0ee3ed740e3380e7dad0137589f2ec5209519a01d732950
  Stored in directory: /private/var/folders/kn/xnc9k74x03567n1mx2tfqnpr0000gn/T/pip-ephem-wheel-cache-l_r9ibhg/wheels/cd/9a/19/afbde887befa6ee8aa83fde19cf1dbb91cacc26bb782362185
Successfully built TitanicSurvivalPredictionService
Installing collected packages: TitanicSurvivalPredictionService
Successfully installed TitanicSurvivalPredictionService-20200122154116-FCEE7A
In [34]:
!TitanicSurvivalPredictionService info
[2020-01-22 18:21:12,485] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.5.8. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
[2020-01-22 18:21:12,494] WARNING - Saved BentoService bundle version mismatch: loading BentoServie bundle create with BentoML version 0.5.8,  but loading from BentoML version 0.5.8+23.g1dd72d3
{
  "name": "TitanicSurvivalPredictionService",
  "version": "20200122154116_FCEE7A",
  "created_at": "2020-01-22T23:41:33.581979Z",
  "env": {
    "conda_env": "name: bentoml-TitanicSurvivalPredictionService\nchannels:\n- defaults\ndependencies:\n- python=3.7.3\n- pip\n",
    "pip_dependencies": "bentoml==0.5.8\nlightgbm",
    "python_version": "3.7.3"
  },
  "artifacts": [
    {
      "name": "model",
      "artifact_type": "LightGBMModelArtifact"
    }
  ],
  "apis": [
    {
      "name": "predict",
      "handler_type": "DataframeHandler",
      "docs": "BentoService API"
    }
  ]
}
In [35]:
!TitanicSurvivalPredictionService run predict --input '[{"Pclass": 1, "Age": 30, "Fare": 200, "SibSp": 1, "Parch": 0}]' 
[2020-01-22 18:21:34,109] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.5.8. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
[2020-01-22 18:21:34,119] WARNING - Saved BentoService bundle version mismatch: loading BentoServie bundle create with BentoML version 0.5.8,  but loading from BentoML version 0.5.8+23.g1dd72d3
[2020-01-22 18:21:34,122] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.5.8. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
[2020-01-22 18:21:34,148] WARNING - BentoML local changes detected - Local BentoML repository including all code changes will be bundled together with the BentoService bundle. When used with docker, the base docker image will be default to same version as last PyPI release at version: 0.5.8. You can also force bentoml to use a specific version for deploying your BentoService bundle, by setting the config 'core/bentoml_deploy_version' to a pinned version or your custom BentoML on github, e.g.:'bentoml_deploy_version = git+https://github.com/{username}/[email protected]{branch}'
[0.80731289]

Containerize REST API server with Docker

The BentoService SavedBundle is structured to work as a docker build context, that can be directed used to build a docker image for API server. Simply use it as the docker build context directory:

In [36]:
!cd {saved_path} && docker build -t lightgbm-titanic .
Sending build context to Docker daemon  2.407MB
Step 1/12 : FROM continuumio/miniconda3:4.7.12
 ---> 406f2b43ea59
Step 2/12 : ENTRYPOINT [ "/bin/bash", "-c" ]
 ---> Using cache
 ---> d3cfb80f9fc7
Step 3/12 : EXPOSE 5000
 ---> Using cache
 ---> 3d1f997a1d9c
Step 4/12 : RUN set -x      && apt-get update      && apt-get install --no-install-recommends --no-install-suggests -y libpq-dev build-essential      && rm -rf /var/lib/apt/lists/*
 ---> Using cache
 ---> a0b2d59e3e13
Step 5/12 : RUN conda install pip numpy scipy       && pip install gunicorn
 ---> Using cache
 ---> 504b4d11f51a
Step 6/12 : COPY . /bento
 ---> 51b0475d6d63
Step 7/12 : WORKDIR /bento
 ---> Running in a0a1120a1219
Removing intermediate container a0a1120a1219
 ---> dcb8182dbfeb
Step 8/12 : RUN if [ -f /bento/setup.sh ]; then /bin/bash -c /bento/setup.sh; fi
 ---> Running in 0bde88c000ec
Removing intermediate container 0bde88c000ec
 ---> 2cefb754e02b
Step 9/12 : RUN conda env update -n base -f /bento/environment.yml
 ---> Running in a255a1e0c848
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... done

Downloading and Extracting Packages
python-3.7.3         | 32.1 MB   | ########## | 100% 
Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... done
#
# To activate this environment, use
#
#     $ conda activate base
#
# To deactivate an active environment, use
#
#     $ conda deactivate

Removing intermediate container a255a1e0c848
 ---> 6c27a1136b24
Step 10/12 : RUN pip install -r /bento/requirements.txt
 ---> Running in 79e6e597ea2c
Collecting bentoml==0.5.8
  Downloading https://files.pythonhosted.org/packages/a4/ad/707fb1cd011fe772b803b5c106fa4fbb5e12448fa4db2ac42d01db4859cf/BentoML-0.5.8-py3-none-any.whl (537kB)
Collecting lightgbm
  Downloading https://files.pythonhosted.org/packages/0b/9d/ddcb2f43aca194987f1a99e27edf41cf9bc39ea750c3371c2a62698c509a/lightgbm-2.3.1-py2.py3-none-manylinux1_x86_64.whl (1.2MB)
Collecting ruamel.yaml>=0.15.0
  Downloading https://files.pythonhosted.org/packages/99/a8/25242fc81d0c02460e93e8cc7ec4ae60c2382c00ba0a0e1becc22e76548d/ruamel.yaml-0.16.6-py2.py3-none-any.whl (123kB)
Collecting configparser
  Downloading https://files.pythonhosted.org/packages/7a/2a/95ed0501cf5d8709490b1d3a3f9b5cf340da6c433f896bbe9ce08dbe6785/configparser-4.0.2-py2.py3-none-any.whl
Collecting python-json-logger
  Downloading https://files.pythonhosted.org/packages/80/9d/1c3393a6067716e04e6fcef95104c8426d262b4adaf18d7aa2470eab028d/python-json-logger-0.1.11.tar.gz
Collecting prometheus-client
  Downloading https://files.pythonhosted.org/packages/b3/23/41a5a24b502d35a4ad50a5bb7202a5e1d9a0364d0c12f56db3dbf7aca76d/prometheus_client-0.7.1.tar.gz
Collecting click>=7.0
  Downloading https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl (81kB)
Collecting sqlalchemy>=1.3.0
  Downloading https://files.pythonhosted.org/packages/af/47/35edeb0f86c0b44934c05d961c893e223ef27e79e1f53b5e6f14820ff553/SQLAlchemy-1.3.13.tar.gz (6.0MB)
Collecting boto3
  Downloading https://files.pythonhosted.org/packages/ea/4f/a75bf88d30b79e08dd7930d9643aded0a79c9f696b307f353bb33f62cc5b/boto3-1.11.7-py2.py3-none-any.whl (128kB)
Collecting python-dateutil<2.8.1,>=2.1
  Downloading https://files.pythonhosted.org/packages/41/17/c62faccbfbd163c7f57f3844689e3a78bae1f403648a6afb1d0866d87fbb/python_dateutil-2.8.0-py2.py3-none-any.whl (226kB)
Collecting packaging
  Downloading https://files.pythonhosted.org/packages/d8/5b/3098db49a61ccc8583ffead6aedc226f08ff56dc03106b6ec54451e27a30/packaging-20.0-py2.py3-none-any.whl
Requirement already satisfied: requests in /opt/conda/lib/python3.7/site-packages (from bentoml==0.5.8->-r /bento/requirements.txt (line 1)) (2.22.0)
Collecting humanfriendly
  Downloading https://files.pythonhosted.org/packages/90/df/88bff450f333114680698dc4aac7506ff7cab164b794461906de31998665/humanfriendly-4.18-py2.py3-none-any.whl (73kB)
Collecting pandas
  Downloading https://files.pythonhosted.org/packages/63/e0/a1b39cdcb2c391f087a1538bc8a6d62a82d0439693192aef541d7b123769/pandas-0.25.3-cp37-cp37m-manylinux1_x86_64.whl (10.4MB)
Collecting cerberus
  Downloading https://files.pythonhosted.org/packages/90/a7/71c6ed2d46a81065e68c007ac63378b96fa54c7bb614d653c68232f9c50c/Cerberus-1.3.2.tar.gz (52kB)
Collecting protobuf>=3.6.0
  Downloading https://files.pythonhosted.org/packages/4a/14/f5c294f1e36a031f165128c25feba93b3116f15a74398d0b2747ed75744f/protobuf-3.11.2-cp37-cp37m-manylinux1_x86_64.whl (1.3MB)
Collecting flask
  Downloading https://files.pythonhosted.org/packages/9b/93/628509b8d5dc749656a9641f4caf13540e2cdec85276964ff8f43bbb1d3b/Flask-1.1.1-py2.py3-none-any.whl (94kB)
Collecting tabulate
  Downloading https://files.pythonhosted.org/packages/c4/41/523f6a05e6dc3329a5660f6a81254c6cd87e5cfb5b7482bae3391d86ec3a/tabulate-0.8.6.tar.gz (45kB)
Collecting docker
  Downloading https://files.pythonhosted.org/packages/cc/ca/699d4754a932787ef353a157ada74efd1ceb6d1fc0bfb7989ae1e7b33111/docker-4.1.0-py2.py3-none-any.whl (139kB)
Collecting alembic
  Downloading https://files.pythonhosted.org/packages/9d/c9/d4aa3be3511dfd6d86f8f483ce0d9f120258be4aceadc17601843593e2ec/alembic-1.3.3.tar.gz (1.1MB)
Requirement already satisfied: numpy in /opt/conda/lib/python3.7/site-packages (from bentoml==0.5.8->-r /bento/requirements.txt (line 1)) (1.18.1)
Requirement already satisfied: gunicorn in /opt/conda/lib/python3.7/site-packages (from bentoml==0.5.8->-r /bento/requirements.txt (line 1)) (20.0.4)
Collecting grpcio
  Downloading https://files.pythonhosted.org/packages/bc/b3/0052e38c640d52b710e235b15821cc3c61d0065bf54e70a44550ef127349/grpcio-1.26.0-cp37-cp37m-manylinux2010_x86_64.whl (2.4MB)
Requirement already satisfied: scipy in /opt/conda/lib/python3.7/site-packages (from lightgbm->-r /bento/requirements.txt (line 2)) (1.3.2)
Collecting scikit-learn
  Downloading https://files.pythonhosted.org/packages/73/db/7d8204ddba84ab5d1e4fd1af8f82bbe39c589488bee71e45c662f4144010/scikit_learn-0.22.1-cp37-cp37m-manylinux1_x86_64.whl (7.0MB)
Collecting ruamel.yaml.clib>=0.1.2; platform_python_implementation == "CPython" and python_version < "3.8"
  Downloading https://files.pythonhosted.org/packages/40/80/da16b691d5e259dd9919a10628e541fca321cb4b078fbb88e1c7c22aa42d/ruamel.yaml.clib-0.2.0-cp37-cp37m-manylinux1_x86_64.whl (547kB)
Collecting botocore<1.15.0,>=1.14.7
  Downloading https://files.pythonhosted.org/packages/10/d7/da416c5d6a8c61796dbc37875c886955798ca88385882725049af49d417a/botocore-1.14.7-py2.py3-none-any.whl (5.9MB)
Collecting jmespath<1.0.0,>=0.7.1
  Downloading https://files.pythonhosted.org/packages/83/94/7179c3832a6d45b266ddb2aac329e101367fbdb11f425f13771d27f225bb/jmespath-0.9.4-py2.py3-none-any.whl
Collecting s3transfer<0.4.0,>=0.3.0
  Downloading https://files.pythonhosted.org/packages/de/6d/27abf73e66a05726dd52fb3a6645417b5dc86d90488b59589296dafbf054/s3transfer-0.3.1-py2.py3-none-any.whl (69kB)
Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.7/site-packages (from python-dateutil<2.8.1,>=2.1->bentoml==0.5.8->-r /bento/requirements.txt (line 1)) (1.12.0)
Collecting pyparsing>=2.0.2
  Downloading https://files.pythonhosted.org/packages/5d/bc/1e58593167fade7b544bfe9502a26dc860940a79ab306e651e7f13be68c2/pyparsing-2.4.6-py2.py3-none-any.whl (67kB)
Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.5.8->-r /bento/requirements.txt (line 1)) (2019.11.28)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.5.8->-r /bento/requirements.txt (line 1)) (1.24.2)
Requirement already satisfied: idna<2.9,>=2.5 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.5.8->-r /bento/requirements.txt (line 1)) (2.8)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.5.8->-r /bento/requirements.txt (line 1)) (3.0.4)
Collecting pytz>=2017.2
  Downloading https://files.pythonhosted.org/packages/e7/f9/f0b53f88060247251bf481fa6ea62cd0d25bf1b11a87888e53ce5b7c8ad2/pytz-2019.3-py2.py3-none-any.whl (509kB)
Requirement already satisfied: setuptools in /opt/conda/lib/python3.7/site-packages (from cerberus->bentoml==0.5.8->-r /bento/requirements.txt (line 1)) (41.4.0)
Collecting itsdangerous>=0.24
  Downloading https://files.pythonhosted.org/packages/76/ae/44b03b253d6fade317f32c24d100b3b35c2239807046a4c953c7b89fa49e/itsdangerous-1.1.0-py2.py3-none-any.whl
Collecting Jinja2>=2.10.1
  Downloading https://files.pythonhosted.org/packages/65/e0/eb35e762802015cab1ccee04e8a277b03f1d8e53da3ec3106882ec42558b/Jinja2-2.10.3-py2.py3-none-any.whl (125kB)
Collecting Werkzeug>=0.15
  Downloading https://files.pythonhosted.org/packages/ce/42/3aeda98f96e85fd26180534d36570e4d18108d62ae36f87694b476b83d6f/Werkzeug-0.16.0-py2.py3-none-any.whl (327kB)
Collecting websocket-client>=0.32.0
  Downloading https://files.pythonhosted.org/packages/4c/5f/f61b420143ed1c8dc69f9eaec5ff1ac36109d52c80de49d66e0c36c3dfdf/websocket_client-0.57.0-py2.py3-none-any.whl (200kB)
Collecting Mako
  Downloading https://files.pythonhosted.org/packages/28/03/329b21f00243fc2d3815399413845dbbfb0745cff38a29d3597e97f8be58/Mako-1.1.1.tar.gz (468kB)
Collecting python-editor>=0.3
  Downloading https://files.pythonhosted.org/packages/c6/d3/201fc3abe391bbae6606e6f1d598c15d367033332bd54352b12f35513717/python_editor-1.0.4-py3-none-any.whl
Collecting joblib>=0.11
  Downloading https://files.pythonhosted.org/packages/28/5c/cf6a2b65a321c4a209efcdf64c2689efae2cb62661f8f6f4bb28547cf1bf/joblib-0.14.1-py2.py3-none-any.whl (294kB)
Collecting docutils<0.16,>=0.10
  Downloading https://files.pythonhosted.org/packages/22/cd/a6aa959dca619918ccb55023b4cb151949c64d4d5d55b3f4ffd7eee0c6e8/docutils-0.15.2-py3-none-any.whl (547kB)
Collecting MarkupSafe>=0.23
  Downloading https://files.pythonhosted.org/packages/98/7b/ff284bd8c80654e471b769062a9b43cc5d03e7a615048d96f4619df8d420/MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl
Building wheels for collected packages: python-json-logger, prometheus-client, sqlalchemy, cerberus, tabulate, alembic, Mako
  Building wheel for python-json-logger (setup.py): started
  Building wheel for python-json-logger (setup.py): finished with status 'done'
  Created wheel for python-json-logger: filename=python_json_logger-0.1.11-py2.py3-none-any.whl size=5076 sha256=2271c4e4cb6933374b1494f071ea3f78a7b395063b9b40d1e5f1740ab574ef6c
  Stored in directory: /root/.cache/pip/wheels/97/f7/a1/752e22bb30c1cfe38194ea0070a5c66e76ef4d06ad0c7dc401
  Building wheel for prometheus-client (setup.py): started
  Building wheel for prometheus-client (setup.py): finished with status 'done'
  Created wheel for prometheus-client: filename=prometheus_client-0.7.1-cp37-none-any.whl size=41402 sha256=10031561bb8551f2df3d0a8a2f9abd89f4ecd48c249eb31017576c9ab033e032
  Stored in directory: /root/.cache/pip/wheels/1c/54/34/fd47cd9b308826cc4292b54449c1899a30251ef3b506bc91ea
  Building wheel for sqlalchemy (setup.py): started
  Building wheel for sqlalchemy (setup.py): finished with status 'done'
  Created wheel for sqlalchemy: filename=SQLAlchemy-1.3.13-cp37-cp37m-linux_x86_64.whl size=1223698 sha256=834075adcd2a5ec4bf74e282e128812c8eaeef0166f1990d0e3e399d4d9e7b06
  Stored in directory: /root/.cache/pip/wheels/b3/35/98/4c9cb3fd63d21d5606b972dd70643769745adf60e622467b71
  Building wheel for cerberus (setup.py): started
  Building wheel for cerberus (setup.py): finished with status 'done'
  Created wheel for cerberus: filename=Cerberus-1.3.2-cp37-none-any.whl size=54336 sha256=56428c7a4f10f87f9ac7c4d1e2250641475dab5cd4ca129d3db6f1d6cee64b5d
  Stored in directory: /root/.cache/pip/wheels/e9/38/1f/f2cc84182676f3ae7134b9b2d744f9c235b24d2ddc8f7fe465
  Building wheel for tabulate (setup.py): started
  Building wheel for tabulate (setup.py): finished with status 'done'
  Created wheel for tabulate: filename=tabulate-0.8.6-cp37-none-any.whl size=23274 sha256=1e06efa26c9f79af423eba7d13eef93b8069d7dd83202fba318e0b44c7620477
  Stored in directory: /root/.cache/pip/wheels/9c/9b/f4/eb243fdb89676ec00588e8c54bb54360724c06e7fafe95278e
  Building wheel for alembic (setup.py): started
  Building wheel for alembic (setup.py): finished with status 'done'
  Created wheel for alembic: filename=alembic-1.3.3-py2.py3-none-any.whl size=155684 sha256=a6bcfced7eeed7fb1da45c5ef61314680eafd26106beb71a8f0f7f5a0e8a91bf
  Stored in directory: /root/.cache/pip/wheels/12/6a/49/94a4af65af2edbccf9f467c0f4b26f24d0e5b61be0d8a7e066
  Building wheel for Mako (setup.py): started
  Building wheel for Mako (setup.py): finished with status 'done'
  Created wheel for Mako: filename=Mako-1.1.1-cp37-none-any.whl size=75411 sha256=dbaea9cfc07fc4646353c48228d250d2367429587a8e40ae9a6ff6b006d93e56
  Stored in directory: /root/.cache/pip/wheels/ff/50/a9/0ddeed8679a1fb65bf4677cb9c92701828b2c1821e22ef72fd
Successfully built python-json-logger prometheus-client sqlalchemy cerberus tabulate alembic Mako
Installing collected packages: ruamel.yaml.clib, ruamel.yaml, configparser, python-json-logger, prometheus-client, click, sqlalchemy, docutils, python-dateutil, jmespath, botocore, s3transfer, boto3, pyparsing, packaging, humanfriendly, pytz, pandas, cerberus, protobuf, itsdangerous, MarkupSafe, Jinja2, Werkzeug, flask, tabulate, websocket-client, docker, Mako, python-editor, alembic, grpcio, bentoml, joblib, scikit-learn, lightgbm
Successfully installed Jinja2-2.10.3 Mako-1.1.1 MarkupSafe-1.1.1 Werkzeug-0.16.0 alembic-1.3.3 bentoml-0.5.8 boto3-1.11.7 botocore-1.14.7 cerberus-1.3.2 click-7.0 configparser-4.0.2 docker-4.1.0 docutils-0.15.2 flask-1.1.1 grpcio-1.26.0 humanfriendly-4.18 itsdangerous-1.1.0 jmespath-0.9.4 joblib-0.14.1 lightgbm-2.3.1 packaging-20.0 pandas-0.25.3 prometheus-client-0.7.1 protobuf-3.11.2 pyparsing-2.4.6 python-dateutil-2.8.0 python-editor-1.0.4 python-json-logger-0.1.11 pytz-2019.3 ruamel.yaml-0.16.6 ruamel.yaml.clib-0.2.0 s3transfer-0.3.1 scikit-learn-0.22.1 sqlalchemy-1.3.13 tabulate-0.8.6 websocket-client-0.57.0
Removing intermediate container 79e6e597ea2c
 ---> 40ab5ed040fc
Step 11/12 : RUN if [ -f /bento/bentoml_init.sh ]; then /bin/bash -c /bento/bentoml_init.sh; fi
 ---> Running in 1aed15a9ff22
Processing ./bundled_pip_dependencies/BentoML-0.5.8+23.g1dd72d3.tar.gz
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
Requirement already satisfied, skipping upgrade: packaging in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (20.0)
Requirement already satisfied, skipping upgrade: tabulate in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (0.8.6)
Requirement already satisfied, skipping upgrade: flask in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (1.1.1)
Requirement already satisfied, skipping upgrade: sqlalchemy>=1.3.0 in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (1.3.13)
Requirement already satisfied, skipping upgrade: configparser in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (4.0.2)
Requirement already satisfied, skipping upgrade: requests in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (2.22.0)
Requirement already satisfied, skipping upgrade: grpcio in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (1.26.0)
Requirement already satisfied, skipping upgrade: boto3 in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (1.11.7)
Requirement already satisfied, skipping upgrade: protobuf>=3.6.0 in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (3.11.2)
Requirement already satisfied, skipping upgrade: pandas in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (0.25.3)
Requirement already satisfied, skipping upgrade: gunicorn in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (20.0.4)
Requirement already satisfied, skipping upgrade: click>=7.0 in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (7.0)
Requirement already satisfied, skipping upgrade: cerberus in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (1.3.2)
Requirement already satisfied, skipping upgrade: python-dateutil<2.8.1,>=2.1 in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (2.8.0)
Requirement already satisfied, skipping upgrade: docker in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (4.1.0)
Requirement already satisfied, skipping upgrade: alembic in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (1.3.3)
Requirement already satisfied, skipping upgrade: numpy in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (1.18.1)
Requirement already satisfied, skipping upgrade: ruamel.yaml>=0.15.0 in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (0.16.6)
Requirement already satisfied, skipping upgrade: humanfriendly in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (4.18)
Requirement already satisfied, skipping upgrade: python-json-logger in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (0.1.11)
Requirement already satisfied, skipping upgrade: prometheus-client in /opt/conda/lib/python3.7/site-packages (from BentoML==0.5.8+23.g1dd72d3) (0.7.1)
Requirement already satisfied, skipping upgrade: six in /opt/conda/lib/python3.7/site-packages (from packaging->BentoML==0.5.8+23.g1dd72d3) (1.12.0)
Requirement already satisfied, skipping upgrade: pyparsing>=2.0.2 in /opt/conda/lib/python3.7/site-packages (from packaging->BentoML==0.5.8+23.g1dd72d3) (2.4.6)
Requirement already satisfied, skipping upgrade: Werkzeug>=0.15 in /opt/conda/lib/python3.7/site-packages (from flask->BentoML==0.5.8+23.g1dd72d3) (0.16.0)
Requirement already satisfied, skipping upgrade: itsdangerous>=0.24 in /opt/conda/lib/python3.7/site-packages (from flask->BentoML==0.5.8+23.g1dd72d3) (1.1.0)
Requirement already satisfied, skipping upgrade: Jinja2>=2.10.1 in /opt/conda/lib/python3.7/site-packages (from flask->BentoML==0.5.8+23.g1dd72d3) (2.10.3)
Requirement already satisfied, skipping upgrade: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/lib/python3.7/site-packages (from requests->BentoML==0.5.8+23.g1dd72d3) (1.24.2)
Requirement already satisfied, skipping upgrade: idna<2.9,>=2.5 in /opt/conda/lib/python3.7/site-packages (from requests->BentoML==0.5.8+23.g1dd72d3) (2.8)
Requirement already satisfied, skipping upgrade: chardet<3.1.0,>=3.0.2 in /opt/conda/lib/python3.7/site-packages (from requests->BentoML==0.5.8+23.g1dd72d3) (3.0.4)
Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in /opt/conda/lib/python3.7/site-packages (from requests->BentoML==0.5.8+23.g1dd72d3) (2019.11.28)
Requirement already satisfied, skipping upgrade: botocore<1.15.0,>=1.14.7 in /opt/conda/lib/python3.7/site-packages (from boto3->BentoML==0.5.8+23.g1dd72d3) (1.14.7)
Requirement already satisfied, skipping upgrade: s3transfer<0.4.0,>=0.3.0 in /opt/conda/lib/python3.7/site-packages (from boto3->BentoML==0.5.8+23.g1dd72d3) (0.3.1)
Requirement already satisfied, skipping upgrade: jmespath<1.0.0,>=0.7.1 in /opt/conda/lib/python3.7/site-packages (from boto3->BentoML==0.5.8+23.g1dd72d3) (0.9.4)
Requirement already satisfied, skipping upgrade: setuptools in /opt/conda/lib/python3.7/site-packages (from protobuf>=3.6.0->BentoML==0.5.8+23.g1dd72d3) (41.4.0)
Requirement already satisfied, skipping upgrade: pytz>=2017.2 in /opt/conda/lib/python3.7/site-packages (from pandas->BentoML==0.5.8+23.g1dd72d3) (2019.3)
Requirement already satisfied, skipping upgrade: websocket-client>=0.32.0 in /opt/conda/lib/python3.7/site-packages (from docker->BentoML==0.5.8+23.g1dd72d3) (0.57.0)
Requirement already satisfied, skipping upgrade: python-editor>=0.3 in /opt/conda/lib/python3.7/site-packages (from alembic->BentoML==0.5.8+23.g1dd72d3) (1.0.4)
Requirement already satisfied, skipping upgrade: Mako in /opt/conda/lib/python3.7/site-packages (from alembic->BentoML==0.5.8+23.g1dd72d3) (1.1.1)
Requirement already satisfied, skipping upgrade: ruamel.yaml.clib>=0.1.2; platform_python_implementation == "CPython" and python_version < "3.8" in /opt/conda/lib/python3.7/site-packages (from ruamel.yaml>=0.15.0->BentoML==0.5.8+23.g1dd72d3) (0.2.0)
Requirement already satisfied, skipping upgrade: MarkupSafe>=0.23 in /opt/conda/lib/python3.7/site-packages (from Jinja2>=2.10.1->flask->BentoML==0.5.8+23.g1dd72d3) (1.1.1)
Requirement already satisfied, skipping upgrade: docutils<0.16,>=0.10 in /opt/conda/lib/python3.7/site-packages (from botocore<1.15.0,>=1.14.7->boto3->BentoML==0.5.8+23.g1dd72d3) (0.15.2)
Building wheels for collected packages: BentoML
  Building wheel for BentoML (PEP 517): started
  Building wheel for BentoML (PEP 517): finished with status 'done'
  Created wheel for BentoML: filename=BentoML-0.5.8+23.g1dd72d3-cp37-none-any.whl size=505485 sha256=ace292105b8bb6c2e2195909a4e5534ccbaaeb43f830320a0b8e672127078966
  Stored in directory: /root/.cache/pip/wheels/60/9d/9e/5f9949596e00855daaa388e2c0777603f23e7cf4c6b2708be7
Successfully built BentoML
Installing collected packages: BentoML
  Found existing installation: BentoML 0.5.8
    Uninstalling BentoML-0.5.8:
      Successfully uninstalled BentoML-0.5.8
Successfully installed BentoML-0.5.8+23.g1dd72d3
Removing intermediate container 1aed15a9ff22
 ---> 6c157daf4299
Step 12/12 : CMD ["bentoml serve-gunicorn /bento"]
 ---> Running in d6af172a1af9
Removing intermediate container d6af172a1af9
 ---> c1ff3dcf6ccb
Successfully built c1ff3dcf6ccb
Successfully tagged lightgbn-titanic:latest

Next, you can docker push the image to your choice of registry for deployment, or run it locally for development and testing:

In [ ]:
!docker run -p 5000:5000 lightgbm-titanic

Deploy BentoService as REST API server to the cloud

BentoML support deployment to multiply cloud provider services, such as AWS Lambda, AWS Sagemaker, Google Cloudrun and etc. You can find the full list and guide on the documentation site at https://docs.bentoml.org/en/latest/deployment/index.html

For this demo, we are going to deploy to AWS Sagemaker

Deploying to Sagemaker with bentoml sagemaker deploy command

In [24]:
!bentoml sagemaker deploy first-light-bgm -b {bento_service.name}:{bento_service.version} \
    --api-name predict --region us-west-2
[2020-01-22 16:59:41,021] DEBUG - Using BentoML with local Yatai server
[2020-01-22 16:59:41,106] DEBUG - Upgrading tables to the latest revision
Deploying Sagemaker deployment /[2020-01-22 16:59:42,117] DEBUG - Created temporary directory: /private/var/folders/kn/xnc9k74x03567n1mx2tfqnpr0000gn/T/bentoml-temp-esrezr4x
\[2020-01-22 16:59:42,748] DEBUG - Getting docker login info from AWS
[2020-01-22 16:59:42,749] DEBUG - Building docker image: 192023623294.dkr.ecr.us-west-2.amazonaws.com/titanicsurvivalpredictionservice-sagemaker:20200122154116_FCEE7A
-[2020-01-22 16:59:43,159] INFO - Step 1/11 : FROM continuumio/miniconda3:4.7.12
[2020-01-22 16:59:43,159] INFO - 

[2020-01-22 16:59:43,160] INFO -  ---> 406f2b43ea59

[2020-01-22 16:59:43,160] INFO - Step 2/11 : EXPOSE 8080
[2020-01-22 16:59:43,160] INFO - 

[2020-01-22 16:59:43,160] INFO -  ---> Using cache

[2020-01-22 16:59:43,160] INFO -  ---> d8ec94af8603

[2020-01-22 16:59:43,160] INFO - Step 3/11 : RUN set -x      && apt-get update      && apt-get install --no-install-recommends --no-install-suggests -y libpq-dev build-essential     && apt-get install -y nginx      && rm -rf /var/lib/apt/lists/*
[2020-01-22 16:59:43,160] INFO - 

[2020-01-22 16:59:43,161] INFO -  ---> Using cache

[2020-01-22 16:59:43,161] INFO -  ---> 2d40d6bd126a

[2020-01-22 16:59:43,161] INFO - Step 4/11 : RUN conda install pip numpy scipy       && pip install gunicorn gevent
[2020-01-22 16:59:43,161] INFO - 

[2020-01-22 16:59:43,161] INFO -  ---> Using cache

[2020-01-22 16:59:43,161] INFO -  ---> 62c846ad06a6

[2020-01-22 16:59:43,161] INFO - Step 5/11 : COPY . /opt/program
[2020-01-22 16:59:43,161] INFO - 

-[2020-01-22 16:59:43,590] INFO -  ---> 929fed5f5e69

[2020-01-22 16:59:43,590] INFO - Step 6/11 : WORKDIR /opt/program
[2020-01-22 16:59:43,591] INFO - 

/[2020-01-22 16:59:43,704] INFO -  ---> Running in 72497cf00d3d

-[2020-01-22 16:59:43,976] INFO -  ---> bba32d4fa9a3

[2020-01-22 16:59:43,976] INFO - Step 7/11 : RUN conda env update -n base -f /opt/program/environment.yml
[2020-01-22 16:59:43,976] INFO - 

/[2020-01-22 16:59:44,142] INFO -  ---> Running in b84b7b41145c

|[2020-01-22 16:59:45,883] INFO - Collecting package metadata (repodata.json): ...working... 
\[2020-01-22 16:59:50,389] INFO - done
Solving environment: ...working... 
\[2020-01-22 16:59:54,881] INFO - done

[2020-01-22 16:59:54,966] INFO - 
Downloading and Extracting Packages
python-3.7.3         | 32.1 MB   |            |   0% 
python-3.7.3         | 32.1 MB   |            |   0% 
python-3.7.3         | 32.1 MB   | 2          |   3% 
python-3.7.3         | 32.1 MB   | 5          |   6% 
python-3.7.3         | 32.1 MB   | 8          |   8% 
python-3.7.3         | 32.1 MB   | #2         |  13% 
python-3.7.3         | 32.1 MB   | #6         |  16% 
python-3.7.3         | 32.1 MB   | #9         |  20% 
python-3.7.3         | 32.1 MB   | ##3        |  24% 
python-3.7.3         | 32.1 MB   | ##7        |  27% 
python-3.7.3         | 32.1 MB   | ###        |  30% 
python-3.7.3         | 32.1 MB   | ###4       |  34% 
python-3.7.3         | 32.1 MB   | ###7       |  38% 
python-3.7.3         | 32.1 MB   | ####1      |  42% 
python-3.7.3         | 32.1 MB   | ####4      |  45% 
python-3.7.3         | 32.1 MB   | ####7      |  48% 
python-3.7.3         | 32.1 MB   | #####1     |  52% 
python-3.7.3         | 32.1 MB   | #####4     |  55% 
python-3.7.3         | 32.1 MB   | #####8     |  59% 
python-3.7.3         | 32.1 MB   | ######2    |  62% 
python-3.7.3         | 32.1 MB   | ######4    |  65% 
python-3.7.3         | 32.1 MB   | ######8    |  69% 
python-3.7.3         | 32.1 MB   | #######3   |  73% 
python-3.7.3         | 32.1 MB   | #######8   |  79% 
python-3.7.3         | 32.1 MB   | ########2  |  82% 
python-3.7.3         | 32.1 MB   | ########6  |  86% 
python-3.7.3         | 32.1 MB   | #########3 |  94% 
python-3.7.3         | 32.1 MB   | #########8 |  99% 
python-3.7.3         | 32.1 MB   | ########## | 100% 
[2020-01-22 16:59:58,813] INFO - 
Preparing transaction: ...working... 
|[2020-01-22 16:59:58,919] INFO - done

[2020-01-22 16:59:58,919] INFO - Verifying transaction: ...working... 
-[2020-01-22 16:59:59,576] INFO - done

[2020-01-22 16:59:59,576] INFO - Executing transaction: ...working... 
|[2020-01-22 17:00:02,952] INFO - done

|[2020-01-22 17:00:03,412] INFO - #
# To activate this environment, use
#
#     $ conda activate base
#
# To deactivate an active environment, use
#
#     $ conda deactivate


\[2020-01-22 17:00:06,819] INFO -  ---> a2d21de47a3f

[2020-01-22 17:00:06,822] INFO - Step 8/11 : RUN pip install -r /opt/program/requirements.txt
[2020-01-22 17:00:06,822] INFO - 

-[2020-01-22 17:00:06,947] INFO -  ---> Running in 649baeaba5ee

|[2020-01-22 17:00:08,336] INFO - Collecting bentoml==0.5.8

-[2020-01-22 17:00:08,552] INFO -   Downloading https://files.pythonhosted.org/packages/a4/ad/707fb1cd011fe772b803b5c106fa4fbb5e12448fa4db2ac42d01db4859cf/BentoML-0.5.8-py3-none-any.whl (537kB)

-[2020-01-22 17:00:08,961] INFO - Collecting lightgbm

[2020-01-22 17:00:08,999] INFO -   Downloading https://files.pythonhosted.org/packages/0b/9d/ddcb2f43aca194987f1a99e27edf41cf9bc39ea750c3371c2a62698c509a/lightgbm-2.3.1-py2.py3-none-manylinux1_x86_64.whl (1.2MB)

|[2020-01-22 17:00:09,220] INFO - Collecting configparser

\[2020-01-22 17:00:09,257] INFO -   Downloading https://files.pythonhosted.org/packages/7a/2a/95ed0501cf5d8709490b1d3a3f9b5cf340da6c433f896bbe9ce08dbe6785/configparser-4.0.2-py2.py3-none-any.whl

-[2020-01-22 17:00:09,339] INFO - Collecting click>=7.0

[2020-01-22 17:00:09,375] INFO -   Downloading https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl (81kB)

/[2020-01-22 17:00:09,478] INFO - Collecting humanfriendly

[2020-01-22 17:00:09,516] INFO -   Downloading https://files.pythonhosted.org/packages/90/df/88bff450f333114680698dc4aac7506ff7cab164b794461906de31998665/humanfriendly-4.18-py2.py3-none-any.whl (73kB)

|[2020-01-22 17:00:09,616] INFO - Collecting docker

\[2020-01-22 17:00:09,652] INFO -   Downloading https://files.pythonhosted.org/packages/cc/ca/699d4754a932787ef353a157ada74efd1ceb6d1fc0bfb7989ae1e7b33111/docker-4.1.0-py2.py3-none-any.whl (139kB)

\[2020-01-22 17:00:10,492] INFO - Collecting grpcio

-[2020-01-22 17:00:10,594] INFO -   Downloading https://files.pythonhosted.org/packages/bc/b3/0052e38c640d52b710e235b15821cc3c61d0065bf54e70a44550ef127349/grpcio-1.26.0-cp37-cp37m-manylinux2010_x86_64.whl (2.4MB)

\[2020-01-22 17:00:12,500] INFO - Requirement already satisfied: numpy in /opt/conda/lib/python3.7/site-packages (from bentoml==0.5.8->-r /opt/program/requirements.txt (line 1)) (1.17.4)

[2020-01-22 17:00:12,550] INFO - Collecting python-json-logger

[2020-01-22 17:00:12,583] INFO -   Downloading https://files.pythonhosted.org/packages/80/9d/1c3393a6067716e04e6fcef95104c8426d262b4adaf18d7aa2470eab028d/python-json-logger-0.1.11.tar.gz

|[2020-01-22 17:00:12,849] INFO - Requirement already satisfied: gunicorn in /opt/conda/lib/python3.7/site-packages (from bentoml==0.5.8->-r /opt/program/requirements.txt (line 1)) (20.0.4)

-[2020-01-22 17:00:13,484] INFO - Collecting ruamel.yaml>=0.15.0

[2020-01-22 17:00:13,521] INFO -   Downloading https://files.pythonhosted.org/packages/99/a8/25242fc81d0c02460e93e8cc7ec4ae60c2382c00ba0a0e1becc22e76548d/ruamel.yaml-0.16.6-py2.py3-none-any.whl (123kB)

|[2020-01-22 17:00:13,704] INFO - Collecting tabulate

\[2020-01-22 17:00:13,742] INFO -   Downloading https://files.pythonhosted.org/packages/c4/41/523f6a05e6dc3329a5660f6a81254c6cd87e5cfb5b7482bae3391d86ec3a/tabulate-0.8.6.tar.gz (45kB)

\[2020-01-22 17:00:14,161] INFO - Collecting protobuf>=3.6.0

[2020-01-22 17:00:14,198] INFO -   Downloading https://files.pythonhosted.org/packages/4a/14/f5c294f1e36a031f165128c25feba93b3116f15a74398d0b2747ed75744f/protobuf-3.11.2-cp37-cp37m-manylinux1_x86_64.whl (1.3MB)

/[2020-01-22 17:00:15,658] INFO - Collecting cerberus

|[2020-01-22 17:00:15,692] INFO -   Downloading https://files.pythonhosted.org/packages/90/a7/71c6ed2d46a81065e68c007ac63378b96fa54c7bb614d653c68232f9c50c/Cerberus-1.3.2.tar.gz (52kB)

-[2020-01-22 17:00:16,339] INFO - Collecting pandas

[2020-01-22 17:00:16,376] INFO -   Downloading https://files.pythonhosted.org/packages/63/e0/a1b39cdcb2c391f087a1538bc8a6d62a82d0439693192aef541d7b123769/pandas-0.25.3-cp37-cp37m-manylinux1_x86_64.whl (10.4MB)

/[2020-01-22 17:00:26,234] INFO - Collecting flask

[2020-01-22 17:00:26,266] INFO -   Downloading https://files.pythonhosted.org/packages/9b/93/628509b8d5dc749656a9641f4caf13540e2cdec85276964ff8f43bbb1d3b/Flask-1.1.1-py2.py3-none-any.whl (94kB)

|[2020-01-22 17:00:26,375] INFO - Requirement already satisfied: requests in /opt/conda/lib/python3.7/site-packages (from bentoml==0.5.8->-r /opt/program/requirements.txt (line 1)) (2.22.0)

\[2020-01-22 17:00:26,445] INFO - Collecting python-dateutil<2.8.1,>=2.1

[2020-01-22 17:00:26,480] INFO -   Downloading https://files.pythonhosted.org/packages/41/17/c62faccbfbd163c7f57f3844689e3a78bae1f403648a6afb1d0866d87fbb/python_dateutil-2.8.0-py2.py3-none-any.whl (226kB)

/[2020-01-22 17:00:26,696] INFO - Collecting prometheus-client

|[2020-01-22 17:00:26,729] INFO -   Downloading https://files.pythonhosted.org/packages/b3/23/41a5a24b502d35a4ad50a5bb7202a5e1d9a0364d0c12f56db3dbf7aca76d/prometheus_client-0.7.1.tar.gz

/[2020-01-22 17:00:27,087] INFO - Collecting packaging

|[2020-01-22 17:00:27,183] INFO -   Downloading https://files.pythonhosted.org/packages/d8/5b/3098db49a61ccc8583ffead6aedc226f08ff56dc03106b6ec54451e27a30/packaging-20.0-py2.py3-none-any.whl

\[2020-01-22 17:00:27,307] INFO - Collecting sqlalchemy>=1.3.0

-[2020-01-22 17:00:27,402] INFO -   Downloading https://files.pythonhosted.org/packages/af/47/35edeb0f86c0b44934c05d961c893e223ef27e79e1f53b5e6f14820ff553/SQLAlchemy-1.3.13.tar.gz (6.0MB)

\[2020-01-22 17:00:35,947] INFO - Collecting boto3

-[2020-01-22 17:00:35,984] INFO -   Downloading https://files.pythonhosted.org/packages/ea/4f/a75bf88d30b79e08dd7930d9643aded0a79c9f696b307f353bb33f62cc5b/boto3-1.11.7-py2.py3-none-any.whl (128kB)

|[2020-01-22 17:00:36,246] INFO - Collecting alembic

\[2020-01-22 17:00:36,280] INFO -   Downloading https://files.pythonhosted.org/packages/9d/c9/d4aa3be3511dfd6d86f8f483ce0d9f120258be4aceadc17601843593e2ec/alembic-1.3.3.tar.gz (1.1MB)

\[2020-01-22 17:00:38,003] INFO - Collecting scikit-learn

-[2020-01-22 17:00:38,038] INFO -   Downloading https://files.pythonhosted.org/packages/73/db/7d8204ddba84ab5d1e4fd1af8f82bbe39c589488bee71e45c662f4144010/scikit_learn-0.22.1-cp37-cp37m-manylinux1_x86_64.whl (7.0MB)

/[2020-01-22 17:00:44,694] INFO - Requirement already satisfied: scipy in /opt/conda/lib/python3.7/site-packages (from lightgbm->-r /opt/program/requirements.txt (line 2)) (1.3.2)

[2020-01-22 17:00:44,696] INFO - Requirement already satisfied: six>=1.4.0 in /opt/conda/lib/python3.7/site-packages (from docker->bentoml==0.5.8->-r /opt/program/requirements.txt (line 1)) (1.12.0)

|[2020-01-22 17:00:44,762] INFO - Collecting websocket-client>=0.32.0

[2020-01-22 17:00:44,795] INFO -   Downloading https://files.pythonhosted.org/packages/4c/5f/f61b420143ed1c8dc69f9eaec5ff1ac36109d52c80de49d66e0c36c3dfdf/websocket_client-0.57.0-py2.py3-none-any.whl (200kB)

-[2020-01-22 17:00:44,945] INFO - Requirement already satisfied: setuptools>=3.0 in /opt/conda/lib/python3.7/site-packages (from gunicorn->bentoml==0.5.8->-r /opt/program/requirements.txt (line 1)) (41.4.0)

[2020-01-22 17:00:45,004] INFO - Collecting ruamel.yaml.clib>=0.1.2; platform_python_implementation == "CPython" and python_version < "3.8"

[2020-01-22 17:00:45,041] INFO -   Downloading https://files.pythonhosted.org/packages/40/80/da16b691d5e259dd9919a10628e541fca321cb4b078fbb88e1c7c22aa42d/ruamel.yaml.clib-0.2.0-cp37-cp37m-manylinux1_x86_64.whl (547kB)

|[2020-01-22 17:00:45,632] INFO - Collecting pytz>=2017.2

\[2020-01-22 17:00:45,679] INFO -   Downloading https://files.pythonhosted.org/packages/e7/f9/f0b53f88060247251bf481fa6ea62cd0d25bf1b11a87888e53ce5b7c8ad2/pytz-2019.3-py2.py3-none-any.whl (509kB)

-[2020-01-22 17:00:46,208] INFO - Collecting Jinja2>=2.10.1

[2020-01-22 17:00:46,239] INFO -   Downloading https://files.pythonhosted.org/packages/65/e0/eb35e762802015cab1ccee04e8a277b03f1d8e53da3ec3106882ec42558b/Jinja2-2.10.3-py2.py3-none-any.whl (125kB)

/[2020-01-22 17:00:46,367] INFO - Collecting itsdangerous>=0.24

|[2020-01-22 17:00:46,400] INFO -   Downloading https://files.pythonhosted.org/packages/76/ae/44b03b253d6fade317f32c24d100b3b35c2239807046a4c953c7b89fa49e/itsdangerous-1.1.0-py2.py3-none-any.whl

\[2020-01-22 17:00:46,491] INFO - Collecting Werkzeug>=0.15

[2020-01-22 17:00:46,526] INFO -   Downloading https://files.pythonhosted.org/packages/ce/42/3aeda98f96e85fd26180534d36570e4d18108d62ae36f87694b476b83d6f/Werkzeug-0.16.0-py2.py3-none-any.whl (327kB)

/[2020-01-22 17:00:46,724] INFO - Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.5.8->-r /opt/program/requirements.txt (line 1)) (2019.11.28)

[2020-01-22 17:00:46,726] INFO - Requirement already satisfied: idna<2.9,>=2.5 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.5.8->-r /opt/program/requirements.txt (line 1)) (2.8)

[2020-01-22 17:00:46,729] INFO - Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.5.8->-r /opt/program/requirements.txt (line 1)) (3.0.4)

[2020-01-22 17:00:46,734] INFO - Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/lib/python3.7/site-packages (from requests->bentoml==0.5.8->-r /opt/program/requirements.txt (line 1)) (1.24.2)

|[2020-01-22 17:00:46,842] INFO - Collecting pyparsing>=2.0.2

[2020-01-22 17:00:46,876] INFO -   Downloading https://files.pythonhosted.org/packages/5d/bc/1e58593167fade7b544bfe9502a26dc860940a79ab306e651e7f13be68c2/pyparsing-2.4.6-py2.py3-none-any.whl (67kB)

-[2020-01-22 17:00:47,485] INFO - Collecting botocore<1.15.0,>=1.14.7

/[2020-01-22 17:00:47,522] INFO -   Downloading https://files.pythonhosted.org/packages/10/d7/da416c5d6a8c61796dbc37875c886955798ca88385882725049af49d417a/botocore-1.14.7-py2.py3-none-any.whl (5.9MB)

/[2020-01-22 17:00:59,450] INFO - Collecting jmespath<1.0.0,>=0.7.1

|[2020-01-22 17:00:59,485] INFO -   Downloading https://files.pythonhosted.org/packages/83/94/7179c3832a6d45b266ddb2aac329e101367fbdb11f425f13771d27f225bb/jmespath-0.9.4-py2.py3-none-any.whl

\[2020-01-22 17:00:59,559] INFO - Collecting s3transfer<0.4.0,>=0.3.0

[2020-01-22 17:00:59,593] INFO -   Downloading https://files.pythonhosted.org/packages/de/6d/27abf73e66a05726dd52fb3a6645417b5dc86d90488b59589296dafbf054/s3transfer-0.3.1-py2.py3-none-any.whl (69kB)

-[2020-01-22 17:00:59,706] INFO - Collecting Mako

|[2020-01-22 17:00:59,903] INFO -   Downloading https://files.pythonhosted.org/packages/28/03/329b21f00243fc2d3815399413845dbbfb0745cff38a29d3597e97f8be58/Mako-1.1.1.tar.gz (468kB)

\[2020-01-22 17:01:00,810] INFO - Collecting python-editor>=0.3

[2020-01-22 17:01:00,845] INFO -   Downloading https://files.pythonhosted.org/packages/c6/d3/201fc3abe391bbae6606e6f1d598c15d367033332bd54352b12f35513717/python_editor-1.0.4-py3-none-any.whl

-[2020-01-22 17:01:00,950] INFO - Collecting joblib>=0.11

/[2020-01-22 17:01:00,986] INFO -   Downloading https://files.pythonhosted.org/packages/28/5c/cf6a2b65a321c4a209efcdf64c2689efae2cb62661f8f6f4bb28547cf1bf/joblib-0.14.1-py2.py3-none-any.whl (294kB)

/[2020-01-22 17:01:01,460] INFO - Collecting MarkupSafe>=0.23

|[2020-01-22 17:01:01,497] INFO -   Downloading https://files.pythonhosted.org/packages/98/7b/ff284bd8c80654e471b769062a9b43cc5d03e7a615048d96f4619df8d420/MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl

[2020-01-22 17:01:01,576] INFO - Collecting docutils<0.16,>=0.10

\[2020-01-22 17:01:01,610] INFO -   Downloading https://files.pythonhosted.org/packages/22/cd/a6aa959dca619918ccb55023b4cb151949c64d4d5d55b3f4ffd7eee0c6e8/docutils-0.15.2-py3-none-any.whl (547kB)

-[2020-01-22 17:01:02,964] INFO - Building wheels for collected packages: python-json-logger, tabulate, cerberus, prometheus-client, sqlalchemy, alembic, Mako

[2020-01-22 17:01:02,965] INFO -   Building wheel for python-json-logger (setup.py): started

\[2020-01-22 17:01:03,257] INFO -   Building wheel for python-json-logger (setup.py): finished with status 'done'

[2020-01-22 17:01:03,258] INFO -   Created wheel for python-json-logger: filename=python_json_logger-0.1.11-py2.py3-none-any.whl size=5076 sha256=4a000ec088dd0d565eed9ed4e8107d6a9823825d2441c35fabb475d67c73d60e

[2020-01-22 17:01:03,258] INFO -   Stored in directory: /root/.cache/pip/wheels/97/f7/a1/752e22bb30c1cfe38194ea0070a5c66e76ef4d06ad0c7dc401

[2020-01-22 17:01:03,263] INFO -   Building wheel for tabulate (setup.py): started

/[2020-01-22 17:01:03,534] INFO -   Building wheel for tabulate (setup.py): finished with status 'done'

[2020-01-22 17:01:03,534] INFO -   Created wheel for tabulate: filename=tabulate-0.8.6-cp37-none-any.whl size=23274 sha256=662ecb34c9909bfe354e49d231a1691d1089431556c34e7bbc22e252d53f0fd7
  Stored in directory: /root/.cache/pip/wheels/9c/9b/f4/eb243fdb89676ec00588e8c54bb54360724c06e7fafe95278e

[2020-01-22 17:01:03,539] INFO -   Building wheel for cerberus (setup.py): started

-[2020-01-22 17:01:03,811] INFO -   Building wheel for cerberus (setup.py): finished with status 'done'

[2020-01-22 17:01:03,812] INFO -   Created wheel for cerberus: filename=Cerberus-1.3.2-cp37-none-any.whl size=54336 sha256=323039d74a4f52d2ac41f509401c4aab605af0138be189b77eb02a76c0b342a1
  Stored in directory: /root/.cache/pip/wheels/e9/38/1f/f2cc84182676f3ae7134b9b2d744f9c235b24d2ddc8f7fe465

[2020-01-22 17:01:03,822] INFO -   Building wheel for prometheus-client (setup.py): started

\[2020-01-22 17:01:04,082] INFO -   Building wheel for prometheus-client (setup.py): finished with status 'done'

[2020-01-22 17:01:04,083] INFO -   Created wheel for prometheus-client: filename=prometheus_client-0.7.1-cp37-none-any.whl size=41402 sha256=06342c36c8be27e151132e4f5833607686b3948f8441a24c2643b6c99ab299ef
  Stored in directory: /root/.cache/pip/wheels/1c/54/34/fd47cd9b308826cc4292b54449c1899a30251ef3b506bc91ea

[2020-01-22 17:01:04,092] INFO -   Building wheel for sqlalchemy (setup.py): started

|[2020-01-22 17:01:05,603] INFO -   Building wheel for sqlalchemy (setup.py): finished with status 'done'

[2020-01-22 17:01:05,607] INFO -   Created wheel for sqlalchemy: filename=SQLAlchemy-1.3.13-cp37-cp37m-linux_x86_64.whl size=1223695 sha256=3f7e27e20da6eefa9fc7e87c4bb7adcea73ea6eb37c7327a0249f922756c3df2
  Stored in directory: /root/.cache/pip/wheels/b3/35/98/4c9cb3fd63d21d5606b972dd70643769745adf60e622467b71

\[2020-01-22 17:01:05,707] INFO -   Building wheel for alembic (setup.py): started

|[2020-01-22 17:01:06,051] INFO -   Building wheel for alembic (setup.py): finished with status 'done'

[2020-01-22 17:01:06,053] INFO -   Created wheel for alembic: filename=alembic-1.3.3-py2.py3-none-any.whl size=155684 sha256=be62f52fcb6519181de7cb12844452f11134d3f9c0d414d27e18b1ad6051364f

[2020-01-22 17:01:06,053] INFO -   Stored in directory: /root/.cache/pip/wheels/12/6a/49/94a4af65af2edbccf9f467c0f4b26f24d0e5b61be0d8a7e066

[2020-01-22 17:01:06,079] INFO -   Building wheel for Mako (setup.py): started

|[2020-01-22 17:01:06,458] INFO -   Building wheel for Mako (setup.py): finished with status 'done'

[2020-01-22 17:01:06,459] INFO -   Created wheel for Mako: filename=Mako-1.1.1-cp37-none-any.whl size=75411 sha256=2907d89cbeb01db48953413dcf4a6e7db3ca786a98db8be4b6f20f2ed8d4fb48

[2020-01-22 17:01:06,460] INFO -   Stored in directory: /root/.cache/pip/wheels/ff/50/a9/0ddeed8679a1fb65bf4677cb9c92701828b2c1821e22ef72fd

[2020-01-22 17:01:06,478] INFO - Successfully built python-json-logger tabulate cerberus prometheus-client sqlalchemy alembic Mako

/[2020-01-22 17:01:06,793] INFO - Installing collected packages: configparser, click, humanfriendly, websocket-client, docker, grpcio, python-json-logger, ruamel.yaml.clib, ruamel.yaml, tabulate, protobuf, cerberus, python-dateutil, pytz, pandas, MarkupSafe, Jinja2, itsdangerous, Werkzeug, flask, prometheus-client, pyparsing, packaging, sqlalchemy, jmespath, docutils, botocore, s3transfer, boto3, Mako, python-editor, alembic, bentoml, joblib, scikit-learn, lightgbm

|[2020-01-22 17:01:14,223] INFO - Successfully installed Jinja2-2.10.3 Mako-1.1.1 MarkupSafe-1.1.1 Werkzeug-0.16.0 alembic-1.3.3 bentoml-0.5.8 boto3-1.11.7 botocore-1.14.7 cerberus-1.3.2 click-7.0 configparser-4.0.2 docker-4.1.0 docutils-0.15.2 flask-1.1.1 grpcio-1.26.0 humanfriendly-4.18 itsdangerous-1.1.0 jmespath-0.9.4 joblib-0.14.1 lightgbm-2.3.1 packaging-20.0 pandas-0.25.3 prometheus-client-0.7.1 protobuf-3.11.2 pyparsing-2.4.6 python-dateutil-2.8.0 python-editor-1.0.4 python-json-logger-0.1.11 pytz-2019.3 ruamel.yaml-0.16.6 ruamel.yaml.clib-0.2.0 s3transfer-0.3.1 scikit-learn-0.22.1 sqlalchemy-1.3.13 tabulate-0.8.6 websocket-client-0.57.0

-[2020-01-22 17:01:18,567] INFO -  ---> 656eca4eed5b

[2020-01-22 17:01:18,569] INFO - Step 9/11 : RUN if [ -f /bento/bentoml_init.sh ]; then /bin/bash -c /bento/bentoml_init.sh; fi
[2020-01-22 17:01:18,570] INFO - 

|[2020-01-22 17:01:18,723] INFO -  ---> Running in 5324268d42c0

|[2020-01-22 17:01:19,916] INFO -  ---> be0eccca2e20

[2020-01-22 17:01:19,916] INFO - Step 10/11 : RUN if [ -f /opt/program/setup.sh ]; then /bin/bash -c /opt/program/setup.sh; fi
[2020-01-22 17:01:19,916] INFO - 

\[2020-01-22 17:01:20,081] INFO -  ---> Running in d6aef92a1bfc

|[2020-01-22 17:01:21,613] INFO -  ---> fa72965c33ad

[2020-01-22 17:01:21,614] INFO - Step 11/11 : ENV PATH="/opt/program:${PATH}"
[2020-01-22 17:01:21,614] INFO - 

-[2020-01-22 17:01:21,759] INFO -  ---> Running in ff2375210f56

|[2020-01-22 17:01:22,043] INFO -  ---> c7491cffe1c5

[2020-01-22 17:01:22,047] INFO - Successfully built c7491cffe1c5

\[2020-01-22 17:01:22,052] INFO - Successfully tagged 192023623294.dkr.ecr.us-west-2.amazonaws.com/titanicsurvivalpredictionservice-sagemaker:20200122154116_FCEE7A

/[2020-01-22 17:01:22,353] DEBUG - Pushing image to AWS ECR at 192023623294.dkr.ecr.us-west-2.amazonaws.com/titanicsurvivalpredictionservice-sagemaker:20200122154116_FCEE7A
|[2020-01-22 17:05:21,633] DEBUG - Finished pushing image: 192023623294.dkr.ecr.us-west-2.amazonaws.com/titanicsurvivalpredictionservice-sagemaker:20200122154116_FCEE7A
[2020-01-22 17:05:21,638] DEBUG - BentoML in debug mode, keeping temp directory "/private/var/folders/kn/xnc9k74x03567n1mx2tfqnpr0000gn/T/bentoml-temp-esrezr4x"
\[2020-01-22 17:05:23,830] DEBUG - AWS create model response: {'ModelArn': 'arn:aws:sagemaker:us-west-2:192023623294:model/dev-first-light--titanicsurvivalpredi-20200122154116-fcee7a', 'ResponseMetadata': {'RequestId': '681c52ed-7517-405c-92db-a7240e32d481', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '681c52ed-7517-405c-92db-a7240e32d481', 'content-type': 'application/x-amz-json-1.1', 'content-length': '121', 'date': 'Thu, 23 Jan 2020 01:05:22 GMT'}, 'RetryAttempts': 0}}
[2020-01-22 17:05:23,830] DEBUG - Creating Sagemaker endpoint dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A configuration
-[2020-01-22 17:05:23,906] DEBUG - AWS create endpoint config response: {'EndpointConfigArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint-config/dev-first-light--titanicsurvivalpredi-20200122154116-fcee7a', 'ResponseMetadata': {'RequestId': '41c7df55-4755-47c8-81e9-aa3433d69a02', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '41c7df55-4755-47c8-81e9-aa3433d69a02', 'content-type': 'application/x-amz-json-1.1', 'content-length': '140', 'date': 'Thu, 23 Jan 2020 01:05:22 GMT'}, 'RetryAttempts': 0}}
[2020-01-22 17:05:23,906] DEBUG - Creating sagemaker endpoint dev-first-light-bgm
|[2020-01-22 17:05:24,091] DEBUG - AWS create endpoint response: {'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'ResponseMetadata': {'RequestId': 'd3fe7adc-c2e3-49be-903b-b1ac7ca419b7', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'd3fe7adc-c2e3-49be-903b-b1ac7ca419b7', 'content-type': 'application/x-amz-json-1.1', 'content-length': '87', 'date': 'Thu, 23 Jan 2020 01:05:23 GMT'}, 'RetryAttempts': 0}}
[2020-01-22 17:05:24,112] INFO - ApplyDeployment (first-light-bgm, namespace dev) succeeded
-[2020-01-22 17:05:24,315] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '257abdff-85dc-40f9-8a7e-2a29f9cfd475', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '257abdff-85dc-40f9-8a7e-2a29f9cfd475', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:05:24 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:05:29,627] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '210d4b96-5987-4036-84fe-4135e1bcfabd', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '210d4b96-5987-4036-84fe-4135e1bcfabd', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:05:29 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:05:34,855] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '81cc8024-94f4-470f-a722-4a9c47f86ee1', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '81cc8024-94f4-470f-a722-4a9c47f86ee1', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:05:34 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:05:40,079] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '63bcf3d3-fcdd-4faa-a878-7ceb218aa5a8', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '63bcf3d3-fcdd-4faa-a878-7ceb218aa5a8', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:05:39 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:05:45,302] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '3b10b74b-6531-4b49-8800-07f1910801eb', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '3b10b74b-6531-4b49-8800-07f1910801eb', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:05:45 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:05:50,989] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'ef59c74e-a1c8-4747-a615-70cb1dbfeaec', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'ef59c74e-a1c8-4747-a615-70cb1dbfeaec', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:05:50 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:05:56,210] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '2fb48708-c9b8-4592-bdec-2e1d2e417d63', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '2fb48708-c9b8-4592-bdec-2e1d2e417d63', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:05:55 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:06:01,515] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'd376e67a-0bf5-4689-a7d9-eb01bc7f62cf', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'd376e67a-0bf5-4689-a7d9-eb01bc7f62cf', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:06:00 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:06:06,837] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '17081c42-4e14-4121-8a55-19ea4251bfe8', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '17081c42-4e14-4121-8a55-19ea4251bfe8', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:06:06 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:06:12,102] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'cb1afb1a-d49f-4de9-aebd-da7d8c55e673', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'cb1afb1a-d49f-4de9-aebd-da7d8c55e673', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:06:12 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:06:17,330] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'ef7dcd2a-dd8c-407c-8e53-a2951f85f72d', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'ef7dcd2a-dd8c-407c-8e53-a2951f85f72d', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:06:16 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:06:22,555] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '2346e4d4-cb09-4aa3-bb9a-44215069af07', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '2346e4d4-cb09-4aa3-bb9a-44215069af07', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:06:22 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:06:27,764] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '8c7667d8-14ce-4fef-9bbf-dfd9f8257985', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '8c7667d8-14ce-4fef-9bbf-dfd9f8257985', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:06:27 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:06:32,972] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '56b5f811-7a97-4f6a-803d-49e320662879', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '56b5f811-7a97-4f6a-803d-49e320662879', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:06:32 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:06:38,204] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '7d0a761e-1160-4924-8f2a-9a66c231ac8e', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '7d0a761e-1160-4924-8f2a-9a66c231ac8e', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:06:37 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:06:43,463] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'a735cdaa-21c9-45a4-8889-bb13fdead0b8', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'a735cdaa-21c9-45a4-8889-bb13fdead0b8', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:06:43 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:06:48,675] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '18424a71-1892-464d-8af5-69d74974ec84', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '18424a71-1892-464d-8af5-69d74974ec84', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:06:48 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:06:53,897] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '25f11b5b-b9b2-4d76-bc81-cf9d4f0b508e', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '25f11b5b-b9b2-4d76-bc81-cf9d4f0b508e', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:06:53 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:06:59,127] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'b7ac2156-3dba-484f-979a-41966b7e42d8', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'b7ac2156-3dba-484f-979a-41966b7e42d8', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:06:58 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:07:04,365] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '66ffc7c3-64f5-4963-9e1a-d84e6a7243c9', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '66ffc7c3-64f5-4963-9e1a-d84e6a7243c9', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:07:03 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:07:09,586] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'ffe61c59-6b9d-44b6-969b-903d3858b066', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'ffe61c59-6b9d-44b6-969b-903d3858b066', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:07:08 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:07:14,807] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'b7dc1ed5-00df-4d86-8a02-fbcb5d8ec0d2', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'b7dc1ed5-00df-4d86-8a02-fbcb5d8ec0d2', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:07:14 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:07:20,017] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '0e03dfdb-0868-449f-80fe-0380e1ab7363', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '0e03dfdb-0868-449f-80fe-0380e1ab7363', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:07:19 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:07:26,252] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'b3cfefd3-828f-457f-add4-ea7159fc28dd', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'b3cfefd3-828f-457f-add4-ea7159fc28dd', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:07:25 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:07:31,464] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '3336de0d-8292-44b8-9712-138136a880a2', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '3336de0d-8292-44b8-9712-138136a880a2', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:07:30 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:07:36,666] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '56c6de0a-2106-40a6-8f87-a472fc7c17ce', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '56c6de0a-2106-40a6-8f87-a472fc7c17ce', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:07:36 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:07:41,874] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '66bc8a2d-431d-406a-a328-46d81ea99078', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '66bc8a2d-431d-406a-a328-46d81ea99078', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:07:41 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:07:47,099] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '8b2d75d1-cea3-417f-a95a-38613fa09c6c', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '8b2d75d1-cea3-417f-a95a-38613fa09c6c', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:07:46 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:07:52,312] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'd9a62193-1fa7-443d-b280-2a297b9e1eaf', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'd9a62193-1fa7-443d-b280-2a297b9e1eaf', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:07:51 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:07:57,526] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'f0bbe1eb-d341-424b-aad5-df534850aaf6', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'f0bbe1eb-d341-424b-aad5-df534850aaf6', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:07:57 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:08:02,786] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '7ede7f43-b7ce-4e44-8be1-88d22e9ee698', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '7ede7f43-b7ce-4e44-8be1-88d22e9ee698', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:08:02 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:08:07,990] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'bf85da38-576f-4423-a253-91ccd07487b9', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'bf85da38-576f-4423-a253-91ccd07487b9', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:08:07 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:08:13,195] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'da994033-5f3c-4f76-9b44-53f8e86d69f3', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'da994033-5f3c-4f76-9b44-53f8e86d69f3', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:08:12 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:08:18,401] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '580a0990-b526-4f14-9566-abaefcdfb6cc', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '580a0990-b526-4f14-9566-abaefcdfb6cc', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:08:18 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:08:23,619] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'f11ed820-aedb-4959-b465-7c9aecede1a8', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'f11ed820-aedb-4959-b465-7c9aecede1a8', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:08:23 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:08:28,834] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'ee688212-5fd2-4acd-be5f-6b4364bd804e', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'ee688212-5fd2-4acd-be5f-6b4364bd804e', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:08:28 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:08:34,094] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '992dd800-0106-4aa9-a0b1-58a87dc5613a', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '992dd800-0106-4aa9-a0b1-58a87dc5613a', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:08:33 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:08:39,301] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '937482d0-0f6a-4a44-a2f6-b542b90bda6a', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '937482d0-0f6a-4a44-a2f6-b542b90bda6a', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:08:38 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:08:44,500] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'd9ae43bd-fb78-450c-96fa-9055b94bb7c7', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'd9ae43bd-fb78-450c-96fa-9055b94bb7c7', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:08:43 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:08:49,727] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'fe95e509-523b-4d93-bff2-5f2b23c5ad4b', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'fe95e509-523b-4d93-bff2-5f2b23c5ad4b', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:08:49 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:08:54,946] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '409dbc90-471e-4f12-b1ec-35744833c155', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '409dbc90-471e-4f12-b1ec-35744833c155', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:08:54 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:09:00,168] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '0591426c-766a-4f38-a9a2-c4a51356fc0a', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '0591426c-766a-4f38-a9a2-c4a51356fc0a', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:08:59 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:09:05,389] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '2f251fea-9e09-41db-91b4-804c16333322', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '2f251fea-9e09-41db-91b4-804c16333322', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:09:05 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:09:10,593] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'b3fdf3b8-11d3-4fe9-8ca5-a276fc6d6b81', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'b3fdf3b8-11d3-4fe9-8ca5-a276fc6d6b81', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:09:09 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:09:15,808] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'c730c505-b777-45a0-a6b8-8fd72b815383', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'c730c505-b777-45a0-a6b8-8fd72b815383', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:09:15 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:09:21,058] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '581e6d5d-537d-42b4-b4d4-f5f22cc25ac4', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '581e6d5d-537d-42b4-b4d4-f5f22cc25ac4', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:09:20 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:09:26,286] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'e5de734c-1962-4dfa-9dc0-e920d6aca087', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'e5de734c-1962-4dfa-9dc0-e920d6aca087', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:09:25 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:09:31,529] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'c34be0bd-5fef-4045-8318-2aaa12dd1ad8', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'c34be0bd-5fef-4045-8318-2aaa12dd1ad8', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:09:31 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:09:36,734] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'be676eed-6db8-40fa-832a-1cb67b6faf54', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'be676eed-6db8-40fa-832a-1cb67b6faf54', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:09:35 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:09:41,954] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '4c2e1870-eb83-4a3e-8ce6-088fea4a0f1b', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '4c2e1870-eb83-4a3e-8ce6-088fea4a0f1b', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:09:41 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:09:47,163] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'e95e63b5-bb39-4223-80ab-1f767ce40b77', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'e95e63b5-bb39-4223-80ab-1f767ce40b77', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:09:47 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:09:52,386] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'd299d5aa-3d02-4c14-bb4e-9b23d5fed812', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'd299d5aa-3d02-4c14-bb4e-9b23d5fed812', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:09:52 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:09:57,603] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'a0689dec-0b5e-4cdc-a13c-c9473e14a01b', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'a0689dec-0b5e-4cdc-a13c-c9473e14a01b', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:09:56 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:10:02,817] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '21c3b99d-3449-46fc-b495-bfab677575d5', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '21c3b99d-3449-46fc-b495-bfab677575d5', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:10:02 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:10:08,015] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '47dabcfc-5fc1-4830-abd8-a435425d3f46', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '47dabcfc-5fc1-4830-abd8-a435425d3f46', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:10:07 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:10:13,266] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'd4c54a20-3af6-4f58-a4ba-6f984afcaaaf', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'd4c54a20-3af6-4f58-a4ba-6f984afcaaaf', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:10:12 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:10:18,494] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'c7110e0f-830b-4388-bdc1-d39aa7b8793f', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'c7110e0f-830b-4388-bdc1-d39aa7b8793f', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:10:17 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:10:23,714] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '2165a844-887c-44f8-a33a-1cc1cca9101d', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '2165a844-887c-44f8-a33a-1cc1cca9101d', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:10:23 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:10:28,921] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '3e1f42d2-73f0-4ab4-ab07-c30df872efee', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '3e1f42d2-73f0-4ab4-ab07-c30df872efee', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:10:28 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:10:34,143] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '51ecfef0-62e2-4234-b114-b5b3cbba1618', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '51ecfef0-62e2-4234-b114-b5b3cbba1618', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:10:33 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:10:39,398] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '6cfaf92f-0c53-44cf-ab02-73095c79b160', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '6cfaf92f-0c53-44cf-ab02-73095c79b160', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:10:39 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:10:44,608] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '59633462-0d24-4e02-bcfc-8329a58767c7', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '59633462-0d24-4e02-bcfc-8329a58767c7', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:10:44 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:10:50,063] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'af391216-5c8c-4846-8ed3-a6946c5a4181', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'af391216-5c8c-4846-8ed3-a6946c5a4181', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:10:49 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:10:55,284] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '8edc0127-a2db-491f-9887-1da165bda6e2', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '8edc0127-a2db-491f-9887-1da165bda6e2', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:10:54 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:11:00,517] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '2c2a1ba3-dc3c-43ce-881b-5e0698716cf8', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '2c2a1ba3-dc3c-43ce-881b-5e0698716cf8', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:10:59 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:11:05,719] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '315ec6bd-7989-46a5-a667-f4276a1f5d85', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '315ec6bd-7989-46a5-a667-f4276a1f5d85', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:11:05 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:11:10,923] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '293e4255-b7f3-4588-b6cc-e2c7fd420b13', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '293e4255-b7f3-4588-b6cc-e2c7fd420b13', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:11:10 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:11:16,138] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'f5322a60-4478-4d7c-901e-c504ee1723ed', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'f5322a60-4478-4d7c-901e-c504ee1723ed', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:11:15 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:11:21,351] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '1568217a-e4e2-45ee-b689-49f6838f31d1', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '1568217a-e4e2-45ee-b689-49f6838f31d1', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:11:20 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:11:26,572] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '66275155-495e-4308-bd78-808a82ef5119', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '66275155-495e-4308-bd78-808a82ef5119', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:11:25 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:11:31,823] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '0d01f956-1a0e-4ae3-8cb4-226b3c25abf7', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '0d01f956-1a0e-4ae3-8cb4-226b3c25abf7', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:11:31 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:11:37,034] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '641309ec-870a-4356-b5bd-af1154dd144f', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '641309ec-870a-4356-b5bd-af1154dd144f', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:11:36 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:11:42,257] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '8a7aa9a6-37a8-42c5-aca5-53d4c15bd58a', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '8a7aa9a6-37a8-42c5-aca5-53d4c15bd58a', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:11:41 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:11:47,470] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '0fd1de83-2a4e-464e-b63d-f1f9bc43db62', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '0fd1de83-2a4e-464e-b63d-f1f9bc43db62', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:11:47 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:11:52,692] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '61ab943c-a3f8-4125-8344-26a1fb125352', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '61ab943c-a3f8-4125-8344-26a1fb125352', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:11:52 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:11:57,956] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '885d662c-6ee8-4a86-a11e-66f53a9516b4', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '885d662c-6ee8-4a86-a11e-66f53a9516b4', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:11:57 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:12:03,156] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'b99999b9-5b0e-4d33-9a3a-aa9f29a0c0f6', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'b99999b9-5b0e-4d33-9a3a-aa9f29a0c0f6', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:12:02 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:12:08,370] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '14144ca3-699d-401b-a397-bef9b7ec821c', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '14144ca3-699d-401b-a397-bef9b7ec821c', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:12:07 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:12:13,576] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '4f868501-ca68-45c2-b132-f3c9ee846851', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '4f868501-ca68-45c2-b132-f3c9ee846851', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:12:12 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:12:18,783] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '9763197c-407f-4e36-8c5f-d13ce89f2493', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '9763197c-407f-4e36-8c5f-d13ce89f2493', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:12:18 GMT'}, 'RetryAttempts': 0}}
|[2020-01-22 17:12:23,998] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': 'a76c07f5-5537-41c7-aad2-0a168cd34984', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'a76c07f5-5537-41c7-aad2-0a168cd34984', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:12:23 GMT'}, 'RetryAttempts': 0}}
/[2020-01-22 17:12:29,219] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '62c6bb6c-fb28-4d04-8dd9-36fbdf1b882a', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '62c6bb6c-fb28-4d04-8dd9-36fbdf1b882a', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:12:28 GMT'}, 'RetryAttempts': 0}}
-[2020-01-22 17:12:34,417] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'EndpointStatus': 'Creating', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '546bfd62-fd21-414b-882b-aa38e06fcf63', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '546bfd62-fd21-414b-882b-aa38e06fcf63', 'content-type': 'application/x-amz-json-1.1', 'content-length': '303', 'date': 'Thu, 23 Jan 2020 01:12:33 GMT'}, 'RetryAttempts': 0}}
\[2020-01-22 17:12:39,658] DEBUG - AWS describe endpoint response: {'EndpointName': 'dev-first-light-bgm', 'EndpointArn': 'arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm', 'EndpointConfigName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'ProductionVariants': [{'VariantName': 'dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A', 'DeployedImages': [{'SpecifiedImage': '192023623294.dkr.ecr.us-west-2.amazonaws.com/titanicsurvivalpredictionservice-sagemaker:20200122154116_FCEE7A', 'ResolvedImage': '192023623294.dkr.ecr.us-west-2.amazonaws.com/[email protected]:878340123880c3da4859a61d8898d2a6766b320141f03e25c1c056ff23a2a459', 'ResolutionTime': datetime.datetime(2020, 1, 22, 17, 5, 26, 617000, tzinfo=tzlocal())}], 'CurrentWeight': 1.0, 'DesiredWeight': 1.0, 'CurrentInstanceCount': 1, 'DesiredInstanceCount': 1}], 'EndpointStatus': 'InService', 'CreationTime': datetime.datetime(2020, 1, 22, 17, 5, 24, 56000, tzinfo=tzlocal()), 'LastModifiedTime': datetime.datetime(2020, 1, 22, 17, 12, 38, 539000, tzinfo=tzlocal()), 'ResponseMetadata': {'RequestId': '5bf734ce-ce38-485e-976b-61c6a9c88bc7', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': '5bf734ce-ce38-485e-976b-61c6a9c88bc7', 'content-type': 'application/x-amz-json-1.1', 'content-length': '857', 'date': 'Thu, 23 Jan 2020 01:12:39 GMT'}, 'RetryAttempts': 0}}
Successfully created AWS Sagemaker deployment first-light-bgm
{
  "namespace": "dev",
  "name": "first-light-bgm",
  "spec": {
    "bentoName": "TitanicSurvivalPredictionService",
    "bentoVersion": "20200122154116_FCEE7A",
    "operator": "AWS_SAGEMAKER",
    "sagemakerOperatorConfig": {
      "region": "us-west-2",
      "instanceType": "ml.m4.xlarge",
      "instanceCount": 1,
      "apiName": "predict"
    }
  },
  "state": {
    "state": "RUNNING",
    "infoJson": {
      "EndpointName": "dev-first-light-bgm",
      "EndpointArn": "arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm",
      "EndpointConfigName": "dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A",
      "ProductionVariants": [
        {
          "VariantName": "dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A",
          "DeployedImages": [
            {
              "SpecifiedImage": "192023623294.dkr.ecr.us-west-2.amazonaws.com/titanicsurvivalpredictionservice-sagemaker:20200122154116_FCEE7A",
              "ResolvedImage": "192023623294.dkr.ecr.us-west-2.amazonaws.com/[email protected]:878340123880c3da4859a61d8898d2a6766b320141f03e25c1c056ff23a2a459",
              "ResolutionTime": "2020-01-22 17:05:26.617000-08:00"
            }
          ],
          "CurrentWeight": 1.0,
          "DesiredWeight": 1.0,
          "CurrentInstanceCount": 1,
          "DesiredInstanceCount": 1
        }
      ],
      "EndpointStatus": "InService",
      "CreationTime": "2020-01-22 17:05:24.056000-08:00",
      "LastModifiedTime": "2020-01-22 17:12:38.539000-08:00",
      "ResponseMetadata": {
        "RequestId": "5bf734ce-ce38-485e-976b-61c6a9c88bc7",
        "HTTPStatusCode": 200,
        "HTTPHeaders": {
          "x-amzn-requestid": "5bf734ce-ce38-485e-976b-61c6a9c88bc7",
          "content-type": "application/x-amz-json-1.1",
          "content-length": "857",
          "date": "Thu, 23 Jan 2020 01:12:39 GMT"
        },
        "RetryAttempts": 0
      }
    },
    "timestamp": "2020-01-23T01:12:39.659065Z"
  },
  "createdAt": "2020-01-23T00:59:41.134425Z",
  "lastUpdatedAt": "2020-01-23T00:59:41.134465Z"
}

Use bentoml sagemaker get DEPLOYMENT_NAME to get latest state and other information such as endpoint

In [25]:
!bentoml sagemaker get first-light-bgm
{
  "namespace": "dev",
  "name": "first-light-bgm",
  "spec": {
    "bentoName": "TitanicSurvivalPredictionService",
    "bentoVersion": "20200122154116_FCEE7A",
    "operator": "AWS_SAGEMAKER",
    "sagemakerOperatorConfig": {
      "region": "us-west-2",
      "instanceType": "ml.m4.xlarge",
      "instanceCount": 1,
      "apiName": "predict"
    }
  },
  "state": {
    "state": "RUNNING",
    "infoJson": {
      "EndpointName": "dev-first-light-bgm",
      "EndpointArn": "arn:aws:sagemaker:us-west-2:192023623294:endpoint/dev-first-light-bgm",
      "EndpointConfigName": "dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A",
      "ProductionVariants": [
        {
          "VariantName": "dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A",
          "DeployedImages": [
            {
              "SpecifiedImage": "192023623294.dkr.ecr.us-west-2.amazonaws.com/titanicsurvivalpredictionservice-sagemaker:20200122154116_FCEE7A",
              "ResolvedImage": "192023623294.dkr.ecr.us-west-2.amazonaws.com/[email protected]:878340123880c3da4859a61d8898d2a6766b320141f03e25c1c056ff23a2a459",
              "ResolutionTime": "2020-01-22 17:05:26.617000-08:00"
            }
          ],
          "CurrentWeight": 1.0,
          "DesiredWeight": 1.0,
          "CurrentInstanceCount": 1,
          "DesiredInstanceCount": 1
        }
      ],
      "EndpointStatus": "InService",
      "CreationTime": "2020-01-22 17:05:24.056000-08:00",
      "LastModifiedTime": "2020-01-22 17:12:38.539000-08:00",
      "ResponseMetadata": {
        "RequestId": "3eda8b6d-affe-4ef4-9696-020fa716083b",
        "HTTPStatusCode": 200,
        "HTTPHeaders": {
          "x-amzn-requestid": "3eda8b6d-affe-4ef4-9696-020fa716083b",
          "content-type": "application/x-amz-json-1.1",
          "content-length": "857",
          "date": "Thu, 23 Jan 2020 01:13:19 GMT"
        },
        "RetryAttempts": 0
      }
    },
    "timestamp": "2020-01-23T01:13:19.544150Z"
  },
  "createdAt": "2020-01-23T00:59:41.134425Z",
  "lastUpdatedAt": "2020-01-23T00:59:41.134465Z"
}

Test our sagemaker deployment with a sample data

In [29]:
!aws sagemaker-runtime invoke-endpoint --endpoint-name dev-first-light-bgm \
  --body '{"PassengerId":{"3":895},"Pclass":{"3":3},"Name":{"3":"Wirz, Mr. Albert"},"Sex":{"3":"male"},"Age":{"3":27.0},"SibSp":{"3":0},"Parch":{"3":0},"Ticket":{"3":"315154"},"Fare":{"3":8.6625},"Cabin":{"3":null},"Embarked":{"3":"S"},"pred":{"3":0.5045963287}}' \
  --content-type "application/json" \
  output.json && cat output.json
{
    "ContentType": "application/json",
    "InvokedProductionVariant": "dev-first-light--TitanicSurvivalPredi-20200122154116-FCEE7A"
}
[0.5045963286563061]

bentoml sagemaker list command provides an overview of all of the Sagemaker deployments

In [30]:
!bentoml sagemaker list
NAME             NAMESPACE    LABELS    PLATFORM       STATUS    AGE
first-light-bgm  dev                    aws-sagemaker  running   14 minutes and 37 seconds

bentoml sagemaker delete deletes the sagemaker deployment and related resources on AWS

In [31]:
!bentoml sagemaker delete first-light-bgm
Successfully deleted AWS Sagemaker deployment "first-light-bgm"
In [ ]: