Package: azureml-inference-server-http
Check our official documentationAzureML Inference Server - Docs.Please note, the AzureML Inference Server is now open source! The repo is available here:AzureML Inference Server - Github.Changelog1.0.0 (2023-09-21)Breaking ChangesDeprecate Python 3.7 Support and improve documentation0.8.4.2 (2023-09-07)Azureml_Inference_Server_Http 0.8.4.2 (2023-09-07)FixesUpdated InferenceSchema from ~=1.5.0 to ~=1.7.0 tp support MLflow NCD0.8.4.1 (2023-08-09)FixesFixed pydantic warning at the server startup.0.8.4 (2023-04-19)FeaturesAdded ability to configure seperate dedicated health check port.FixesRestored streaming for score response.Updated the error message related to scoring script not found.0.8.3 (2023-03-23)FixesFixed the issue related to compatibility with flask1.0.8.2 (2023-03-20)EnhancementsWarning message will be logged if there are extra keys in the config file which are not supported by the server.0.8.1 (2023-03-06)FeaturesSupports loading server config from a json file.
Added support for a new env variableAZUREML_CONFIG_FILE. Refer to README for detailed usage.EnhancementsException details will not be returned in the HTTP response. Check the server logs for details.0.8.0 (2022-12-15)Breaking ChangesDrop support for Python 3.6EnhancementsAll error responses will be in json. (Format: {‘message’: <error_message>})Loggers can be configured by users through a logging.json file inAML_APP_ROOTor alongside the entry script.Log message default format has been updated. (Format: “<UTC DATE> <UTC TIME>
<LOG LEVEL CHAR> [<PID>] <LOGGER NAME> - <MESSAGE>”)0.7.7 (2022-11-01)FixesUpgradeinference-schemadependency to support Python 3.90.7.6 (2022-09-13)FixesAML_APP_ROOTvariable is now defaulted to the current working directoryAZUREML_ENTRY_SCRIPTis now set to an absolute path to the entry script0.7.5 (2022-08-16)Breaking ChangesThe header for Client Request ID is renamed fromx-client-request-idtox-ms-client-request-id.Server will no longer throw an error when bothx-ms-request-idandx-request-idare provided. Going forward,x-ms-request-idwill be treated as the Client Request ID. However, it is still considered deprecated and users
are recommended to usex-ms-client-request-idfor Client Request ID.When neitherx-ms-request-idorx-ms-client-request-idis set, the server copies the value ofx-request-idtox-ms-request-id. This is done to preserve backwards compatability, ensuring thatx-ms-request-idis not empty. No value is logged to AppInsights as “Client Request Id”.When onlyx-ms-request-idis set, the server returnsx-ms-request-idandx-ms-client-request-idset to the
value. This value is logged to AppInsights as “Client Request Id”.When onlyx-ms-client-request-idis set, the server returnsx-ms-request-idandx-ms-client-request-idset to the value. This value is logged to AppInsights as “Client Request Id”.When bothx-ms-request-idandx-ms-client-request-idare set, the values are returned in the respective
headers. However, only the value fromx-ms-client-request-idis logged to AppInsights as “Client Request Id”.0.7.4 (2022-07-29)FixesFix an issue where the server would require arguments that have default values in run().0.7.3 (2022-07-18)FeaturesCORS can be enabled with the environment variableAML_CORS_ORIGINS. Refer to README for detailed usage.Server can now be started withpython-mazureml_inference_server_httpin additional toazmlinfsrv.OPTIONS calls are modified to return200 OKinstead of the previous405 Method not allowed.Users can bring their own swaggers by placingswagger2.jsonandswagger3.jsoninAML_APP_ROOT.EnhancementsSwaggers are always generated now, regardless whether the user’s run() function is decorated with inference-schema.The x-request-id and x-client-request-id headers are now limited to 100 characters.FixesFixed an issue that prevents the server from cleanly exiting when the scoring script cannot be initialized. If
AppInsights is not enabled, users may seeAttributeError: 'AppInsightsClient' object has no attribute 'logger'.0.7.2 (2022-06-06)EnhancementsAdded support for Flask 2.1.The server now responds with a 400 Bad Request when it finds invalid inputs.0.7.1 (2022-05-10)DeprecationThe “x-ms-request-id” header is deprecated and is being replaced by “x-request-id”. Until “x-ms-request-id” is
removed, the server will accept either header and respond with both headers set to the same request id. Providing two
request ids through the headers is not allowed and will be responded with a Bad Request.EnhancementsAdded support for Flask 2.0. A compatibility layer is introduced to ensure this upgrade doesn’t break users who use@rawhttpas the methods on the Flask request object have slightly changed. Specifically,request.headers.has_keys()was removedrequest.jsonthrows an exception if the content-type is not “application/json”. Previously it returnsNone.The compatibility layer restores these functionalities to their previous behaviors. However, this compatibility layer
will be removed in a future date and users are encouraged to audit their score scripts today. To see if your score
script is ready for Flask 2, run the server with the environment variableAML_FLASK_ONE_COMPATIBILITYset tofalse.Flask’s full changelog can be found here:https://flask.palletsprojects.com/en/2.1.x/changes/Added support for the “x-request-id” and “x-client-request-id” headers. A new GUID is generated for “x-request-id” if
one is not provided. These values are echoed back to the client in the response headers.