2. Integrieren von Azure Storage2. Integrating Azure storage

In diesem Tutorial erfahren Sie, wie Sie Entitätsdaten in Azure Table Storage und Miniaturansichten in Azure Blob Storage speichern.In this tutorial, you will learn how to save entity data to Azure Table storage and thumbnail images to Azure Blob storage. Mit dieser Funktion können wir nachverfolgte Objekte mit Daten wie ID, Name, Miniaturansicht usw. sitzungs- und geräteübergreifend in der Cloud speichern und aus ihr abrufen.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.

ZieleObjectives

  • Grundlagen zu Azure StorageLearn the basics about Azure storage
  • Erfahren Sie, wie Sie Daten in Table Storage speichern oder ändern bzw. aus Table Storage abrufenLearn how to store, modify and retrieve data from Table storage
  • Erfahren Sie, wie Sie Bilder in Blob Storage speichern und aus Blob Storage löschenLearn how to store and delete images from Blob storage

Grundlegendes zu Azure StorageUnderstanding Azure storage

Azure Storage ist eine Microsoft-Speicherlösung in der Cloud, die viele Szenarien und Anforderungen abdecken kann.Azure storage is a Microsoft storage solution on the cloud that can cover many scenarios and requirements. Sie kann massiv skaliert werden und ist für Entwickler problemlos zugänglich.It can scale massively and is easily approachable by developers. Alle Dienste können im Rahmen eines Azure Storage-Kontos genutzt werden.All services can be consumed under the umbrella of an Azure storage Account. In unserem Anwendungsfall verwenden wir Table Storage und Blob Storage.For our use case we will use Table storage and Blob storage.

Weitere Informationen zu Azure-Speicherdiensten.Learn more about Azure storage services.

Azure Table StorageAzure Table storage

Dieser Dienst ermöglicht es uns, Daten auf NoSQL-Art zu speichern. In diesem Projekt verwenden wir ihn, um Informationen zum nachverfolgten Objekt zu speichern, z. B. den Namen, eine Beschreibung, eine räumliche Anker-ID und mehr.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.

Im Kontext der Demoanwendung benötigen Sie zwei Tabellen: eine Tabelle zum Speichern von Informationen zum Projekt mit Informationen über den Zustand der trainierten Modelle (mehr dazu im Tutorial Integrieren von Azure Custom Vision) und eine zweite Tabelle zum Speichern von Informationen zu nachverfolgten Objekten.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.

Weitere Informationen zu Azure Table Storage.Learn more about Azure Table storage.

Azure Blob StorageAzure Blob storage

Dieser Dienst ermöglicht das Speichern großer Binärdateien. Diese werden zum Speichern von Fotos verwendet, die für nachverfolgte Objekte als Miniaturansicht erstellt wurden.This service allows to store large binary files, you will use this to store photos taken for Tracked Objects as thumbnail. Für die Demoanwendung benötigen Sie einen Blobcontainer, um die Bilder zu speichern.For of the demo application you need one Blob Container to store the images.

Weitere Informationen zu Azure Blob Storage.Learn more about Azure Blob storage.

Vorbereiten von Azure StoragePreparing Azure Storage

Um die Azure-Speicherdienste nutzen zu können, benötigen Sie ein Azure-Speicherkonto.To consume the Azure storage services you will need an Azure storage account. Informationen zum Erstellen eines Speicherkontos finden Sie unter Erstellen eines Speicherkontos.To create a storage account, see Create a storage account. Weitere Informationen zu Speicherkonten finden Sie unter Übersicht über das Azure-Speicherkonto.To learn more about storage accounts, see Azure storage account overview.

Sobald Sie über ein Speicherkonto verfügen, können Sie die Verbindungszeichenfolge aus dem Azure-Portal abrufen, die im nächsten Abschnitt dieser Lektion benötigt wird.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.

Optionaler Azure Storage-ExplorerOptional Azure Storage Explorer

Obwohl Sie alle Datenänderungen über die Benutzeroberfläche innerhalb der Anwendung anzeigen und überprüfen können, empfiehlt es sich, Azure Storage-Explorer zu installieren.While you can see and verify all data changes from the UI inside the application, we recommend to install Azure Storage Explorer. Dieses Tool ermöglicht es Ihnen, die Daten im Azure-Speicher visuell anzuzeigen und ist eine große Hilfe beim Debuggen und Lernen.This tool allows you to visually see the data in the Azure storage and is of great help when debugging and learning.

Tipp

Zum Testen innerhalb des Unity-Editors können Sie einen lokalen Emulator verwenden:For testing from inside the Unity editor you can use a local emulator:

Vorbereiten der SzenePreparing the scene

Suchen Sie im Hierarchiefenster nach dem DataManager-Objekt, und wählen Sie es aus.In the Hierarchy window, locate the DataManager object and select it.

Unity mit im Inspektor angezeigten Konfigurationsfeldern der DataManager (Script)-Komponente

Im Inspektor-Fenster sehen Sie, dass sich die Komponente DataManager (Script) dort befindet, wo sich alle Einstellungen befinden, die zu Azure-Speicher gehören.From the Inspector window you will see that the DataManager (script) component is where all Azure storage related settings are kept. Alle relevanten Einstellungen sind bereits festgelegt. Sie müssen lediglich das Feld Verbindungszeichenfolge durch den Wert ersetzen, den Sie aus dem Azure-Portal abrufen können.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. Wenn Sie eine lokale Azure-Speicheremulatorlösung verwenden, können Sie die bereits bereitgestellte Verbindungszeichenfolge beibehalten.If you are using a local Azure storage emulator solution, then you can keep the already provided Connection String.

DataManager (Script) ist für die Kommunikation mit Table Storage bzw. Blob Storage zuständig, die von anderen Controllerskripts in den Benutzeroberflächenkomponenten genutzt werden.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.

Schreiben und Lesen von Daten aus Azure Table StorageWriting and reading data from Azure Table storage

Nach Abschluss der Vorbereitungen ist es an der Zeit, ein nachverfolgtes Objekt zu erstellen.With everything prepared it's time to create a Tracked Object.

Öffnen Sie die Anwendung auf Ihrem HoloLens-Gerät, und klicken Sie auf Set Object (Objekt festlegen). Sie erkennen, wie das EnterObjectName- -Objekt in der Hierarchie aktiviert wird.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. Klicken Sie in diesem Menü auf die Suchleiste, und geben Sie den Namen ein, den Sie dem nachverfolgten Objekt zuweisen möchten.In this menu click on the search bar and type in the name you want to give the Tracked Object. Nachdem Sie einen Namen festgelegt haben, klicken Sie auf die Schaltfläche Set Object (Objekt festlegen).After providing a name click on the Set object button. Dadurch wird das nachverfolgte Objekt in Azure Table Storage erstellt, und die Objektkarte wird angezeigt.This will create the Tracked Object on the Azure Table storage and you will see now the Object Card.

Diese Objektkarte ist eine Benutzeroberflächendarstellung des nachverfolgten Objekts und spielt in dieser Tutorialreihe an mehreren Stellen eine wichtige Rolle.This Object Card is a UI representation of the Tracked Object and will have an important role several times in this tutorial series.

Klicken Sie nun auf das Textfeld mit der Beschreibung, und geben Sie „Car“ (Auto) ein. Klicken Sie anschließend auf die Schaltfläche Save (Speichern), um die Änderungen zu speichern.Now click on the description text box and type in "Car", after that click on the Save button to save the changes. Beenden Sie die Anwendung, und führen Sie sie dann erneut aus.Stop the application and rerun it.

Klicken Sie dieses Mal auf Search Object (Objekt suchen), und geben Sie den Namen in die Suchleiste ein, den Sie zuvor beim Erstellen des nachverfolgten Objekts verwendet haben.Now this time click on Search Object and type in the search bar the name you have used before when creating the Tracked Object. Sie sehen, dass die Objektkarte mit allen Daten aus Azure Table Storage abgerufen wird.You will see that the Object Card with all the data is retrieved from the Azure Table storage.

Sie können die Objektkarte schließen, neue nachverfolgte Objekte erstellen und ihre Daten bearbeiten.Feel free to close the Object Card and create new Tracked Objects and edit their data.

Tipp

Wenn Sie Azure Storage-Explorer installiert haben, sehen Sie sich die Tabelle objects an, die die erstellten nachverfolgten Objekte enthält.If you have installed the Azure Storage Explorer then look into the objects table and you will see there the created Tracked Object.

Hochladen von Bildern in Azure Blob Storage und Herunterladen von Bildern aus Azure Blob StorageUploading and Download image from Azure Blob storage

In diesem Abschnitt verwenden Sie Azure Blob Storage zum Hochladen und Herunterladen von Bildern, die als Miniaturansichten für nachverfolgte Objekte verwendet werden.In this section you will use the Azure Blob storage to upload and download images that will be used as thumbnails for Tracked Objects.

Hinweis

In diesem Tutorial verwendet die Anwendung Fotos zum Hochladen von Bildern in den Blobspeicher.In this tutorial the application will take photos to upload images to the Blob storage. Wenn Sie dies lokal über den Unity-Editor ausführen, stellen Sie sicher, dass eine Webcam mit Ihrem Computer verbunden ist.If you are running this locally from the Unity editor, then make sure that you have a webcam connected to your computer.

Öffnen Sie die Anwendung auf dem HoloLens-Gerät, klicken Sie auf Set Object (Objekt festlegen), und geben Sie in die Suchleiste den Begriff „Car“ (Auto) ein.Open the application on your HoloLens, click on Set Object and type in the search bar the name "Car". Nun sollte die Objektkarte angezeigt werden. Klicken Sie auf die Schaltfläche Camera (Kamera). Sie werden dann aufgefordert, eine AirTap-Aktion auszuführen, um ein Foto aufzunehmen.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. Nach der Aufnahme eines Fotos wird eine Meldung angezeigt, die Sie über den aktiven Upload informiert. Nach einer Weile sollte das Bild an der Stelle angezeigt werden, an der sich zuvor der Platzhalter befunden hat.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.

Führen Sie nun die Anwendung erneut aus, und suchen Sie nach dem nachverfolgten Objekt. Das zuvor hochgeladene Bild sollte als Miniaturansicht angezeigt werden.Now rerun the application and search for the Tracked Object and the previously uploaded image should appear as thumbnail.

Löschen von Bildern aus Azure Blob StorageDeleting image from Azure Blob storage

Im vorherigen Abschnitt haben Sie neue Images in Azure Blob Storage hochgeladen. In diesem Abschnitt löschen Sie eine Bildminiaturansicht für nachverfolgte Objekte.In the previous section you uploaded new images to Azure Blob storage, in this section you will delete an image thumbnail for Tracked Objects.

Öffnen Sie die Anwendung auf dem HoloLens-Gerät, klicken Sie auf Set Object (Objekt festlegen), und geben Sie in die Suchleiste den Begriff „Car“ (Auto) ein.Open the application on your HoloLens, click on Set Object and type in the search bar the name "Car". Nun sollte die Objektkarte mit dem Miniaturbild angezeigt werden. Klicken Sie auf die Schaltfläche Delete (Löschen).Now you should see the Object Card with the thumbnail image, click on the Delete button. Beachten Sie, dass die Miniaturansicht des Bilds durch das Platzhalterbild ersetzt wird.You will notice that the thumbnail image is replaced by the placeholder image.

Führen Sie die Anwendung nun erneut aus, und suchen Sie nach dem nachverfolgten Objekt der zuvor gelöschten Miniaturansicht. Es sollte nur das Platzhalterbild angezeigt werden.Now rerun the application and search for the Tracked Object of the previously deleted thumbnail, you should only see the placeholder image.

Herzlichen Glückwunsch!Congratulations

In diesem Tutorial haben Sie erfahren, wie Sie mithilfe der Azure-Speicherdienste unstrukturierte Daten persistent speichern können (in diesem Fall nachverfolgte Objekte und Binärdateien in Form von Miniaturansichten für die HoloLens 2-Demoanwendung in der 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.

Im nächsten Tutorial erfahren Sie, wie Sie mithilfe von Azure Custom Vision Bilder erkennen können, die einem nachverfolgten Objekt zugeordnet sind.In the next tutorial you will learn how to use Azure Custom Vision to detect images associated with a Tracked Object.