2. Integración de Azure Storage2. Integrating Azure storage

En este tutorial, obtendrá información sobre cómo guardar datos de entidad en Azure Table Storage e imágenes en miniatura en Azure Blob Storage.In this tutorial, you will learn how to save entity data to Azure Table storage and thumbnail images to Azure Blob storage. Esta característica nos permitirá almacenar y recuperar objetos de los que se realiza un seguimiento con datos como el identificador, el nombre, la imagen en miniatura, etc. entre las sesiones y los dispositivos en la nube.This feature will allow us to store and retrieve Tracked Objects with data like ID, Name, Thumbnail Image, etc. across sessions and devices to the cloud.

ObjetivosObjectives

  • Aprender los aspectos básicos de Azure StorageLearn the basics about Azure storage
  • Aprenda a almacenar, modificar y recuperar datos de Table StorageLearn how to store, modify and retrieve data from Table storage
  • Aprender a almacenar y eliminar imágenes de Blob StorageLearn how to store and delete images from Blob storage

Descripción de Azure StorageUnderstanding Azure storage

Azure Storage es una solución de almacenamiento de Microsoft en la nube que puede abarcar muchos escenarios y requisitos.Azure storage is a Microsoft storage solution on the cloud that can cover many scenarios and requirements. Se puede escalar de forma masiva y los desarrolladores pueden acceder a ella fácilmente.It can scale massively and is easily approachable by developers. Todos los servicios se pueden consumir en el paraguas de una cuenta de Azure Storage.All services can be consumed under the umbrella of an Azure storage Account. En nuestro caso de uso, usaremos Table Storage y Blob Storage.For our use case we will use Table storage and Blob storage.

Obtenga más información sobre los servicios de Azure Storage.Learn more about Azure storage services.

Azure Table StorageAzure Table storage

Estos servicios nos permiten almacenar los datos mediante un mecanismo NoSQL. En este proyecto, lo usaremos para almacenar información sobre el objeto del que se realiza un seguimiento, p. ej., el nombre, la descripción, el identificador del delimitador espacial, etc.This services allows us to store data in a NoSQL fashion, in this project we will use it to store information about the Tracked Object such as: name, description, spatial anchor id, and more.

En el contexto de la aplicación de demostración, necesita dos tablas, una para almacenar información sobre el proyecto con información sobre el estado de los modelos entrenados (puede obtener más información al respecto en el tutorial Integración de Azure Custom Vision) y una segunda tabla para almacenar información sobre los objetos de los que se realiza un seguimiento.In context of the demo application, you need two Tables, one to store information about the project with information about the state of trained models more about that in the (Integrating Azure Custom Vision) tutorial and a second table to store information about Tracked Objects.

Obtenga más información sobre Azure Table Storage.Learn more about Azure Table storage.

Azure Blob StorageAzure Blob storage

Este servicio permite almacenar archivos binarios de gran tamaño. Lo usará para almacenar las fotografías tomadas para los objetos de los que se realiza un seguimiento como miniatura.This service allows to store large binary files, you will use this to store photos taken for Tracked Objects as thumbnail. En el caso de la aplicación de demostración, necesita un contenedor de blobs para almacenar las imágenes.For of the demo application you need one Blob Container to store the images.

Obtenga más información sobre Azure Blob Storage.Learn more about Azure Blob storage.

Preparación de Azure StoragePreparing Azure Storage

Para consumir los servicios de Azure Storage, necesitará una cuenta de Azure Storage.To consume the Azure storage services you will need an Azure storage account. Para crear una cuenta de almacenamiento, consulte Creación de una cuenta de almacenamiento.To create a storage account, see Create a storage account. Para obtener más información sobre las cuentas de almacenamiento, consulte Información general de la cuenta de Azure Storage.To learn more about storage accounts, see Azure storage account overview.

Una vez que tenga una cuenta de almacenamiento, puede recuperar la cadena de conexión desde Azure Portal que se necesitará en la siguiente sección de esta lección.Once you have a storage account, you can retrieve the connection string from the Azure Portal which will be needed in the next section of this lesson.

Explorador de Azure Storage opcionalOptional Azure Storage Explorer

Aunque puede ver y comprobar todos los cambios de datos de la interfaz de usuario dentro de la aplicación, le recomendamos que instale el Explorador de Azure Storage.While you can see and verify all data changes from the UI inside the application, we recommend to install Azure Storage Explorer. Esta herramienta le permite ver los datos en Azure Storage y resulta muy útil para la depuración y el aprendizaje.This tool allows you to visually see the data in the Azure storage and is of great help when debugging and learning.

Sugerencia

Para realizar pruebas desde el editor de Unity, puede usar un emulador local:For testing from inside the Unity editor you can use a local emulator:

Preparación de la escenaPreparing the scene

En la ventana Hierarchy (Jerarquía), busque el objeto DataManager y selecciónelo.In the Hierarchy window, locate the DataManager object and select it.

Unity con los campos de configuración del componente de script DataManager que aparecen en el Inspector

En la ventana Inspector verá que el componente DataManager (script) es el sitio donde se conservan todos los valores de configuración relacionados con Azure Storage.From the Inspector window you will see that the DataManager (script) component is where all Azure storage related settings are kept. Ya se han establecido todos los valores de configuración pertinentes. Ahora, solo tiene que reemplazar el campo Connection String (Cadena de conexión) por el que puede recuperar en Azure Portal.All relevant settings are already set, you just need to replace the Connection String field with the one you can retrieve from the Azure Portal. Si usa una solución de emulador de Azure Storage local, puede mantener la cadena de conexión que ya proporcionó.If you are using a local Azure storage emulator solution, then you can keep the already provided Connection String.

El componente DataManager (script) es responsable de comunicarse con Table Storage y Blob Storage, que consumen otros scripts del controlador en los componentes de la interfaz de usuario.The DataManager (script) is responsible for talking to the Table storage and Blob storage which is consumed by other controller scripts on the UI components.

Escritura y lectura de datos de Azure Table StorageWriting and reading data from Azure Table storage

Una vez esté todo preparado, es el momento de crear un objeto del que se realizará un seguimiento.With everything prepared it's time to create a Tracked Object.

Abra la aplicación en HoloLens, haga clic en Set Object (Establecer objeto) y verá cómo el objeto EnterObjectName se activará en la jerarquía.Open the application on your HoloLens, click on the Set Object and you will see how the EnterObjectName object will become active in the hierarchy. En este menú, haga clic en la barra de búsqueda y escriba el nombre que quiera asignar al objeto del que se realizará un seguimiento.In this menu click on the search bar and type in the name you want to give the Tracked Object. Después de proporcionar un nombre, haga clic en el botón Set Object (Establecer objeto).After providing a name click on the Set object button. Se creará el objeto del que se realizará un seguimiento en Azure Table Storage y verá la tarjeta del objeto.This will create the Tracked Object on the Azure Table storage and you will see now the Object Card.

La tarjeta del objeto es una representación de la interfaz de usuario del objeto del que se realiza el seguimiento y tendrá un rol importante varias veces en esta serie de tutoriales.This Object Card is a UI representation of the Tracked Object and will have an important role several times in this tutorial series.

Ahora, haga clic en el cuadro de texto de la descripción y escriba "Coche", después de hacer clic en el botón Save (Guardar) para guardar los cambios.Now click on the description text box and type in "Car", after that click on the Save button to save the changes. Detenga la aplicación y vuelva a ejecutarla.Stop the application and rerun it.

Ahora, haga clic en Search Object (Buscar objeto) y escriba en la barra de búsqueda el nombre que ha utilizado antes al crear el objeto del que se realiza un seguimiento.Now this time click on Search Object and type in the search bar the name you have used before when creating the Tracked Object. Verá que se recupera la tarjeta del objeto con todos los datos de Azure Table Storage.You will see that the Object Card with all the data is retrieved from the Azure Table storage.

No dude en cerrar la tarjeta del objeto y crear nuevos objetos de los que se realice un seguimiento, así como editar sus datos.Feel free to close the Object Card and create new Tracked Objects and edit their data.

Sugerencia

Si instaló el Explorador de Azure Storage, a continuación, examine la tabla de objetos y verá el objeto del que se realiza un seguimiento.If you have installed the Azure Storage Explorer then look into the objects table and you will see there the created Tracked Object.

Carga y descarga de una imagen desde Azure Blob StorageUploading and Download image from Azure Blob storage

En esta sección, usará Azure Blob Storage para cargar y descargar imágenes que se usarán como miniaturas para los objetos de los que se realiza un seguimiento.In this section you will use the Azure Blob storage to upload and download images that will be used as thumbnails for Tracked Objects.

Nota

En este tutorial, la aplicación tomará fotos para cargar imágenes en Blob Storage.In this tutorial the application will take photos to upload images to the Blob storage. Si lo ejecuta de forma local desde el editor de Unity, asegúrese de que tiene una cámara web conectada al equipo.If you are running this locally from the Unity editor, then make sure that you have a webcam connected to your computer.

Abra la aplicación en HoloLens, haga clic en Set Object (Establecer objeto) y escriba en la barra de búsqueda el nombre "Coche".Open the application on your HoloLens, click on Set Object and type in the search bar the name "Car". Ahora debería ver la tarjeta del objeto. Haga clic en el botón Camera (Cámara) y se le indicará que realice un gesto de pulsación en el aire para tomar una foto.Now you should see the Object Card, click on the Camera button and you will be instructed to do an AirTap to take a photo. Después de tomar una foto, verá un mensaje en el que se le informará sobre la carga activa y, al cabo de un rato, la imagen deberá aparecer en el lugar en el que se encontraba el marcador de posición.After taking a photo you will see a message that informs you about the active upload and after a while the image should appear where the placeholder was before.

Ahora vuelva a ejecutar la aplicación, busque el objeto del que se realiza un seguimiento y la imagen cargada previamente debería aparecer como miniatura.Now rerun the application and search for the Tracked Object and the previously uploaded image should appear as thumbnail.

Eliminación de una imagen de Azure Blob Storage.Deleting image from Azure Blob storage

En la sección anterior, cargó imágenes nuevas en Azure Blob Storage y, en esta, eliminará una miniatura de imagen de los objetos de los que realiza un seguimiento.In the previous section you uploaded new images to Azure Blob storage, in this section you will delete an image thumbnail for Tracked Objects.

Abra la aplicación en HoloLens, haga clic en Set Object (Establecer objeto) y escriba en la barra de búsqueda el nombre "Coche".Open the application on your HoloLens, click on Set Object and type in the search bar the name "Car". Ahora debería ver la tarjeta del objeto con la imagen en miniatura. Si es así, haga clic en el botón Delete (Eliminar).Now you should see the Object Card with the thumbnail image, click on the Delete button. Observará que la imagen en miniatura se ha reemplazado por la imagen del marcador de posición.You will notice that the thumbnail image is replaced by the placeholder image.

Ahora vuelva a ejecutar la aplicación y busque el objeto del que se realiza un seguimiento de la miniatura previamente eliminada. Solo debería ver la imagen del marcador de posición.Now rerun the application and search for the Tracked Object of the previously deleted thumbnail, you should only see the placeholder image.

EnhorabuenaCongratulations

En este tutorial ha aprendido a usar los servicios de Azure Storage para conservar datos no estructurados, como los objetos de los que realiza un seguimiento y los archivos binarios en formato de imágenes en miniatura para la aplicación de demostración de HoloLens 2 en la nube.In this tutorial you learned how Azure storage services can be used to persist unstructured data, like in our case Tracked Objects and binaries in form of thumbnail images for the HoloLens 2 demo application on the cloud.

En el siguiente tutorial, aprenderá a usar Azure Custom Vision para detectar imágenes asociadas a un objeto del que se realiza un seguimiento.In the next tutorial you will learn how to use Azure Custom Vision to detect images associated with a Tracked Object.