Skip to content

Commit 056a09e

Browse files
cj-zhanggwang111Joseph Zhang
authored andcommitted
fix: fix flaky Inference Recommender integration tests (aws#4156)
Co-authored-by: Gary Wang <[email protected]> Co-authored-by: Joseph Zhang <[email protected]>
1 parent 327d673 commit 056a09e

File tree

2 files changed

+24
-6
lines changed

2 files changed

+24
-6
lines changed

src/sagemaker/inference_recommender/inference_recommender_mixin.py

+14-5
Original file line numberDiff line numberDiff line change
@@ -302,11 +302,7 @@ def _update_params_for_right_size(
302302
)
303303
return None
304304

305-
instance_type = self.inference_recommendations[0]["EndpointConfiguration"]["InstanceType"]
306-
initial_instance_count = self.inference_recommendations[0]["EndpointConfiguration"][
307-
"InitialInstanceCount"
308-
]
309-
return (instance_type, initial_instance_count)
305+
return self._filter_recommendations_for_realtime()
310306

311307
def _update_params_for_recommendation_id(
312308
self,
@@ -610,3 +606,16 @@ def _search_recommendation(self, recommendation_list, inference_recommendation_i
610606
),
611607
None,
612608
)
609+
610+
# TODO: until we have bandwidth to integrate right_size + deploy with serverless
611+
def _filter_recommendations_for_realtime(self):
612+
"""Filter recommendations list to find a realtime instance"""
613+
instance_type = None
614+
initial_instance_count = None
615+
for recommendations in self.inference_recommendations:
616+
if "ServerlessConfig" not in recommendations["EndpointConfiguration"]:
617+
instance_type = recommendations["EndpointConfiguration"]["InstanceType"]
618+
initial_instance_count = recommendations["EndpointConfiguration"][
619+
"InitialInstanceCount"
620+
]
621+
return (instance_type, initial_instance_count)

tests/integ/test_inference_recommender.py

+10-1
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,8 @@ def test_deploy_inference_recommendation_id_with_registered_model_sklearn(
460460
rec_res = sagemaker_session.sagemaker_client.describe_inference_recommendations_job(
461461
JobName=ir_job_name
462462
)
463-
rec_id = rec_res["InferenceRecommendations"][0]["RecommendationId"]
463+
464+
rec_id = get_realtime_recommendation_id(recommendation_list=rec_res["InferenceRecommendations"])
464465

465466
with timeout(minutes=45):
466467
try:
@@ -537,3 +538,11 @@ def poll_for_deployment_recommendation(created_base_model, sagemaker_session):
537538
except Exception as e:
538539
created_base_model.delete_model()
539540
raise e
541+
542+
543+
def get_realtime_recommendation_id(recommendation_list):
544+
"""Search recommendation based on recommendation id"""
545+
next(
546+
(rec["RecommendationId"] for rec in recommendation_list if "InstanceType" in rec),
547+
None,
548+
)

0 commit comments

Comments
 (0)