16
16
from __future__ import absolute_import
17
17
18
18
import os
19
+ from typing import Optional
19
20
20
21
from sagemaker_inference import content_types , logging , parameters
21
22
@@ -51,7 +52,9 @@ class Environment(object):
51
52
52
53
Attributes:
53
54
module_name (str): The name of the user-provided module. Default is inference.py.
54
- model_server_timeout (int): Timeout in seconds for the model server. Default is 60.
55
+ model_server_timeout (int): Timeout for the model server. Default is 60.
56
+ model_server_timeout_seconds (Optional[int]): Timeout in seconds for the model server.
57
+ Default is None.
55
58
model_server_workers (str): Number of worker processes the model server will use.
56
59
57
60
default_accept (str): The desired default MIME type of the inference in the response
@@ -71,7 +74,13 @@ def __init__(self):
71
74
self ._model_server_timeout = int (
72
75
os .environ .get (parameters .MODEL_SERVER_TIMEOUT_ENV , DEFAULT_MODEL_SERVER_TIMEOUT )
73
76
)
77
+ timeout_seconds_var = os .environ .get (parameters .MODEL_SERVER_TIMEOUT_SECONDS_ENV )
78
+ self ._model_server_timeout_seconds = (
79
+ int (timeout_seconds_var ) if timeout_seconds_var is not None else None
80
+ )
81
+
74
82
self ._model_server_workers = os .environ .get (parameters .MODEL_SERVER_WORKERS_ENV )
83
+
75
84
self ._startup_timeout = int (
76
85
os .environ .get (parameters .STARTUP_TIMEOUT_ENV , DEFAULT_STARTUP_TIMEOUT )
77
86
)
@@ -107,53 +116,61 @@ def module_name(self): # type: () -> str
107
116
return self ._parse_module_name (self ._module_name )
108
117
109
118
@property
110
- def model_server_timeout (self ): # type: () -> int
119
+ def model_server_timeout (self ) -> int :
120
+ """int: Timeout used for model server's backend workers before they are
121
+ deemed unresponsive and rebooted.
122
+
123
+ """
124
+ return self ._model_server_timeout
125
+
126
+ @property
127
+ def model_server_timeout_seconds (self ) -> Optional [int ]:
111
128
"""int: Timeout, in seconds, used for model server's backend workers before
112
129
they are deemed unresponsive and rebooted.
113
130
"""
114
- return self ._model_server_timeout
131
+ return self ._model_server_timeout_seconds
115
132
116
133
@property
117
- def model_server_workers (self ): # type: () -> str
134
+ def model_server_workers (self ) -> Optional [ str ]:
118
135
"""str: Number of worker processes the model server is configured to use."""
119
136
return self ._model_server_workers
120
137
121
138
@property
122
- def startup_timeout (self ): # type () -> int
139
+ def startup_timeout (self ) -> int :
123
140
"""int: Timeout, in seconds, used for starting up the model server and fetching
124
141
its process id, before giving up and throwing error.
125
142
"""
126
143
return self ._startup_timeout
127
144
128
145
@property
129
- def default_accept (self ): # type: () -> str
146
+ def default_accept (self ) -> str :
130
147
"""str: The desired default MIME type of the inference in the response."""
131
148
return self ._default_accept
132
149
133
150
@property
134
- def inference_http_port (self ): # type: () -> str
151
+ def inference_http_port (self ) -> str :
135
152
"""str: HTTP port that SageMaker uses to handle invocations and pings."""
136
153
return self ._inference_http_port
137
154
138
155
@property
139
- def management_http_port (self ): # type: () -> str
156
+ def management_http_port (self ) -> str :
140
157
"""str: HTTP port that SageMaker uses to handle model management requests."""
141
158
return self ._management_http_port
142
159
143
160
@property
144
- def safe_port_range (self ): # type: () -> str
161
+ def safe_port_range (self ) -> Optional [ str ]:
145
162
"""str: HTTP port range that can be used by users to avoid collisions with the HTTP port
146
163
specified by SageMaker for handling pings and invocations.
147
164
"""
148
165
return self ._safe_port_range
149
166
150
167
@property
151
- def vmargs (self ): # type: () -> str
168
+ def vmargs (self ) -> str :
152
169
"""str: vmargs can be provided for the JVM, to be overriden"""
153
170
return self ._vmargs
154
171
155
172
@property
156
- def max_request_size (self ): # type: () -> str
173
+ def max_request_size (self ) -> Optional [ int ]:
157
174
"""str: max request size set by Sagemaker platform in bytes"""
158
175
if self ._max_request_size_in_mb is not None :
159
176
return int (self ._max_request_size_in_mb ) * 1024 * 1024
0 commit comments