2. Intégration du stockage Azure2. Integrating Azure storage

Dans ce tutoriel, vous allez apprendre à enregistrer des données d’entités dans le stockage Table Azure et des images miniatures dans le stockage Blob Azure.In this tutorial, you will learn how to save entity data to Azure Table storage and thumbnail images to Azure Blob storage. Cette fonctionnalité nous permettra de stocker et de récupérer des objets suivis avec des données telles que l’ID, le nom, l’image miniature, et ainsi de suite, entre les sessions et les appareils dans le cloud.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.

ObjectifsObjectives

  • Apprendre les bases du stockage AzureLearn the basics about Azure storage
  • Apprendre à stocker, modifier et récupérer des données à partir du stockage TableLearn how to store, modify and retrieve data from Table storage
  • Apprendre à stocker et supprimer des images à partir du stockage BlobLearn how to store and delete images from Blob storage

Présentation du stockage AzureUnderstanding Azure storage

Stockage Azure est une solution de stockage Microsoft sur le cloud qui peut couvrir de nombreux scénarios et besoins.Azure storage is a Microsoft storage solution on the cloud that can cover many scenarios and requirements. Elle est hautement scalable et aisément accessible aux développeurs.It can scale massively and is easily approachable by developers. Tous les services peuvent être consommés dans le cadre d’un compte de stockage Azure.All services can be consumed under the umbrella of an Azure storage Account. Pour notre cas d’usage, nous allons utiliser le stockage Table et le stockage Blob.For our use case we will use Table storage and Blob storage.

Apprenez-en davantage sur les services de stockage Azure.Learn more about Azure storage services.

Stockage Table AzureAzure Table storage

Ce service nous permet de stocker des données de manière semblable à NoSQL. Dans ce projet, nous l’utiliserons pour stocker des informations sur l’objet suivi, telles que nom, description, ID d’ancre spatiale et ainsi de suite.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.

Dans le contexte de l’application de démonstration, vous avez besoin de deux tables : une pour stocker des informations sur le projet, avec des informations relatives à l’état des modèles entraînés (nous y reviendrons dans le tutoriel Intégration d’Azure Custom Vision), et une autre pour stocker des informations sur les objets suivis.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.

Apprenez-en davantage sur le stockage Table Azure.Learn more about Azure Table storage.

Stockage Blob AzureAzure Blob storage

Ce service permet de stocker des fichiers binaires volumineux. Vous l’utiliserez pour stocker des photos des objets suivis sous forme de miniatures.This service allows to store large binary files, you will use this to store photos taken for Tracked Objects as thumbnail. Pour l’application de démonstration, vous avez besoin d’un conteneur d’objets blob pour stocker les images.For of the demo application you need one Blob Container to store the images.

Apprenez-en davantage sur le stockage Blob Azure.Learn more about Azure Blob storage.

Préparation du stockage AzurePreparing Azure Storage

Pour consommer les services de stockage Azure, vous avez besoin d’un compte Stockage Azure.To consume the Azure storage services you will need an Azure storage account. Pour créer un compte de stockage, consultez Créer un compte de stockage.To create a storage account, see Create a storage account. Pour en savoir plus sur les comptes de stockage, consultez Vue d’ensemble du compte de stockage.To learn more about storage accounts, see Azure storage account overview.

Une fois que vous avez un compte de stockage, vous pouvez récupérer la chaîne de connexion à partir du portail Azure. Vous en aurez besoin dans la section suivante de cette leçon.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.

Explorateur Stockage Azure (facultatif)Optional Azure Storage Explorer

Même si vous pouvez voir et vérifier toutes les modifications apportées aux données à partir de l’interface utilisateur dans l’application, nous vous recommandons d’installer l’Explorateur Stockage Azure.While you can see and verify all data changes from the UI inside the application, we recommend to install Azure Storage Explorer. Cet outil vous permet de visualiser les données dans le stockage Azure, et offre une aide précieuse lors du débogage et de l’apprentissage.This tool allows you to visually see the data in the Azure storage and is of great help when debugging and learning.

Conseil

Pour les tests à partir de l’éditeur Unity, vous pouvez utiliser un émulateur local :For testing from inside the Unity editor you can use a local emulator:

Préparation de la scènePreparing the scene

Dans la fenêtre de hiérarchie, recherchez l’objet DataManager et sélectionnez-le.In the Hierarchy window, locate the DataManager object and select it.

Unity avec les champs de configuration du composant de script DataManager affichés dans Inspector

Dans la fenêtre de l’inspecteur, vous verrez que le composant DataManager (script) est l’endroit où sont conservés tous les paramètres liés au stockage Azure.From the Inspector window you will see that the DataManager (script) component is where all Azure storage related settings are kept. Tous les paramètres pertinents sont déjà définis. Il vous suffit de remplacer le champ Connection String (Chaîne de connexion) par celle que vous pouvez récupérer à partir du portail Azure.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 vous utilisez une solution d’émulateur de stockage Azure locale, vous pouvez conserver la chaîne de connexion déjà fournie.If you are using a local Azure storage emulator solution, then you can keep the already provided Connection String.

Le composant DataManager (script) est responsable de la communication avec le stockage Table et le stockage Blob qui est consommé par d’autres scripts de contrôleur sur les composants d’interface utilisateur.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.

Écriture et lecture de données à partir du stockage Table AzureWriting and reading data from Azure Table storage

Maintenant que tout est prêt, vous pouvez créer un objet suivi.With everything prepared it's time to create a Tracked Object.

Ouvrez l’application sur votre HoloLens et cliquez sur Set Object (Définir un objet). Vous verrez que l’objet EnterObjectName devient actif dans la hiérarchie.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. Dans ce menu, cliquez sur la barre de recherche et tapez le nom que vous voulez donner à l’objet suivi.In this menu click on the search bar and type in the name you want to give the Tracked Object. Après cela, cliquez sur le bouton Set object.After providing a name click on the Set object button. Cela crée l’objet suivi dans le stockage Table Azure, et vous verrez maintenant la fiche d’objet.This will create the Tracked Object on the Azure Table storage and you will see now the Object Card.

Cette fiche d’objet est une représentation sous forme d’interface utilisateur de l’objet suivi. Elle aura un rôle important à plusieurs reprises dans cette série de tutoriels.This Object Card is a UI representation of the Tracked Object and will have an important role several times in this tutorial series.

Cliquez maintenant sur la zone de texte de description et tapez « Car ». Après cela, cliquez sur le bouton Enregistrer pour enregistrer les modifications.Now click on the description text box and type in "Car", after that click on the Save button to save the changes. Arrêtez l’application et réexécutez-la.Stop the application and rerun it.

Cette fois-ci, cliquez sur Search Object et tapez dans la barre de recherche le nom utilisé lors de la création de l’objet suivi.Now this time click on Search Object and type in the search bar the name you have used before when creating the Tracked Object. Vous constaterez que la fiche d’objet avec toutes les données est récupérée à partir du stockage Table Azure.You will see that the Object Card with all the data is retrieved from the Azure Table storage.

N’hésitez pas à fermer la fiche d’objet et à créer de nouveaux objets suivis et modifier leurs données.Feel free to close the Object Card and create new Tracked Objects and edit their data.

Conseil

Si vous avez installé l’Explorateur Stockage Azure, accédez au tableau d’objets. Vous verrez que l’objet suivi créé y figure.If you have installed the Azure Storage Explorer then look into the objects table and you will see there the created Tracked Object.

Chargement et téléchargement d’images à partir du stockage Blob AzureUploading and Download image from Azure Blob storage

Dans cette section, vous allez utiliser le stockage Blob Azure pour charger et télécharger des images qui seront utilisées comme miniatures pour les objets suivis.In this section you will use the Azure Blob storage to upload and download images that will be used as thumbnails for Tracked Objects.

Notes

Dans ce tutoriel, l’application va prendre des photos pour charger des images dans le stockage Blob.In this tutorial the application will take photos to upload images to the Blob storage. Si vous l’exécutez localement à partir de l’éditeur Unity, vérifiez qu’une webcam est connectée à votre ordinateur.If you are running this locally from the Unity editor, then make sure that you have a webcam connected to your computer.

Ouvrez l’application sur votre HoloLens, cliquez sur Set Object et tapez le nom « Car » dans la barre de recherche.Open the application on your HoloLens, click on Set Object and type in the search bar the name "Car". Vous devez maintenant voir la fiche d’objet. Cliquez sur le bouton Camera et vous serez invité à effectuer un clic aérien pour prendre une photo.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. Une fois la photo prise, un message vous informe du chargement. Après quelques instants, l’image doit apparaître à la place de l’espace réservé.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.

Réexécutez l’application et recherchez l’objet suivi. L’image chargée doit apparaître sous forme de miniature.Now rerun the application and search for the Tracked Object and the previously uploaded image should appear as thumbnail.

Suppression d’une image du stockage Blob AzureDeleting image from Azure Blob storage

Dans la section précédente, vous avez chargé de nouvelles images dans le stockage Blob Azure. Dans cette section, vous allez supprimer une image miniature pour des objets suivis.In the previous section you uploaded new images to Azure Blob storage, in this section you will delete an image thumbnail for Tracked Objects.

Ouvrez l’application sur votre HoloLens, cliquez sur Set Object et tapez le nom « Car » dans la barre de recherche.Open the application on your HoloLens, click on Set Object and type in the search bar the name "Car". Vous devez maintenant voir la fiche d’objet avec l’image miniature. Cliquez sur le bouton Delete.Now you should see the Object Card with the thumbnail image, click on the Delete button. Vous remarquerez que l’image miniature est remplacée par l’image d’espace réservé.You will notice that the thumbnail image is replaced by the placeholder image.

À présent, réexécutez l’application et recherchez l’objet suivi de la miniature que vous venez de supprimer. Vous ne devriez voir que l’image d’espace réservé.Now rerun the application and search for the Tracked Object of the previously deleted thumbnail, you should only see the placeholder image.

FélicitationsCongratulations

Dans ce tutoriel, vous avez appris à utiliser les services de stockage Azure pour conserver des données non structurées (comme dans notre cas des objets suivis) et des binaires sous forme d’images miniatures pour l’application de démonstration HoloLens 2 sur le cloud.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.

Dans le tutoriel suivant, vous allez voir comment utiliser Azure Custom Vision pour détecter les images associées à un objet suivi.In the next tutorial you will learn how to use Azure Custom Vision to detect images associated with a Tracked Object.