In Azure, wo sollte ich physische Dateien speichern, auf die von einer Worker-Rolle zugegriffen werden muss?

8

In Azure: Wo sollte ich physische Dateien speichern, auf die von einer Worker-Rolle zugegriffen werden muss?

In meinem Fall würde ich normalerweise diese speziellen Dateien im Ordner App_Data meiner Webrolle speichern, aber ich glaube nicht, dass Worker Roles auf diesen Ordner zugreifen können.

    
David P 16.04.2012, 10:43
quelle

4 Antworten

11

Wenn Sie Ihre Dateien in Windows Azure Storage ablegen (Blobs eignen sich gut zum Speichern von Dateien), können Ihre Rolleninstanzen auf sie zugreifen, entweder in Webrollen oder in Worker Roles. Außerdem ist der Blob-Speicher dauerhaft und bedeutet im Datencenter dreifach repliziert (und in ein anderes Datenzentrum georeferenziert).

Wenn Worker Role-Instanzen nicht auf Ordner in einer Web Role-Instanz (oder einer anderen Worker Role-Instanz) zugreifen können, haben Sie Recht. Tatsächlich können mehrere Instanzen derselben Rolle nicht auf das Dateisystem des jeweils anderen zugreifen (denken Sie daran, dass eine Rolle nur Windows 2012 Server ist und jede Instanz dieser Rolle in einer eigenen VM mit eigenen lokalen Festplatten ausgeführt wird).

EDIT 5. JULI 2014 Diese Antwort ist jetzt ein bisschen alt. Azure bietet jetzt einen Dateidienst an, der SMB-Freigaben bereitstellt, die durch BLOB-Speicher unterstützt werden. Bei Legacy-Anwendungen, die ein Dateisystem verwenden müssen und nicht so geändert werden können, dass sie direkt aus Blobs gelesen / in sie geschrieben werden, ist dies normalerweise leichter zu handhaben. Weitere Informationen finden Sie hier .

    
David Makogon 16.04.2012, 10:55
quelle
3

Da Daten in den Instanzen nicht gespeichert werden, benötigen Sie einen verteilten Speicher, in dem Sie Ihre Dateien (und andere Daten) speichern können. Dies kann mit dem Windows Azure Blob Storage erfolgen (und das ist sehr günstig im Vergleich zum Speichern Ihrer Dateien in SQL Azure).

    
Sandrino Di Mattia 16.04.2012 10:56
quelle
3

Azure-Speicher ist eine gute Option. Sie können auch die Verwendung lokaler Ressourcen betrachten:

Ссылка

  

Eine lokale Speicherressource ist ein reserviertes Verzeichnis im Dateisystem der virtuellen Maschine, in dem eine Instanz einer Rolle ausgeführt wird. Code, der in der Instanz ausgeführt wird, kann in die lokale Speicherressource schreiben, wenn er in eine Datei schreiben oder von dieser lesen muss. Beispielsweise kann eine lokale Speicherressource zum Zwischenspeichern von Daten verwendet werden, auf die möglicherweise erneut zugegriffen werden muss, während der Dienst in Windows Azure ausgeführt wird.

    
Tom 16.04.2012 15:38
quelle
2

Wenn die Daten, die Sie speichern, vertraulich sind, stellen Sie sicher, dass Sie ein Schutzschema für Ihren Blob-Container und speichern Sie die Blob-Daten nicht einfach als öffentlich zugänglichen Link, an dem sie angezeigt werden können. Am besten nutzen Sie SaS ( Shared Access-Signatur ), um sicher auf Ihr gespeichertes Azure-Blob zuzugreifen Daten. Wenn die Daten nicht empfindlich sind, ist dies nicht erforderlich.

Siehe weitere MSDN-Referenz zum Sichern von Blobs & amp; Container in Azure.

    
SliverNinja 16.04.2012 13:03
quelle