Verwenden des Azurite-Emulators für die lokale Azure Storage-Entwicklung

Der Azurite-Open-Source-Emulator bietet eine kostenlose lokale Umgebung zum Testen Ihrer Azure Blob-, Queue Storage- und Table Storage-Anwendungen. Wenn Sie mit der Funktion Ihrer Anwendung auf lokaler Ebene zufrieden sind, können Sie zur Verwendung eines Azure Storage-Kontos in der Cloud übergehen. Der Emulator bietet plattformübergreifende Unterstützung unter Windows, Linux und macOS.

Azurite ersetzt den Azure Storage-Emulator und wird weiterhin aktualisiert, um die neuesten Versionen von Azure Storage-APIs zu unterstützen.

In diesem Video erfahren Sie, wie Sie den Azurite-Emulator installieren und ausführen.

Die Schritte im Video werden auch in den folgenden Abschnitten beschrieben. Wählen Sie eine dieser Registerkarten aus.

Installieren von Azurite

Azurite ist automatisch mit Visual Studio 2022 verfügbar. Die ausführbare Azurite-Datei wird als Teil der neuen Visual Studio-Versionen aktualisiert. Wenn Sie eine frühere Version von Visual Studio ausführen, können Sie Azurite mithilfe des Node-Paket-Managers (npm), mithilfe von DockerHub oder durch Klonen des Azurite GitHub-Repositorys installieren.

Ausführen von Azurite

Um Azurite mit den meisten Projekttypen in Visual Studio zu verwenden, müssen Sie zunächst die ausführbare Azurite-Datei ausführen. Sobald die ausführbare Datei ausgeführt wird, lauscht Azurite auf Verbindungsanforderungen von der Anwendung. Weitere Informationen finden Sie unter Ausführen von Azurite über die Befehlszeile.

Für Azure Functions-Projekte und ASP.NET-Projekte können Sie das Projekt so konfigurieren, dass Azurite automatisch gestartet wird. Diese Konfiguration erfolgt während der Projekteinrichtung. Auch wenn diese Projektkonfiguration Azurite automatisch startet, macht Visual Studio keine detaillierten Azurite-Konfigurationsoptionen verfügbar. Um detaillierte Azurite-Konfigurationsoptionen anzupassen, führen Sie die ausführbare Azurite-Datei aus, bevor Sie Visual Studio starten.

Weitere Informationen zum Konfigurieren von Azure Functions-Projekten und ASP.NET-Projekten zum automatischen Starten von Azurite finden Sie in den folgenden Leitfäden:

Dateispeicherort der ausführbaren Azurite-Datei

Die folgende Tabelle enthält den Speicherort der ausführbaren Azurite-Datei für verschiedene Versionen von Visual Studio bei der Ausführung auf einem Windows-Computer:

Visual Studio-Version Speicherort der ausführbaren Azurite-Datei
Visual Studio Community 2022 C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator
Visual Studio Professional 2022 C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator
Visual Studio Enterprise 2022 C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator

Ausführen von Azurite über die Befehlszeile

Sie finden die ausführbare Azurite-Datei im Erweiterungsordner Ihrer Visual Studio-Installation, wie in der Tabelle der Speicherorte für die ausführbare Azurite-Datei beschrieben.

Navigieren Sie zum entsprechenden Speicherort, und starten Sie azurite.exe. Nachdem Sie die ausführbare Datei ausgeführt haben, hört Azurite Verbindungen ab.

Azurite command-line output

Weitere Informationen zu den verfügbaren Befehlszeilenoptionen zum Konfigurieren von Azurite finden Sie unter Befehlszeilenoptionen.

Ausführen von Azurite aus einem Azure Functions-Projekt

Erstellen Sie in Visual Studio 2022 ein Azure Functions-Projekt. Aktivieren Sie bei Einstellung der Projektoptionen das Kontrollkästchen Azurite für das Runtime-Speicherkonto verwenden.

A screenshot showing how to set Azurite to be the runtime storage account for an Azure Functions project.

Nachdem Sie das Projekt erstellt haben, wird Azurite automatisch gestartet. Der Speicherort der ausführbaren Azurite-Datei ist in der Tabelle der Speicherorte für die ausführbare Azurite-Datei angegeben. Die Ausgabe sieht in etwa wie im folgenden Screenshot aus:

A screenshot showing output after setting Azurite to be the runtime storage account for an Azure Functions project.

Diese Konfigurationsoption kann später geändert werden, indem die Abhängigkeiten der Verbundenen Dienste des Projekts geändert werden.

Ausführen von Azurite aus einem ASP.NET-Projekt

Erstellen Sie in Visual Studio 2022 eine ASP.NET Core-Web-App. Öffnen Sie dann das Dialogfeld Verbundene Dienste, und wählen Sie Dienstabhängigkeit hinzufügen sowie Storage Azurite-Emulator aus.

A screenshot showing how to add Azurite as a dependency to an ASP.NET project.

Legen Sie im Dialogfeld Storage Azurite-Emulator konfigurieren das Feld Verbindungszeichenfolgenname auf StorageConnectionString fest, und wählen Sie dann Fertig stellen aus.

A screenshot showing how to configure a connection string to use Azurite with an ASP.NET project.

Wenn die Konfiguration abgeschlossen ist, wählen Sie Schließen aus. Der Azurite-Emulator wird automatisch gestartet. Der Speicherort der ausführbaren Azurite-Datei ist in der Tabelle der Speicherorte für die ausführbare Azurite-Datei angegeben. Die Ausgabe sieht in etwa wie im folgenden Screenshot aus:

A screenshot showing output after connecting an ASP.NET project to the Azurite emulator.

Diese Konfigurationsoption kann später geändert werden, indem die Abhängigkeiten der Verbundenen Dienste des Projekts geändert werden.

Befehlszeilenoptionen

Dieser Abschnitt beschreibt die Befehlszeilenoptionen, die zum Starten von Azurite verfügbar sind.

Hilfe

Optional – Abrufen von Befehlszeilenhilfe mit dem Switch -h oder --help.

azurite -h
azurite --help

Lauschhost

Optional: Standardmäßig lauscht Azurite unter 127.0.0.1 als lokalem Server. Verwenden Sie die Option --blobHost, um die Adresse entsprechend Ihren Anforderungen festzulegen.

Nur Anforderungen auf dem lokalen Computer annehmen:

azurite --blobHost 127.0.0.1

Remoteanforderungen annehmen:

azurite --blobHost 0.0.0.0

Achtung

Wenn Sie Remoteanforderungen zulassen, wird Ihr System eventuell anfälliger für externe Bedrohungen.

Lauschportkonfiguration

Optional: Standardmäßig lauscht Azurite an Port 10000 auf den Blob-Dienst. Verwenden Sie die Option --blobPort, um den erforderlichen Lauschport anzugeben.

Hinweis

Nachdem Sie einen benutzerdefinierten Port verwendet haben, müssen Sie die Verbindungszeichenfolge oder die entsprechende Konfiguration in Ihren Azure Storage-Tools oder -SDKs aktualisieren.

Lauschport für den Blob-Dienst anpassen:

azurite --blobPort 8888

Automatische Auswahl eines verfügbaren Ports durch das System:

azurite --blobPort 0

Der verwendete Port wird beim Start von Azurite angezeigt.

Arbeitsbereichspfad

Optional – Azurite speichert während der Ausführung Daten auf dem lokalen Datenträger. Verwenden Sie die Option -l oder --location, um einen Pfad als Speicherort für den Arbeitsbereich anzugeben. Standardmäßig wird das Arbeitsverzeichnis des aktuellen Prozesses verwendet. Beachten Sie den Kleinbuchstaben „l“.

azurite -l c:\azurite
azurite --location c:\azurite

Zugriffsprotokoll

Optional – Standardmäßig wird das Zugriffsprotokoll im Konsolenfenster angezeigt. Deaktivieren Sie die Anzeige des Zugriffsprotokolls mit der Option -s oder --silent.

azurite -s
azurite --silent

Debugprotokoll

Optional – Das Debugprotokoll enthält ausführliche Informationen zu jeder Anforderung und jeder Ausnahmestapelüberwachung. Aktivieren Sie das Debugprotokoll, indem Sie für die Option -d oder --debug einen gültigen lokalen Dateipfad angeben.

azurite -d path/debug.log
azurite --debug path/debug.log

Loose-Modus

Optional – Standardmäßig wendet Azurite den Strict-Modus an, um nicht unterstützte Anforderungsheader und Parameter zu blockieren. Der Strict-Modus kann mithilfe der Option -L oder --loose deaktiviert werden. Beachten Sie den Großbuchstaben „L“.

azurite -L
azurite --loose

Version

Optional: Anzeigen der installierten Azurite-Versionsnummer mit der Option -v oder --version.

azurite -v
azurite --version

Zertifikatkonfiguration (HTTPS)

Optional – Standardmäßig verwendet Azurite das HTTP-Protokoll. Sie können den HTTPS-Modus aktivieren, indem Sie einen Pfad zu einer PEM-Zertifikatdatei (Privacy Enhanced Mail) oder einer PFX-Zertifikatdatei (Personal Information Exchange) für die --cert-Option angeben. Das HTTPS ist erforderlich, um mithilfe der OAuth-Authentifizierung eine Verbindung mit Azurite herzustellen.

Wenn --cert für eine PEM-Datei bereitgestellt wird, müssen Sie einen entsprechenden Switch --key angeben.

azurite --cert path/server.pem --key path/key.pem

Wenn --cert für eine PFX-Datei bereitgestellt wird, müssen Sie einen entsprechenden Switch --pwd angeben.

azurite --cert path/server.pfx --pwd pfxpassword
HTTPS-Einrichtung

Ausführliche Informationen zum Generieren von PEM- und PFX-Dateien finden Sie unter HTTPS-Setup.

OAuth-Konfiguration

Optional – Aktivieren von OAuth-Authentifizierung für Azurite mithilfe der Option --oauth.

azurite --oauth basic --cert path/server.pem --key path/key.pem

Hinweis

Für OAuth ist ein HTTPS-Endpunkt erforderlich. Stellen Sie sicher, dass HTTPS aktiviert ist, indem Sie den Switch --cert zusammen mit dem Switch --oauth angeben.

Azurite unterstützt die Standardauthentifizierung durch Angabe des basic-Parameters für den Switch --oauth. Azurite führt eine Standardauthentifizierung aus, z. B. durch Validierung des eingehenden Bearertokens durch Überprüfen des Ausstellers, der Zielgruppe und des Ablaufs. Azurite überprüft nicht die Tokensignatur oder die Berechtigungen. Weitere Informationen zur Autorisierung finden Sie unter Autorisierung für Tools und SDKs.

Überspringen der API-Versionsüberprüfung

Optional – Beim Starten überprüft Azurite, ob die angeforderte API-Version gültig ist. Mit dem folgenden Befehl wird die Überprüfung der API-Version übersprungen:

azurite --skipApiVersionCheck

Deaktivieren der URL im Produktionsformat

Optional. Wenn Sie den vollqualifizierten Domänennamen anstelle der IP-Adresse im URI-Host der Anforderung verwenden, parst Azurite standardmäßig den Speicherkontonamen aus dem URI-Host der Anforderung. Mithilfe von --disableProductStyleUrl können Sie das Parsen des Speicherkontonamens aus dem URI-Pfad der Anforderung erzwingen:

azurite --disableProductStyleUrl

In-Memory-Persistenz

Optional. Standardmäßig werden Blob- und Warteschlangen-Metadaten auf Datenträgern beibehalten, und der Inhalt wird in Erweiterungsdateien gespeichert. Der Tabellenspeicher speichert alle Daten auf dem Datenträger. Sie können das Speichern von Daten auf einem Datenträger deaktivieren und festlegen, dass nur Daten im Arbeitsspeicher gespeichert werden sollen. Wenn der Azurit-Prozess beendet wird, gehen im Szenario für In-Memory-Persistenz alle Daten verloren. Das Standardpersistenzverhalten kann mithilfe der folgenden Option außer Kraft gesetzt werden:

azurite --inMemoryPersistence

Diese Einstellung wird abgelehnt, wenn die SQL-basierte Metadatenimplementierung aktiviert ist (über AZURITE_DB) oder die --location-Option angegeben wird.

Erweiterungsspeicherlimit

Optional. Standardmäßig ist der In-Memory-Erweiterungsspeicher (für Blob- und Warteschlangeninhalte) auf 50 Prozent des Gesamtspeichers auf dem Hostcomputer beschränkt. Das Gesamtvolumen wird mithilfe von os.totalmem() ermittelt. Dieses Limit kann mit der folgenden Option außer Kraft gesetzt werden:

azurite --extentMemoryLimit <megabytes>

Es gibt keine Einschränkung für den für diese Option angegebenen Wert, aber der virtuelle Speicher kann verwendet werden, wenn das Limit den vom Betriebssystem bereitgestellten verfügbaren physischen Speicher überschreitet. Ein hohes Limit kann schließlich zu Speicherfehlern oder zu einer verringerten Leistung führen. Diese Option wird abgelehnt, wenn --inMemoryPersistence nicht angegeben ist.

Weitere Informationen finden Sie unter Verwenden von In-Memory-Speicher.

Herstellen einer Verbindung mit Azurite mit SDKs und Tools

Sie können über Azure Storage-SDKs oder Tools wie den Azure Storage-Explorer eine Verbindung mit Azurite herstellen. Die Authentifizierung ist erforderlich, und Azurite unterstützt die Autorisierung über OAuth, gemeinsam verwendete Schlüssel und SAS (Shared Access Signatures). Außerdem unterstützt Azurite anonymen Zugriff auf öffentliche Container.

Weitere Informationen zur Verwendung von Azurite bei den Azure SDKs finden Sie unter Azure SDKs.

Bekannte Speicherkonten und Schlüssel

Azurite akzeptiert dasselbe bekannte Konto und den Schlüssel, die auch vom früheren Azure Storage-Emulator verwendet werden.

  • Kontoname: devstoreaccount1
  • Kontoschlüssel: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==

Benutzerdefinierte Speicherkonten und Schlüssel

Azurite unterstützt benutzerdefinierte Speicherkontonamen und Schlüssel. Hierzu muss die Umgebungsvariable AZURITE_ACCOUNTS im folgenden Format festgelegt werden: account1:key1[:key2];account2:key1[:key2];....

Verwenden Sie beispielsweise ein benutzerdefiniertes Speicherkonto mit einem einzelnen Schlüssel:

set AZURITE_ACCOUNTS="account1:key1"
export AZURITE_ACCOUNTS="account1:key1"

Hinweis

Bei den Kontoschlüsseln muss es sich um eine base64-codierte Zeichenfolge handeln.

Oder verwenden Sie mehrere Speicherkonten mit jeweils zwei Schlüsseln:

set AZURITE_ACCOUNTS="account1:key1:key2;account2:key1:key2"
export AZURITE_ACCOUNTS="account1:key1:key2;account2:key1:key2"

Benutzerdefinierte Kontonamen und Schlüssel aus der Umgebungsvariablen werden von Azurite standardmäßig im Minutentakt aktualisiert. Mit diesem Feature können Sie den Kontoschlüssel dynamisch rotieren oder neue Speicherkonten hinzufügen, ohne Azurite neu zu starten.

Hinweis

Wenn Sie benutzerdefinierte Speicherkonten festlegen, wird das Standardspeicherkonto devstoreaccount1 deaktiviert. Wenn Sie nach dem Aktivieren von benutzerdefinierten Speicherkonten devstoreaccount1 weiterhin verwenden möchten, müssen Sie es der Liste der benutzerdefinierten Konten und Schlüssel in der Umgebungsvariable AZURITE_ACCOUNTS hinzufügen.

Bei den Kontoschlüsseln muss es sich um eine base64-codierte Zeichenfolge handeln.

Verbindungszeichenfolgen

Am einfachsten können Sie über Ihre Anwendung eine Verbindung mit Azurite herstellen, indem Sie in der Konfigurationsdatei der Anwendung eine Verbindungszeichenfolge konfigurieren, die auf die Verknüpfung UseDevelopmentStorage=true verweist. Eine Verbindungszeichenfolge in der Datei app.config kann beispielsweise wie folgt aussehen:

<appSettings>
  <add key="StorageConnectionString" value="UseDevelopmentStorage=true" />
</appSettings>
HTTP-Verbindungszeichenfolgen

Sie können die folgenden Verbindungszeichenfolgen an das Azure SDK oder Tools übergeben, etwa an die Azure CLI 2.0 oder Storage-Explorer.

Die vollständige Verbindungszeichenfolge lautet:

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;

Um eine Verbindung mit einem bestimmten Dienst herzustellen, können Sie die folgenden Verbindungszeichenfolgen verwenden:

Verwenden Sie die folgende Verbindungszeichenfolge, wenn Sie nur eine Verbindung mit Blob Storage herstellen möchten:

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;

HTTPS-Verbindungszeichenfolgen

Die vollständige HTTPS-Verbindungszeichenfolge lautet:

DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=https://127.0.0.1:10001/devstoreaccount1;TableEndpoint=https://127.0.0.1:10002/devstoreaccount1;

Um eine Verbindung mit einem bestimmten Dienst herzustellen, können Sie die folgenden Verbindungszeichenfolgen verwenden:

Um nur den Blob-Dienst zu verwenden, lautet die HTTPS-Verbindungszeichenfolge wie folgt:

DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://127.0.0.1:10000/devstoreaccount1;

Wenn Sie dotnet dev-certs verwendet haben, um Ihr selbstsigniertes Zertifikat zu generieren, verwenden Sie die folgende Verbindungszeichenfolge.

DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://localhost:10000/devstoreaccount1;QueueEndpoint=https://localhost:10001/devstoreaccount1;TableEndpoint=https://localhost:10002/devstoreaccount1;

Aktualisieren Sie die Verbindungszeichenfolge, wenn Sie benutzerdefinierte Speicherkonten und Schlüssel verwenden.

Weitere Informationen hierzu finden Sie unter Konfigurieren von Azure Storage-Verbindungszeichenfolgen.

Azure SDKs

Führen Sie die folgenden Schritte aus, um mithilfe der Azure SDKs eine Verbindung mit Azurite herzustellen:

  • Aktivieren Sie die OAuth-Authentifizierung für Azurite über die --oauth-Option. Weitere Informationen finden Sie unter OAuth-Konfiguration.
  • Aktivieren Sie das HTTPS mithilfe eines selbstsignierten Zertifikats über die --cert- und --key/--pwd-Optionen. Weitere Informationen zum Generieren von Zertifikaten finden Sie unter Zertifikatkonfiguration (HTTPS) und HTTPS-Setup.

Sobald die Zertifikate vorhanden sind, starten Sie Azurite mit den folgenden Befehlszeilenoptionen:

azurite --oauth basic --cert cert-name.pem --key cert-name-key.pem

Ersetzen Sie cert-name.pem und certname-key.pem durch die Namen Ihrer Zertifikat- und Schlüsseldateien. Wenn Sie ein PFX-Zertifikat nutzen, verwenden Sie die --pwd-Option anstelle der --key-Option.

Für die Interaktion mit Blob Storage-Ressourcen können Sie einen BlobContainerClient, BlobServiceClientoder BlobClient instanziieren.

In den folgenden Beispielen wird gezeigt, wie ein BlobContainerClient-Objekt mithilfe von drei verschiedenen Autorisierungsmechanismen autorisiert wird: DefaultAzureCredential, Verbindungszeichenfolge und gemeinsam verwendeter Schlüssel. DefaultAzureCredential stellt einen bearertokenbasierten Authentifizierungsmechanismus bereit und verwendet eine Kette von Anmeldeinformationstypen, die für die Authentifizierung genutzt werden. Nach der Authentifizierung stellen diese Anmeldeinformationen das OAuth-Token im Rahmen der Clientinstanziierung bereit. Weitere Informationen finden Sie in der Klassenreferenz zu „DefaultAzureCredential“.

// With container URL and DefaultAzureCredential
var client = new BlobContainerClient(
    new Uri("https://127.0.0.1:10000/devstoreaccount1/container-name"), new DefaultAzureCredential()
  );

// With connection string
var client = new BlobContainerClient(
    "DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://127.0.0.1:10000/devstoreaccount1;", "container-name"
  );

// With account name and key
var client = new BlobContainerClient(
    new Uri("https://127.0.0.1:10000/devstoreaccount1/container-name"),
    new StorageSharedKeyCredential("devstoreaccount1", "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==")
  );

Microsoft Azure Storage-Explorer

Sie können Storage-Explorer zum Anzeigen der in Azurite gespeicherten Daten verwenden.

Herstellen einer Verbindung mit Azurite mithilfe von HTTP

Stellen Sie in Storage-Explorer eine Verbindung mit Azurite her, indem Sie die folgenden Schritte ausführen:

  1. Wählen Sie das Symbol Konten verwalten aus.
  2. Wählen Sie Konto hinzufügen aus.
  3. Wählen Sie An einen lokalen Emulator anfügen aus.
  4. Wählen Sie Weiter aus.
  5. Bearbeiten Sie das Feld Anzeigename, indem Sie einen Namen Ihrer Wahl eingeben.
  6. Wählen Sie Weiter erneut aus.
  7. Wählen Sie Verbinden aus.
Herstellen einer Verbindung mit Azurite mithilfe von HTTPS

Standardmäßig öffnet Storage-Explorer keinen HTTPS-Endpunkt, der ein selbstsigniertes Zertifikat verwendet. Wenn Sie Azurite mit HTTPS ausführen, verwenden Sie wahrscheinlich ein selbstsigniertes Zertifikat. Importieren Sie in Storage-Explorer SSL-Zertifikate über das Dialogfeld Bearbeiten ->SSL-Zertifikate ->Zertifikate importieren.

Importieren des Zertifikats in Storage-Explorer
  1. Suchen Sie auf dem lokalen Computer nach dem Zertifikat.
  2. Navigieren Sie in Storage-Explorer zu Bearbeiten ->SSL-Zertifikate ->Zertifikate importieren, und importieren Sie das Zertifikat.

Wenn Sie kein Zertifikat importieren, erhalten Sie eine Fehlermeldung:

unable to verify the first certificate oder self signed certificate in chain

Hinzufügen von Azurite über eine HTTPS-Verbindungszeichenfolge

Führen Sie die folgenden Schritte aus, um Storage-Explorer Azurite HTTPS hinzuzufügen:

  1. Wählen Sie Explorer umschalten aus.
  2. Wählen Sie Lokal & angefügt aus.
  3. Klicken Sie mit der rechten Maustaste auf Speicherkonten, und klicken Sie dann auf Verbindung mit Azure Storage herstellen.
  4. Wählen Sie Verbindungszeichenfolge verwenden aus.
  5. Wählen Sie Weiter aus.
  6. Geben Sie einen Wert in das Feld Anzeigename ein.
  7. Geben Sie die HTTPS-Verbindungszeichenfolge aus dem vorherigen Abschnitt dieses Dokuments ein.
  8. Wählen Sie Weiter aus.
  9. Wählen Sie Verbinden aus.

Arbeitsbereichstruktur

Die folgenden Dateien und Ordner können beim Initialisieren von Azurite am Arbeitsbereich-Speicherort erstellt werden.

  • __blobstorage__: Verzeichnis, das persistent gespeicherte Daten des Blob-Diensts von Azurite enthält.
  • __queuestorage__: Verzeichnis, das persistent gespeicherte Daten des Warteschlangendiensts von Azurite enthält.
  • __tablestorage__: Verzeichnis, das persistent gespeicherte Binärdaten des Tabellendiensts von Azurite enthält
  • __azurite_db_blob__.json: Metadatendatei des Blob-Diensts von Azurite.
  • __azurite_db_blob_extent__.json: Erweiterungsmetadatendatei des Blob-Diensts von Azurite.
  • __azurite_db_queue__.json: Metadatendatei des Warteschlangendiensts von Azurite.
  • __azurite_db_queue_extent__.json: Erweiterungsmetadatendatei des Warteschlangendiensts von Azurite.
  • __azurite_db_table__.json: Metadatendatei des Tabellendiensts von Azurite
  • __azurite_db_table_extent__.json: Erweiterungsmetadatendatei des Tabellendiensts von Azurite

Wenn Sie Azurite bereinigen möchten, löschen Sie die oben aufgeführten Dateien und Ordner, und starten Sie den Emulator neu.

Unterschiede zwischen Azurite und Azure Storage

Es gibt funktionale Unterschiede zwischen einer lokalen Azurite-Instanz und einem Azure Storage-Konto in der Cloud.

Endpunkt und Verbindungs-URL

Die Dienstendpunkte für Azurite unterscheiden sich von denen eines Azure Storage-Kontos. Der lokale Computer führt keine Auflösung von Domänennamen durch, sodass Azurite-Endpunkte lokale Adressen sein müssen.

Wenn Sie eine Ressource in einem Azure Storage-Konto ansprechen, ist der Kontoname Teil des URI-Hostnamens. Die angesprochene Ressource ist Teil des URI-Pfades:

<http|https>://<account-name>.<service-name>.core.windows.net/<resource-path>

Der folgende URI ist eine gültige Adresse für ein Blob in einem Azure Storage-Konto:

https://myaccount.blob.core.windows.net/mycontainer/myblob.txt

URL im IP-Format

Da der lokale Computer keine Domänennamen auflöst, ist der Kontoname Teil des URI-Pfads und nicht des Hostnamens. Verwenden Sie für Ressourcen in Azurite das folgende URI-Format:

http://<local-machine-address>:<port>/<account-name>/<resource-path>

Die folgende Adresse kann beispielsweise für den Zugriff auf ein Blob in Azurite verwendet werden:

http://127.0.0.1:10000/myaccount/mycontainer/myblob.txt

URL im Produktionsformat

Optional können Sie Ihre Hostdatei ändern, um auf ein Konto mit URL im Produktionsformat zuzugreifen.

Fügen Sie Ihrer Hostdatei zuerst mindestens eine Zeile hinzu. Beispiel:

127.0.0.1 account1.blob.localhost
127.0.0.1 account1.queue.localhost
127.0.0.1 account1.table.localhost

Legen Sie als Nächstes Umgebungsvariablen fest, um angepasste Speicherkonten und Schlüssel zu aktivieren:

set AZURITE_ACCOUNTS="account1:key1:key2"

Sie können ggf. auch weitere Konten hinzufügen. Weitere Informationen finden Sie in diesem Artikel im Abschnitt Benutzerdefinierte Speicherkonten und Schlüssel.

Starten Sie Azurite, und verwenden Sie eine angepasste Verbindungszeichenfolge, um auf Ihr Konto zuzugreifen. In der folgenden Beispielverbindungszeichenfolge wird davon ausgegangen, dass die Standardports verwendet werden.

DefaultEndpointsProtocol=http;AccountName=account1;AccountKey=key1;BlobEndpoint=http://account1.blob.localhost:10000;QueueEndpoint=http://account1.queue.localhost:10001;TableEndpoint=http://account1.table.localhost:10002;

Greifen Sie mit dem Azure Storage-Explorer auf diese Weise nicht auf das Standardkonto zu. Aufgrund eines Fehlers fügt der Storage-Explorer immer den Kontonamen im URL-Pfad hinzu, was zu Fehlern führt.

Bei Verwendung von Azurite mit einer URL im Produktionsformat sollte der Kontoname standardmäßig der Hostname im vollqualifizierten Domänennamen sein (z. B. http://devstoreaccount1.blob.localhost:10000/container). Wenn Sie eine URL im Produktionsformat mit dem Kontonamen im URL-Pfad verwenden möchten (z. B. http://foo.bar.com:10000/devstoreaccount1/container), müssen Sie beim Starten von Azurite den Parameter --disableProductStyleUrl verwenden.

Wenn Sie host.docker.internal als URI-Host der Anforderung verwenden (z. B. http://host.docker.internal:10000/devstoreaccount1/container), ruft Azurite den Kontonamen aus dem URI-Pfad der Anforderung ab. Dieses Verhalten gilt unabhängig von der Verwendung des Parameters --disableProductStyleUrl beim Start von Azurite.

Skalierung und Leistung

Azurite unterstützt keine große Anzahl verbundener Clients. Es gibt keine Leistungsgarantie. Azurite ist für Entwicklungs- und Testzwecke ausgelegt.

Fehlerbehandlung

Azurite ist mit der Fehlerbehandlungslogik von Azure Storage abgestimmt, es gibt jedoch Unterschiede. Beispielsweise können Fehlermeldungen bei übereinstimmenden Fehlerstatuscodes unterschiedlich ausfallen.

RA-GRS

Azurite unterstützt die georedundante Replikation mit Lesezugriff (Read-Access Geo-Redundant Replication, RA-GRS). Greifen Sie für Speicherressourcen auf den sekundären Speicherort zu, indem Sie -secondary an den Kontonamen anfügen. Beispielsweise kann die folgende Adresse mithilfe des schreibgeschützten sekundären Speicherorts in Azurite für den Zugriff auf ein Blob verwendet werden:

http://127.0.0.1:10000/devstoreaccount1-secondary/mycontainer/myblob.txt

Tabellenunterstützung

Die Unterstützung für Tabellen in Azurite befindet sich derzeit in der Vorschau. Weitere Informationen finden Sie im Azurite V3 Table-Projekt.

Für die Unterstützung langlebiger Funktionen sind Tabellen erforderlich.

Wichtig

Die Azurite-Unterstützung für Table Storage befindet sich derzeit in der VORSCHAU. Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

Azurite ist Open Source.

Wir freuen uns über Beiträge und Vorschläge für Azurite. Auf der Seite des GitHub-Projekts und der GitHub-Problemseite für Azurite finden Sie Meilensteine und Arbeitselemente, die wir für zukünftige Features und Fehlerbehebungen berücksichtigen. Außerdem werden in GitHub detaillierte Arbeitselemente nachverfolgt.

Nächste Schritte