(0) exportieren Drucken
Alle erweitern

Konfigurieren von lokalen Speicherressourcen

Letzte Aktualisierung: November 2013

Eine lokale Speicherressource ist ein reserviertes Verzeichnis im Dateisystem des virtuellen Computers, auf dem eine Instanz einer Rolle ausgeführt wird. In der Instanz ausgeführter Code hat Zugriff auf die lokale Speicherressource, wenn er in eine Datei schreiben oder aus einer Datei lesen muss. Beispielsweise kann eine lokale Speicherressource verwendet werden, um Daten zwischenzuspeichern, auf die möglicherweise erneut zugegriffen werden muss, während der Dienst in Windows Azure ausgeführt wird.

Lokale Speicherressourcen werden in der Dienstdefinitionsdatei deklariert. Sie können eine beliebige Anzahl von lokalen Speicherressourcen für eine Rolle deklarieren. Jede lokale Speicherressource wird für jede Instanz der Rolle reserviert. Die Mindestmenge an Speicherplatz, die Sie einer lokalen Speicherressource zuordnen können, beträgt 1 MB. Die maximale Menge an Speicherplatz, die Sie einer lokalen Ressource zuordnen können, hängt von der Größe des virtuellen Computers ab, der für die Rolle angegeben ist. Für jede Größe eines virtuellen Computers ist eine entsprechende Gesamtmenge an Speicher zugeordnet, und der allen lokalen Speicherressourcen, die für eine Rolle deklariert sind, zugeordnete Gesamtspeicher darf die maximale Größe nicht überschreiten, die für die Größe dieses virtuellen Computers zugewiesen ist. Weitere Informationen über die Höchstmenge an lokalem Speicherplatz, der für die Größe der einzelnen virtuellen Computer zugewiesen wird, finden Sie unter Konfigurieren von Größen für Cloud-Dienste.

noteHinweis
  • Es liegt in der Verantwortung des Entwicklers sicherzustellen, dass die für eine lokale Speicherressource angeforderte Menge an Speicherplatz nicht die für einen virtuellen Computer zugewiesene Höchstmenge überschreitet. Wenn Sie eine lokale Speicherressource so konfigurieren, dass sie den zulässigen Höchstwert überschreitet, tritt erst bei einem Schreibvorgang, der den zulässigen Höchstwert überschreitet, ein Fehler auf. In diesem Fall schlägt der Schreibvorgang fehl, und es wird eine Fehlermeldung zu nicht ausreichendem Speicherplatz angezeigt. Das Verarbeitungsmodell für Windows Azure entspricht dem Prinzip Versuch/Fehler. Wenn Sie eine Fehlermeldung zu nicht ausreichendem Speicherplatz empfangen, können Sie den Fehler behandeln und Speicherplatz freigeben. Anschließend können Sie den Schreibvorgang wiederholen.

  • Sie können angeben, dass eine lokale Speicherressource beibehalten werden soll, wenn eine Instanz wiederverwendet wird. Die Dauerhaftigkeit von im lokalen Dateisystem des virtuellen Computers gespeicherten Daten ist jedoch nicht gewährleistet. Wenn die Rolle dauerhafte Daten erfordert, wird empfohlen, Dateidaten auf einem Windows Azure-Laufwerk zu speichern. Windows Azure-Laufwerke werden vom Windows Azure-Blob-Dienst gesichert, daher ist ihre Dauerhaftigkeit gewährleistet.

Hinzufügen einer lokalen Speicherressource

Um eine lokale Speicherressource in der Dienstdefinitionsdatei zu deklarieren, fügen Sie das LocalResources-Element als untergeordnetes Element eines WebRole-Elements oder WorkerRole-Elements hinzu. Fügen Sie dann ein LocalStorage-Element hinzu, das die Ressource darstellt. Das LocalStorage-Element akzeptiert drei Attribute:

  • name

  • sizeInMB – Gibt die gewünschte Größe für diese lokale Speicherressource an.

  • cleanOnRoleRecycle – Gibt an, ob die lokale Speicherressource bereinigt werden soll, wenn eine Rolleninstanz wiederverwendet wird, oder ob sie während des gesamten Lebenszyklus der Rolle beibehalten werden soll. Der Standardwert lautet true.

Die folgende Dienstdefinitionsdatei enthält zwei lokale Speicherressourcen, die für eine Webrolle deklariert sind:


<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" name="MyService">
  <WebRole name="MyService_WebRole" vmsize="Medium">
    <InputEndpoints>
      <InputEndpoint name="HttpIn" port="80" protocol="http" />
    </InputEndpoints>
    <ConfigurationSettings>
      <Setting name="SimpleConfigSetting" />
    </ConfigurationSettings>
    <LocalResources>
      <LocalStorage name="localStoreOne" sizeInMB="10" />
      <LocalStorage name="localStoreTwo" sizeInMB="10" cleanOnRoleRecycle="false" />
    </LocalResources>
  </WebRole>
</ServiceDefinition>

Weitere Informationen zur Dienstdefinitionsdatei finden Sie unter Windows Azure-Dienstdefinitionsschema (.csdef-Datei).

noteHinweis
Wenn Sie die Windows Azure-Tools für Microsoft Visual Studio verwenden, können Sie eine lokale Speicherressource auf den Eigenschaftenseiten für die Rolle definieren. Weitere Informationen finden Sie unter Konfigurieren einer Windows Azure-Anwendung.

Zugreifen auf eine lokale Speicherressource zur Laufzeit

Die verwaltete Windows Azure-Bibliothek stellt Klassen für den Zugriff auf die lokale Speicherressource aus Code bereit, der in einer Rolleninstanz ausgeführt wird. Die RoleEnvironment.GetLocalResource-Methode gibt einen Verweis auf das benannte LocalResource-Objekt zurück.

Da das LocalResource-Objekt ein Verzeichnis darstellt, können Sie mit den .NET-Standardklassen für Datei-E/A-Vorgänge aus dem Verzeichnis lesen und in das Verzeichnis schreiben. Um den Pfad zum Verzeichnis der lokalen Speicherressource zu bestimmen, verwenden Sie die LocalResource.RootPath-Eigenschaft. Diese Eigenschaft gibt den vollständigen Pfad zur lokalen Speicherressource, einschließlich des benannten Ressourcenverzeichnisses, zurück. Wenn der Dienst beispielsweise in der Entwicklungsumgebung ausgeführt wird, ist die lokale Speicherressource im lokalen Dateisystem definiert, und die RootPath-Eigenschaft gibt einen Wert wie den folgenden zurück:

C:\Users\myaccount\AppData\Local\dftmp\s0\deployment(1)\res\deployment(1).MyService.MyService_WebRole.0\directory\localStoreOne\

Wenn der Dienst in Windows Azure bereitgestellt wird, enthält der Pfad zur lokalen Speicherressource die Bereitstellungs-ID, und die RootPath-Eigenschaft gibt einen Wert wie den folgenden zurück:

C:\Resources\directory\f335471d5a5845aaa4e66d0359e69066.MyService_WebRole.localStoreOne\

In einer Rolleninstanz ausgeführter Code kann ab dem Zeitpunkt, zu dem die Instanz online geschaltet wird, bis zu dem Zeitpunkt, zu dem sie offline geschaltet wird, auf eine lokale Speicherressource zugreifen, die für diese Rolle definiert ist.

Siehe auch

Anzeigen:
© 2014 Microsoft