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:
- Ausführen von Azurite aus einem Azure Functions-Projekt
- Ausführen von Azurite aus einem ASP.NET-Projekt
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.
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.
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:
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.
Legen Sie im Dialogfeld Storage Azurite-Emulator konfigurieren das Feld Verbindungszeichenfolgenname auf StorageConnectionString
fest, und wählen Sie dann Fertig stellen aus.
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:
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
, BlobServiceClient
oder 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:
- Wählen Sie das Symbol Konten verwalten aus.
- Wählen Sie Konto hinzufügen aus.
- Wählen Sie An einen lokalen Emulator anfügen aus.
- Wählen Sie Weiter aus.
- Bearbeiten Sie das Feld Anzeigename, indem Sie einen Namen Ihrer Wahl eingeben.
- Wählen Sie Weiter erneut aus.
- 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
- Suchen Sie auf dem lokalen Computer nach dem Zertifikat.
- 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:
- Wählen Sie Explorer umschalten aus.
- Wählen Sie Lokal & angefügt aus.
- Klicken Sie mit der rechten Maustaste auf Speicherkonten, und klicken Sie dann auf Verbindung mit Azure Storage herstellen.
- Wählen Sie Verbindungszeichenfolge verwenden aus.
- Wählen Sie Weiter aus.
- Geben Sie einen Wert in das Feld Anzeigename ein.
- Geben Sie die HTTPS-Verbindungszeichenfolge aus dem vorherigen Abschnitt dieses Dokuments ein.
- Wählen Sie Weiter aus.
- 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
- Unter Verwenden des Azure-Speicheremulators für Entwicklung und Tests (veraltet) wird der veraltete Microsoft Azure-Speicheremulator beschrieben, der durch Azurite ersetzt wird.
- Unter Konfigurieren von Azure Storage-Verbindungszeichenfolgen finden Sie eine Erläuterung des Aufbaus einer gültigen Azure Storage-Verbindungszeichenfolge.