Skip to content

Commit 2db200e

Browse files
committed
breaking: deprecate delete_endpoint() for estimators and HyperparameterTuner
1 parent f9628f8 commit 2db200e

File tree

7 files changed

+7
-76
lines changed

7 files changed

+7
-76
lines changed

doc/overview.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ Here is an end to end example of how to use a SageMaker Estimator:
116116
# Deletes the SageMaker model
117117
mxnet_predictor.delete_model()
118118
119-
The example above will eventually delete both the SageMaker endpoint and endpoint configuration through `delete_endpoint()`. If you want to keep your SageMaker endpoint configuration, use the value False for the `delete_endpoint_config` parameter, as shown below.
119+
The example above will eventually delete both the SageMaker endpoint and endpoint configuration through ``delete_endpoint()``. If you want to keep your SageMaker endpoint configuration, use the value False for the ``delete_endpoint_config`` parameter, as shown below.
120120

121121
.. code:: python
122122
@@ -180,10 +180,10 @@ Here is an example:
180180
train_input = algo.sagemaker_session.upload_data(path='/path/to/your/data')
181181
182182
algo.fit({'training': train_input})
183-
algo.deploy(1, 'ml.m4.xlarge')
183+
predictor = algo.deploy(1, 'ml.m4.xlarge')
184184
185185
# When you are done using your endpoint
186-
algo.delete_endpoint()
186+
predictor.delete_endpoint()
187187
188188
Use Scripts Stored in a Git Repository
189189
--------------------------------------
@@ -609,7 +609,7 @@ Here is a basic example of how to use it:
609609
response = my_predictor.predict(my_prediction_data)
610610
611611
# Tear down the SageMaker endpoint
612-
my_tuner.delete_endpoint()
612+
my_predictor.delete_endpoint()
613613
614614
This example shows a hyperparameter tuning job that creates up to 100 training jobs, running up to 10 training jobs at a time.
615615
Each training job's learning rate is a value between 0.05 and 0.06, but this value will differ between training jobs.

src/sagemaker/estimator.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -820,15 +820,6 @@ class constructor
820820

821821
return init_params
822822

823-
def delete_endpoint(self):
824-
"""Delete an Amazon SageMaker ``Endpoint``.
825-
826-
Raises:
827-
botocore.exceptions.ClientError: If the endpoint does not exist.
828-
"""
829-
self._ensure_latest_training_job(error_message="Endpoint was not created yet")
830-
self.sagemaker_session.delete_endpoint(self.latest_training_job.name)
831-
832823
def transformer(
833824
self,
834825
instance_count,

src/sagemaker/tuner.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -820,18 +820,6 @@ def _get_best_training_job(self):
820820
)
821821
)
822822

823-
def delete_endpoint(self, endpoint_name=None):
824-
"""Delete an Amazon SageMaker endpoint.
825-
826-
If an endpoint name is not specified, this defaults to looking for an
827-
endpoint that shares a name with the best training job for deletion.
828-
829-
Args:
830-
endpoint_name (str): Name of the endpoint to delete
831-
"""
832-
endpoint_name = endpoint_name or self.best_training_job()
833-
self.sagemaker_session.delete_endpoint(endpoint_name)
834-
835823
def _ensure_last_tuning_job(self):
836824
"""Placeholder docstring"""
837825
if self.latest_tuning_job is None:

tests/integ/test_local_mode.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ def test_mxnet_local_mode(sagemaker_local_session, mxnet_full_version, mxnet_ful
151151
data = numpy.zeros(shape=(1, 1, 28, 28))
152152
predictor.predict(data)
153153
finally:
154-
mx.delete_endpoint()
154+
predictor.delete_endpoint()
155155

156156

157157
@pytest.mark.local_mode
@@ -209,7 +209,7 @@ def test_mxnet_local_data_local_script(mxnet_full_version, mxnet_full_py_version
209209
data = numpy.zeros(shape=(1, 1, 28, 28))
210210
predictor.predict(data)
211211
finally:
212-
mx.delete_endpoint()
212+
predictor.delete_endpoint()
213213

214214

215215
@pytest.mark.local_mode

tests/integ/test_source_dirs.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,4 @@ def test_source_dirs(tmpdir, sagemaker_local_session):
5151
predict_response = predictor.predict([7])
5252
assert predict_response == [49]
5353
finally:
54-
estimator.delete_endpoint()
54+
predictor.delete_endpoint()

tests/unit/test_estimator.py

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -636,42 +636,6 @@ def test_start_new_wait_called(strftime, sagemaker_session):
636636
assert sagemaker_session.wait_for_job.assert_called_once
637637

638638

639-
def test_delete_endpoint(sagemaker_session):
640-
t = DummyFramework(
641-
entry_point=SCRIPT_PATH,
642-
role="DummyRole",
643-
sagemaker_session=sagemaker_session,
644-
train_instance_count=INSTANCE_COUNT,
645-
train_instance_type=INSTANCE_TYPE,
646-
container_log_level=logging.INFO,
647-
)
648-
649-
class tj(object):
650-
@property
651-
def name(self):
652-
return "myjob"
653-
654-
t.latest_training_job = tj()
655-
656-
t.delete_endpoint()
657-
658-
sagemaker_session.delete_endpoint.assert_called_with("myjob")
659-
660-
661-
def test_delete_endpoint_without_endpoint(sagemaker_session):
662-
t = DummyFramework(
663-
entry_point=SCRIPT_PATH,
664-
role="DummyRole",
665-
sagemaker_session=sagemaker_session,
666-
train_instance_count=INSTANCE_COUNT,
667-
train_instance_type=INSTANCE_TYPE,
668-
)
669-
670-
with pytest.raises(ValueError) as error:
671-
t.delete_endpoint()
672-
assert "Endpoint was not created yet" in str(error)
673-
674-
675639
def test_enable_cloudwatch_metrics(sagemaker_session):
676640
fw = DummyFramework(
677641
entry_point=SCRIPT_PATH,

tests/unit/test_tuner.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -917,18 +917,6 @@ def test_wait(tuner):
917917
tuner.estimator.sagemaker_session.wait_for_tuning_job.assert_called_once_with(JOB_NAME)
918918

919919

920-
def test_delete_endpoint(tuner):
921-
tuner.latest_tuning_job = _TuningJob(tuner.estimator.sagemaker_session, JOB_NAME)
922-
923-
tuning_job_description = {"BestTrainingJob": {"TrainingJobName": JOB_NAME}}
924-
tuner.estimator.sagemaker_session.sagemaker_client.describe_hyper_parameter_tuning_job = Mock(
925-
name="describe_hyper_parameter_tuning_job", return_value=tuning_job_description
926-
)
927-
928-
tuner.delete_endpoint()
929-
tuner.sagemaker_session.delete_endpoint.assert_called_with(JOB_NAME)
930-
931-
932920
def test_fit_no_inputs(tuner, sagemaker_session):
933921
script_path = os.path.join(DATA_DIR, "mxnet_mnist", "failure_script.py")
934922
tuner.estimator = MXNet(

0 commit comments

Comments
 (0)