Skip to content

Commit 30d0c21

Browse files
author
Pravali Uppugunduri
committed
fix: Update all model server prepare.py to use plain SHA-256
Remove generate_secret_key import and usage from TorchServe, MMS, TF Serving, and SMD prepare functions. Switch compute_hash calls from HMAC-SHA256 to plain SHA-256 (no secret_key parameter). This is required because generate_secret_key was removed from check_integrity.py in the previous commit. Without this change, all model server imports fail with ImportError.
1 parent 644fc16 commit 30d0c21

File tree

5 files changed

+10
-19
lines changed

5 files changed

+10
-19
lines changed

sagemaker-serve/src/sagemaker/serve/model_server/multi_model_server/prepare.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
from sagemaker.serve.spec.inference_spec import InferenceSpec
2727
from sagemaker.serve.detector.dependency_manager import capture_dependencies
2828
from sagemaker.serve.validations.check_integrity import (
29-
generate_secret_key,
3029
compute_hash,
3130
)
3231
from sagemaker.core.remote_function.core.serialization import _MetaData
@@ -119,11 +118,10 @@ def prepare_for_mms(
119118

120119
capture_dependencies(dependencies=dependencies, work_dir=code_dir)
121120

122-
secret_key = generate_secret_key()
123121
with open(str(code_dir.joinpath("serve.pkl")), "rb") as f:
124122
buffer = f.read()
125-
hash_value = compute_hash(buffer=buffer, secret_key=secret_key)
123+
hash_value = compute_hash(buffer=buffer)
126124
with open(str(code_dir.joinpath("metadata.json")), "wb") as metadata:
127125
metadata.write(_MetaData(hash_value).to_json())
128126

129-
return secret_key
127+
return ""

sagemaker-serve/src/sagemaker/serve/model_server/smd/prepare.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
from sagemaker.serve.spec.inference_spec import InferenceSpec
1313
from sagemaker.serve.detector.dependency_manager import capture_dependencies
1414
from sagemaker.serve.validations.check_integrity import (
15-
generate_secret_key,
1615
compute_hash,
1716
)
1817
from sagemaker.core.remote_function.core.serialization import _MetaData
@@ -64,11 +63,10 @@ def prepare_for_smd(
6463

6564
capture_dependencies(dependencies=dependencies, work_dir=code_dir)
6665

67-
secret_key = generate_secret_key()
6866
with open(str(code_dir.joinpath("serve.pkl")), "rb") as f:
6967
buffer = f.read()
70-
hash_value = compute_hash(buffer=buffer, secret_key=secret_key)
68+
hash_value = compute_hash(buffer=buffer)
7169
with open(str(code_dir.joinpath("metadata.json")), "wb") as metadata:
7270
metadata.write(_MetaData(hash_value).to_json())
7371

74-
return secret_key
72+
return ""

sagemaker-serve/src/sagemaker/serve/model_server/tensorflow_serving/prepare.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
)
1212
from sagemaker.serve.detector.dependency_manager import capture_dependencies
1313
from sagemaker.serve.validations.check_integrity import (
14-
generate_secret_key,
1514
compute_hash,
1615
)
1716
from sagemaker.core.remote_function.core.serialization import _MetaData
@@ -57,11 +56,10 @@ def prepare_for_tf_serving(
5756
raise ValueError("SavedModel is not found for Tensorflow or Keras flavor.")
5857
_move_contents(src_dir=mlflow_saved_model_dir, dest_dir=saved_model_bundle_dir)
5958

60-
secret_key = generate_secret_key()
6159
with open(str(code_dir.joinpath("serve.pkl")), "rb") as f:
6260
buffer = f.read()
63-
hash_value = compute_hash(buffer=buffer, secret_key=secret_key)
61+
hash_value = compute_hash(buffer=buffer)
6462
with open(str(code_dir.joinpath("metadata.json")), "wb") as metadata:
6563
metadata.write(_MetaData(hash_value).to_json())
6664

67-
return secret_key
65+
return ""

sagemaker-serve/src/sagemaker/serve/model_server/torchserve/prepare.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
from sagemaker.serve.spec.inference_spec import InferenceSpec
1414
from sagemaker.serve.detector.dependency_manager import capture_dependencies
1515
from sagemaker.serve.validations.check_integrity import (
16-
generate_secret_key,
1716
compute_hash,
1817
)
1918
from sagemaker.serve.validations.check_image_uri import is_1p_image_uri
@@ -67,11 +66,10 @@ def prepare_for_torchserve(
6766

6867
capture_dependencies(dependencies=dependencies, work_dir=code_dir)
6968

70-
secret_key = generate_secret_key()
7169
with open(str(code_dir.joinpath("serve.pkl")), "rb") as f:
7270
buffer = f.read()
73-
hash_value = compute_hash(buffer=buffer, secret_key=secret_key)
71+
hash_value = compute_hash(buffer=buffer)
7472
with open(str(code_dir.joinpath("metadata.json")), "wb") as metadata:
7573
metadata.write(_MetaData(hash_value).to_json())
7674

77-
return secret_key
75+
return ""

sagemaker-serve/tests/unit/test_model_builder_utils_triton.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ class TestHMACSignin(unittest.TestCase):
265265
"""Test _compute_integrity_hash method."""
266266

267267
def test_compute_integrity_hash(self):
268-
"""Test HMAC signing."""
268+
"""Test SHA-256 integrity hash computation."""
269269
utils = _ModelBuilderUtils()
270270

271271
with tempfile.TemporaryDirectory() as tmpdir:
@@ -278,8 +278,7 @@ def test_compute_integrity_hash(self):
278278

279279
utils._compute_integrity_hash()
280280

281-
# Secret key is generated, not mocked
282-
self.assertIsNotNone(utils.secret_key)
281+
# metadata.json should be created with the SHA-256 hash
283282
self.assertTrue((pkl_path / "metadata.json").exists())
284283

285284

0 commit comments

Comments
 (0)