1616from __future__ import absolute_import
1717
1818import os
19+ from typing import Optional
1920
2021from sagemaker_inference import content_types , logging , parameters
2122
@@ -51,7 +52,9 @@ class Environment(object):
5152
5253 Attributes:
5354 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.
5558 model_server_workers (str): Number of worker processes the model server will use.
5659
5760 default_accept (str): The desired default MIME type of the inference in the response
@@ -71,7 +74,13 @@ def __init__(self):
7174 self ._model_server_timeout = int (
7275 os .environ .get (parameters .MODEL_SERVER_TIMEOUT_ENV , DEFAULT_MODEL_SERVER_TIMEOUT )
7376 )
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+
7482 self ._model_server_workers = os .environ .get (parameters .MODEL_SERVER_WORKERS_ENV )
83+
7584 self ._startup_timeout = int (
7685 os .environ .get (parameters .STARTUP_TIMEOUT_ENV , DEFAULT_STARTUP_TIMEOUT )
7786 )
@@ -107,53 +116,61 @@ def module_name(self): # type: () -> str
107116 return self ._parse_module_name (self ._module_name )
108117
109118 @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 ]:
111128 """int: Timeout, in seconds, used for model server's backend workers before
112129 they are deemed unresponsive and rebooted.
113130 """
114- return self ._model_server_timeout
131+ return self ._model_server_timeout_seconds
115132
116133 @property
117- def model_server_workers (self ): # type: () -> str
134+ def model_server_workers (self ) -> Optional [ str ]:
118135 """str: Number of worker processes the model server is configured to use."""
119136 return self ._model_server_workers
120137
121138 @property
122- def startup_timeout (self ): # type () -> int
139+ def startup_timeout (self ) -> int :
123140 """int: Timeout, in seconds, used for starting up the model server and fetching
124141 its process id, before giving up and throwing error.
125142 """
126143 return self ._startup_timeout
127144
128145 @property
129- def default_accept (self ): # type: () -> str
146+ def default_accept (self ) -> str :
130147 """str: The desired default MIME type of the inference in the response."""
131148 return self ._default_accept
132149
133150 @property
134- def inference_http_port (self ): # type: () -> str
151+ def inference_http_port (self ) -> str :
135152 """str: HTTP port that SageMaker uses to handle invocations and pings."""
136153 return self ._inference_http_port
137154
138155 @property
139- def management_http_port (self ): # type: () -> str
156+ def management_http_port (self ) -> str :
140157 """str: HTTP port that SageMaker uses to handle model management requests."""
141158 return self ._management_http_port
142159
143160 @property
144- def safe_port_range (self ): # type: () -> str
161+ def safe_port_range (self ) -> Optional [ str ]:
145162 """str: HTTP port range that can be used by users to avoid collisions with the HTTP port
146163 specified by SageMaker for handling pings and invocations.
147164 """
148165 return self ._safe_port_range
149166
150167 @property
151- def vmargs (self ): # type: () -> str
168+ def vmargs (self ) -> str :
152169 """str: vmargs can be provided for the JVM, to be overriden"""
153170 return self ._vmargs
154171
155172 @property
156- def max_request_size (self ): # type: () -> str
173+ def max_request_size (self ) -> Optional [ int ]:
157174 """str: max request size set by Sagemaker platform in bytes"""
158175 if self ._max_request_size_in_mb is not None :
159176 return int (self ._max_request_size_in_mb ) * 1024 * 1024
0 commit comments