主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

在 Microsoft Azure 上运行使用 MATLAB Compiler SDK 创建的微服务

此示例演示了如何在 Microsoft® Azure® 上运行使用 MATLAB® Compiler SDK™ 创建的微服务。

示例文件列表

  • simpInterest.m

要下载示例文件,请在 MATLAB 命令行窗口中键入以下内容。

openExample("compilersdk/AzureMicroserviceExample", workDir=pwd)

前提条件

  • 确认开发计算机上已安装 MATLAB Compiler SDK(R2022a 或更高版本)。

  • 通过在 MATLAB 命令行窗口中键入 [~,msg] = system('docker version'),验证您是否已在开发计算机上安装并配置了 Docker®

注意:如果您使用的是 WSL,请改为键入 [~,msg] = system('wsl docker version')

创建 MATLAB 函数

从 MATLAB 桌面创建一个 MATLAB 函数。对于此示例,使用以下代码编写一个名为 simpInterest.m 的函数。

function i = simpInterest(p,r,t)
i = p * (1 + (r * t)) - p;
end

创建可部署存档

使用 compiler.build.productionServerArchive 函数将 simpInterest.m 函数打包成可部署存档。

results = compiler.build.productionServerArchive("simpInterest.m","ArchiveName","financetools","Verbose","on")

将可部署存档打包到微服务 Docker 映像

使用您创建的 results 对象将可部署存档打包到微服务 Docker 映像中。

compiler.package.microserviceDockerImage(results,"ImageName","financetools")

该函数会在名为 financetoolsmicroserviceDockerImage 的文件夹中生成以下文件:

  • applicationFilesForMATLABCompiler/financetools.ctf - 可部署存档文件。

  • Dockerfile - 指定运行时选项的 Docker 文件。

  • GettingStarted.txt - 包含部署信息的文本文件。

输入以下命令验证 financetools 图像是否已创建:

docker images

有关详细信息,请参阅 MATLABCompiler SDK创建微服务 Docker 镜像

创建 Azure 容器注册表

  • 导航到 https://portal.azure.com/并在搜索栏中搜索 container registry

  • 从结果中选择容器注册表服务。

  • 点击创建新注册表。完成工程详情实例详情

  • 工程详细信息

  • 订阅:从下拉菜单中选择您的订阅。

  • 资源组:使用现有资源组或创建一个新的资源组。

  • 实例详细信息

  • 注册表名称:提供一个唯一的名称。本示例使用:matlab

  • 位置:选择您想要的位置。

  • 可用区域:保持未选中状态或选中已启用。

  • SKU:选择标准。

在此示例中,注册表名为 matlab

将微服务 Docker 的镜像上传到 Azure 容器注册表

打开命令行窗口并使用命令登录到您的 Azure 帐户

az login

这将打开一个浏览器窗口供您登录和验证。登录 Azure 门户后,您需要使用以下命令登录到容器注册表:

az login acr --name <container_registry_name>

代替 <container_registry_name> 使用您的容器注册表的名称。

  • 使用以下命令将微服务 Docker 的镜像标记到您的容器注册表:

docker tag financetools matlab.azurecr.io/financetools:1.0
  • 使用以下方式上传微服务 Docker 的镜像:

docker push matlab.azurecr.io/financetools:1.0

将微服务 Docker 的镜像上传到云端需要几分钟时间。完成后,您的 Docker 镜像将作为一个仓库显示在 Azure 容器注册表中。

运行微服务 Docker 镜像

您可以使用 Azure 上的多种不同选项来运行微服务 Docker 映像。您可以将其作为以下项运行:

  • Azure 容器实例

  • Azure Kubernetes® 服务

  • 适用于容器的 Azure Web 应用

  • Azure Batch

在此示例中,使用 Azure 容器实例选项,它允许您运行单个容器。

注意:您可能必须在 Azure 容器注册表的 IAM 部分中启用管理员访问权限才能运行该容器。

要将其作为 Azure 容器实例运行:

  • 从 Azure 仪表板创建一个新的 Azure 容器实例。

  • 基础信息选项卡中,填写工程详情容器详情

  • 工程详细信息

  • 订阅:适当选择

  • 资源组:适当选择

  • 容器详细信息

  • 容器名称financetools

  • 区域:使用默认或适当选择

  • 可用性:使用默认或适当选择

  • SKUStandard 或适当选择

  • 图像来源:选择 Azure 容器注册表

  • 注册表<container-registry-name>

  • 图像financetools

  • 图像标记1.0

  • OS 类型:使用默认值

  • 尺寸:使用默认或适当更改尺寸

  • 在“网络”选项卡中填写以下详细信息:

  • 网络类型Public

  • DNS 名称标签financetools

  • DNS 名称标签范围重用:选择 Tenant

  • 端口:类型 9910

  • 端口协议:选择 TCP

  • 点击“审核 + 创建”。

  • 点击“创建”以创建 Azure 容器实例。

部署 Azure 容器实例后,您可以使用其完全限定域名 (FQDN) 向该实例发出请求,您可以在资源页面上找到该域名。

向 Azure 容器实例中运行的微服务发出请求

您可以使用命令行工具或 UI(例如 Postman)向微服务发出请求。以 JSON 格式传入本金、利息和时间 3 个输入变量,并接收以 JSON 格式结果表示的单利金额。

POST /financetools/simpInterest HTTP/1.1
Host: financetools.b9cshvg0azdbb6g6.eastus.azurecontainer.io:9910
Content-Type: application/json
Content-Length: 42
{"nargout": 1, "rhs": [21000, 0.043, 12] }
The format of the host URI is: FQDN:port/container_image_name/matlab_function_name
To make a request using cURL:
curl --location 'financetools.b9cshvg0azdbb6g6.eastus.azurecontainer.io:9910/financetools/simpInterest' \
--header 'Content-Type: application/json' \
--data '{"nargout": 1, "rhs": [21000, 0.043, 12] }'

另请参阅

主题

外部网站