练习 - 集成 Azure 存储

已完成

在本模块中,你将了解如何将实体数据保存到 Azure 表存储,以及如何将缩略图保存到 Azure Blob 存储。 借助此功能,我们可以存储跟踪对象,并通过 ID、名称、缩略图等数据在会话间以及设备和云之间检索跟踪对象。

了解 Azure 存储

Azure 存储是云中的 Microsoft 存储解决方案,可适应多种场景和需求。 它可以大规模扩展,并且开发人员也很容易使用它。 所有服务都可以在 Azure 存储帐户的保护下使用。 我们的用例中会使用表存储和 Blob 存储。

了解有关 Azure 存储服务的详细信息。

Azure 表存储

使用此服务,我们就能以 NoSQL 方式存储数据。 我们的项目中将使用它来存储有关跟踪对象的信息,例如名称、说明、空间定位点 ID 等。

在演示应用程序的上下文中,你需要两个表,一个用于存储教程中的项目相关信息、训练的模型的状态相关信息(更多相关信息详见本模块后面的“集成 Azure 自定义视觉”练习),另一个用于存储跟踪对象的相关信息

了解有关 Azure 表存储的详细信息。

Azure Blob 存储

你可以通过此服务存储大型二进制文件。 你将使用 Azure Blob 存储将为跟踪对象拍摄的照片存储为缩略图

对于演示应用程序的目的,你需要一个 Blob 容器来存储图像。

了解有关 Azure Blob 存储的详细信息。

准备 Azure 存储

若要使用 Azure 存储服务,你需要一个 Azure 存储帐户。 若要创建存储帐户,请参阅创建存储帐户。 要了解有关存储帐户的更多信息,请参阅存储帐户概述

拥有存储帐户后,可从“Azure 门户”检索连接字符串。 可以在“安全 + 网络”>“访问密钥”中找到它。 在本课程的下一部分中,需要用到连接字符串。

可选 Azure 存储资源管理器

虽然可从应用程序中的 UI 查看和验证所有数据更改,但仍建议安装 Azure 存储资源管理器。 此工具可用于可视化 Azure 存储中的数据,在调试和学习时非常有用。

提示

若要在 Unity 编辑器中进行测试,可以使用本地模拟器:

准备场景

  1. 在“层次结构”窗口中,找到“DataManager”对象并选择它。

    Screenshot of Unity with DataManager script component configuration fields shown in Inspector.

    “检查器”窗口中的“DataManager (脚本)”组件包含与“Azure 存储”相关的所有设置。 所有相关设置均已设置好,你只需将“连接字符串”字段替换为你可从“Azure 门户”检索到的内容即可。 如果使用的是本地 Azure 存储模拟器解决方案,可保留已提供的连接字符串或将其留空。

    DataManager(脚本)负责与表存储和 Blob 存储通信,由 UI 组件上的其他控制器脚本使用。

在 Azure 表存储中写入和读取数据

备注

在 HoloLens 2 上生成和测试不是强制性的。 如果你没有 HoloLens 设备,还可以在 HoloLens 2 仿真器上进行测试。 你可以在 HoloLens.com 购买设备。

一切准备就绪后,就可创建跟踪对象了。

  1. 打开 HoloLens 上的应用程序,然后选择“设置对象”。 “EnterObjectName”对象将在层次结构中变为活动状态。 选择“搜索栏”,并键入要指定给跟踪对象的名称。 提供名称后,选择“设置对象”按钮。 这会在 Azure 表存储上创建跟踪对象。 此时将显示“对象卡”。

    此“对象卡”是跟踪对象的 UI 表示形式,它在本系列教程中将扮演重要角色。

  2. 现在,选择说明“文本框”,然后键入“Car”,然后选择“保存”按钮以保存更改。 停止应用程序,然后重新运行它。

  3. 选择“搜索对象”,然后键入之前在创建跟踪对象时在“搜索栏”中输入的名称。 然后你将会看到从 Azure 表存储中检索到的“对象卡”的所有数据。

  4. 你可以随意关闭对象卡,创建新的跟踪对象,然后编辑其数据。

    提示

    如果你已安装 Azure 存储资源管理器,则可在“Objects”表中找到跟踪对象

从 Azure Blob 存储上传和下载图像

在本部分中,你将使用 Azure Blob 存储上传和下载用作跟踪对象缩略图的图像。

备注

在本教程中,应用程序将拍摄照片,将图像上传到 Azure Blob 存储。 如果要在 Unity 编辑器本地运行它,请确保你的计算机已连接网络摄像头。

  1. 打开 HoloLens 上的应用程序,选择“设置对象”,并在“搜索栏”中输入“Car”。 在“对象卡”上,选择“相机”按钮。 系统将指示你执行 AirTap 操作以拍摄照片。 拍摄照片后,你将看到一条关于正在上传的通知消息;一段时间后,图像应会出现在占位符之前所在的位置。

  2. 现在,重新运行应用程序并搜索“跟踪对象”。 以前上传的图像应会显示为缩略图。

删除 Azure Blob 存储中的图像

在上一部分中,你已将新的图像上传至 Azure Blob 存储。 在本部分中,你将删除跟踪对象的图像缩略图。

  1. 打开 HoloLens 上的应用程序,选择“设置对象”,并在“搜索栏”中输入“Car”。 在带有缩略图的“对象卡”上,选择“删除”按钮。 缩略图图像会替换为占位符图像。

  2. 现在,重新运行该应用程序,并搜索以前删除的缩略图的跟踪对象。 你应只会看到占位符图像。