在 MATLAB Production Server 上执行 MATLAB 函数
MATLAB® Production Server™ 的客户端应用程序与本地服务器实例的客户端应用程序在几个方面有所不同。要执行部署在 MATLAB Production Server 上的 MATLAB 函数,您必须使用仪表板中指定的 MATLAB 执行端点 URL。根据客户端程序的实现,您可能必须更新代码以使用弹性负载均衡器的粘性会话或会话亲和性功能。
与本地服务器安装的客户端应用程序类似,您必须对使用 Java®、.NET、C 和 Python® 编写的客户端应用程序使用 MATLAB Production Server 客户端库。
使用 MATLAB 执行端点 URL
在您将 MATLAB Production Server 部署到 AWS® 后,登录仪表板以检索 MATLAB 执行端点。仪表板中的 Overview 选项卡指定 MATLAB Execution Endpoint。有关访问仪表板的信息,请参阅使用仪表板管理 MATLAB Production Server。
此端点是一个 HTTPS URL,客户端程序使用它向服务器发出请求并执行部署到服务器的 MATLAB 函数。例如,如果您服务器的 MATLAB 执行端点是 https://payg-mps-1n8k9DNJ8NJAH-1476423457.us-east-1.elb.amazonaws.com
,则要使用 MATLAB Production Server RESTful API 执行位于已部署应用程序 myapp
中的 MATLAB 函数 mymagic
,请指定 URL https://payg-mps-1n8k9DNJ8NJAH-1476423457.us-east-1.elb.amazonaws.com/myapp/mymagic
。
下载客户端库
如果您想用 Java、.NET、C 和 Python 编写客户端程序来调用部署在服务器上的 MATLAB 函数,则必须使用 MATLAB Production Server 客户端库。从 MATLAB Production Server 客户端库下载客户端库。
使用自签名 SSL 证书
如果您的部署使用自签名 SSL 证书,您可能必须手动覆盖客户端应用程序的默认安全行为或向应用程序网关添加新的 HTTPS 终结点。
您可以更新客户端应用程序,在向服务器发送 HTTPS 请求时禁用主机名验证,以避免遇到因主机名验证失败而导致的异常。根据客户端程序的实现,您可能还必须检索负载均衡器使用的自签名证书并将该证书添加到本地信任库。有关配置客户端环境的更多信息,请参阅 Java 客户端的 处理异常 和 .NET 客户端的 处理异常。
管理 HTTP Cookie
弹性负载均衡器使用粘性会话,它使用 cookie 将用户会话保留在同一台服务器上。在接收到来自客户端程序的请求后,应用程序网关会将 Set-Cookie
HTTP 响应标头设置为有关处理该请求的服务器虚拟机 (VM) 的信息。
异步请求执行
使用异步请求执行部署到服务器的 MATLAB 函数的客户端程序必须将所有后续请求的 Cookie
HTTP 请求标头设置为 Set-Cookie
标头的值。这可确保处理第一个请求的同一服务器虚拟机处理该会话的所有后续请求。
同步请求执行
使用同步请求执行部署到服务器的 MATLAB 函数的客户端程序不得将 Cookie
HTTP 请求标头设置为 Set-Cookie
标头的值,并且必须清除 Cookie
标头的值(如果之前已设置)。这可以确保同步请求的负载平衡,并且同一台服务器虚拟机不会处理它们。
使用 MWHttpClient
的 Java 客户端中的默认属性设置 HTTP cookie。有关禁用 cookie 的信息,请参阅 配置客户端-服务器连接。使用 protobuf 的 Java 客户端 API 和 .NET 客户端 API 默认不设置 HTTP cookie。