Korzystanie z emulatora usługi Azurite na potrzeby lokalnego programowania w usłudze Azure Storage
Emulator open-source Azurite udostępnia bezpłatne środowisko lokalne do testowania aplikacji korzystających z usług Azure Blob, Queue Storage i Table Storage. Gdy jesteś zadowolony z działania aplikacji lokalnie, przejdź do korzystania z konta usługi Azure Storage w chmurze. Emulator zapewnia obsługę międzyplatformową w systemach Windows, Linux i macOS.
Usługa Azurite zastępuje emulator usługi Azure Storage i nadal jest aktualizowana w celu obsługi najnowszych wersji interfejsów API usługi Azure Storage.
W tym filmie wideo pokazano, jak zainstalować i uruchomić emulator Azurite.
Kroki opisane w filmie wideo zostały również opisane w poniższych sekcjach. Wybierz dowolną z tych kart.
Instalowanie usługi Azurite
Usługa Azurite jest automatycznie dostępna w programie Visual Studio 2022. Plik wykonywalny Azurite jest aktualizowany w ramach nowych wersji programu Visual Studio. Jeśli korzystasz ze starszej wersji programu Visual Studio, możesz zainstalować Azurite za pomocą menedżera pakietów Node (npm), DockerHub lub sklonowania repozytorium GitHub Azurite.
Uruchom Azurite
Aby użyć platformy Azurite z większością typów projektów w programie Visual Studio, należy najpierw uruchomić plik wykonywalny Azurite. Po uruchomieniu pliku wykonywalnego usługa Azurite nasłuchuje żądań połączeń z aplikacji. Aby dowiedzieć się więcej, zobacz Uruchamianie Azurite z wiersza polecenia.
W przypadku projektów usługi Azure Functions i projektów ASP.NET można skonfigurować projekt do automatycznego uruchamiania platformy Azurite. Ta konfiguracja jest wykonywana podczas konfigurowania projektu. Chociaż ta konfiguracja projektu jest uruchamiana automatycznie przez usługę Azurite, program Visual Studio nie uwidacznia szczegółowych opcji konfiguracji Azurite. Aby dostosować szczegółowe opcje konfiguracji Azurite, uruchom plik wykonywalny Azurite przed uruchomieniem programu Visual Studio.
Aby dowiedzieć się więcej na temat konfigurowania projektów usługi Azure Functions i ASP.NET projektów w celu automatycznego uruchamiania usługi Azurite, zobacz następujące wskazówki:
- Uruchamianie rozwiązania Azurite z projektu usługi Azure Functions
- Uruchamianie usługi Azurite z projektu ASP.NET
Lokalizacja pliku wykonywalnego Azurite
W poniższej tabeli przedstawiono lokalizację pliku wykonywalnego Azurite dla różnych wersji programu Visual Studio uruchomionych na maszynie z systemem Windows:
Wersja programu Visual Studio | Lokalizacja pliku wykonywalnego Azurite |
---|---|
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 |
Uruchamianie Azurite z wiersza polecenia
Plik wykonywalny Azurite można znaleźć w folderze rozszerzeń instalacji programu Visual Studio, zgodnie z opisem w tabeli lokalizacji pliku wykonywalnego Azurite.
Przejdź do odpowiedniej lokalizacji i uruchom azurite.exe
. Po uruchomieniu pliku wykonywalnego Azurite nasłuchuje połączeń.
Aby dowiedzieć się więcej o dostępnych opcjach wiersza polecenia w celu skonfigurowania platformy Azurite, zobacz Opcje wiersza polecenia.
Uruchamianie rozwiązania Azurite z projektu usługi Azure Functions
W programie Visual Studio 2022 utwórz projekt usługi Azure Functions . Podczas ustawiania opcji projektu zaznacz pole z etykietą Użyj Azurite dla konta magazynu środowiska uruchomieniowego.
Po utworzeniu projektu Azurite uruchamia się automatycznie. Lokalizacja pliku wykonywalnego Azurite jest szczegółowa w tabeli lokalizacji pliku wykonywalnego Azurite. Dane wyjściowe wyglądają podobnie do poniższego zrzutu ekranu:
Tę opcję konfiguracji można zmienić później, modyfikując zależności usług połączonych projektu.
Uruchamianie usługi Azurite z projektu ASP.NET
W programie Visual Studio 2022 utwórz projekt aplikacji internetowej ASP.NET Core . Następnie otwórz okno dialogowe Usługi połączone , wybierz pozycję Dodaj zależność usługi, a następnie wybierz pozycję Emulator usługi Storage Azurite.
W oknie dialogowym Konfigurowanie emulatora usługi Storage Azurite ustaw pole Nazwa ciągu połączenia na StorageConnectionString
, a następnie wybierz pozycję Zakończ.
Po zakończeniu konfiguracji wybierz pozycję Zamknij, a emulator Azurite zostanie uruchomiony automatycznie. Lokalizacja pliku wykonywalnego Azurite jest szczegółowa w tabeli lokalizacji pliku wykonywalnego Azurite. Dane wyjściowe wyglądają podobnie do poniższego zrzutu ekranu:
Tę opcję konfiguracji można zmienić później, modyfikując zależności usług połączonych projektu.
Opcje wiersza polecenia
W tej sekcji szczegółowo przedstawiono przełączniki wiersza polecenia dostępne podczas uruchamiania platformy Azurite.
Pomoc
Opcjonalnie — uzyskaj pomoc w wierszu polecenia przy użyciu przełącznika -h
lub --help
.
azurite -h
azurite --help
Hosting nasłuchujący
Opcjonalnie — domyślnie Azurite nasłuchuje 127.0.0.1 jako serwer lokalny. Użyj przełącznika --blobHost
, aby ustawić adres zgodnie z wymaganiami.
Akceptuj żądania tylko na komputerze lokalnym:
azurite --blobHost 127.0.0.1
Zezwalaj na żądania zdalne:
azurite --blobHost 0.0.0.0
Ostrożność
Zezwolenie na żądania zdalne może sprawić, że system będzie narażony na ataki zewnętrzne.
Konfiguracja portu nasłuchiwania
Opcjonalnie — domyślnie Azurite nasłuchuje usługi Blob Service na porcie 10000. Użyj przełącznika --blobPort
, aby określić wymagany port nasłuchiwania.
Uwaga
Po użyciu dostosowanego portu należy zaktualizować parametry połączenia lub odpowiednią konfigurację w narzędziach lub zestawach SDK usługi Azure Storage.
Dostosuj port nasłuchiwania usługi Blob Service:
azurite --blobPort 8888
Pozwól systemowi automatycznie wybrać dostępny port:
azurite --blobPort 0
Port używany jest wyświetlany podczas uruchamiania Azurite.
Ścieżka obszaru roboczego
Opcjonalnie — Azurite przechowuje dane na dysku lokalnym podczas wykonywania. Użyj przełącznika -l
lub --location
, aby określić ścieżkę jako lokalizację obszaru roboczego. Domyślnie jest używany bieżący katalog roboczy procesu. Zanotuj małą literę "l".
azurite -l c:\azurite
azurite --location c:\azurite
Dziennik dostępu
Opcjonalne — domyślnie dziennik dostępu jest wyświetlany w oknie konsoli. Wyłącz wyświetlanie dziennika dostępu przy użyciu przełącznika -s
lub --silent
.
azurite -s
azurite --silent
Dziennik debugowania
Opcjonalnie — dziennik debugowania zawiera szczegółowe informacje dotyczące każdego żądania i śladu stosu wyjątków. Włącz dziennik debugowania, podając prawidłową lokalną ścieżkę pliku do przełącznika -d
lub --debug
.
azurite -d path/debug.log
azurite --debug path/debug.log
Tryb luźny
Opcjonalnie — domyślnie usługa Azurite stosuje tryb ścisły w celu blokowania nieobsługiwanych nagłówków i parametrów żądań. Wyłącz tryb ścisły przy użyciu przełącznika -L
lub --loose
. Zanotuj dużą literę L.
azurite -L
azurite --loose
Wersja
Opcjonalnie — wyświetl zainstalowany numer wersji Azurite przy użyciu przełącznika -v
lub --version
.
azurite -v
azurite --version
Konfiguracja certyfikatu (HTTPS)
Opcjonalnie — domyślnie Azurite używa protokołu HTTP. Tryb HTTPS można włączyć, podając ścieżkę do pliku certyfikatu Rozszerzenia ochrony prywatności (.pem) lub do pliku certyfikatu Wymiany informacji osobistych (.pfx) dla przełącznika --cert
. Protokół HTTPS jest wymagany do nawiązania połączenia z usługą Azurite przy użyciu uwierzytelniania OAuth.
W przypadku pliku PEM należy podać odpowiedni przełącznik --key
.
azurite --cert path/server.pem --key path/key.pem
W przypadku --cert
podania pliku PFX należy podać odpowiedni --pwd
przełącznik.
azurite --cert path/server.pfx --pwd pfxpassword
Konfiguracja protokołu HTTPS
Aby uzyskać szczegółowe informacje na temat generowania plików PEM i PFX, zobacz Konfigurowanie protokołu HTTPS.
Konfiguracja protokołu OAuth
Opcjonalnie — włącz uwierzytelnianie OAuth dla Azurite przy użyciu przełącznika --oauth
.
azurite --oauth basic --cert path/server.pem --key path/key.pem
Uwaga
Protokół OAuth wymaga punktu końcowego HTTPS. Upewnij się, że protokół HTTPS jest włączony, podając --cert
przełącznik wraz z przełącznikiem --oauth
.
Usługa Azurite obsługuje uwierzytelnianie podstawowe, określając parametr basic
dla przełącznika --oauth
. Azurite wykonuje podstawowe uwierzytelnianie, takie jak weryfikowanie przychodzącego tokenu nośnika, sprawdzanie wystawcy, odbiorcy i daty wygaśnięcia. Usługa Azurite nie sprawdza podpisu ani uprawnień tokenu. Aby dowiedzieć się więcej na temat autoryzacji, zobacz Autoryzacja dla narzędzi i zestawów SDK.
Pomiń sprawdzanie wersji interfejsu API
Opcjonalnie — podczas uruchamiania usługa Azurite sprawdza, czy żądana wersja interfejsu API jest prawidłowa. Następujące polecenie pomija sprawdzanie wersji interfejsu API:
azurite --skipApiVersionCheck
Wyłącz adres URL w stylu produkcyjnym
Opcjonalne. W przypadku używania pełnej nazwy domeny zamiast adresu IP w hoście żądania URI, domyślnie Azurite analizuje nazwę konta magazynu z hosta żądania URI. Możesz wymusić parsowanie nazwy konta magazynowego ze ścieżki URI żądania przy użyciu polecenia --disableProductStyleUrl
:
azurite --disableProductStyleUrl
Trwałość w pamięci
Opcjonalne. Domyślnie metadane obiektów blob i kolejki są utrwalane na dysku, a zawartość jest utrwalana w plikach rozszerzeń. Usługa Table Storage utrwala wszystkie dane na dysku. Możesz wyłączyć utrwalanie wszystkich danych na dysku i przechowywać tylko dane w pamięci. W scenariuszu trwałości w pamięci, jeśli proces Azurite zostanie zakończony, wszystkie dane zostaną utracone. Domyślne zachowanie trwałości można zmienić, używając następującej opcji:
azurite --inMemoryPersistence
To ustawienie jest odrzucane, gdy implementacja metadanych opartych na języku SQL jest włączona (za pośrednictwem AZURITE_DB
), lub gdy jest określona --location
opcja.
Zakres limitu pamięci
Opcjonalne. Domyślnie magazyn danych w pamięci (dla zawartości typu blob i kolejki) jest ograniczony do 50% całkowitej pamięci dostępnej na maszynie hosta. Suma jest obliczana przy użyciu metody os.totalmem()
. Ten limit można zastąpić przy użyciu następującej opcji:
azurite --extentMemoryLimit <megabytes>
Nie ma żadnych ograniczeń dotyczących wartości określonej dla tej opcji, ale pamięć wirtualna może być używana, jeśli limit przekracza ilość dostępnej pamięci fizycznej, jak podano w systemie operacyjnym. Wysoki limit może ostatecznie prowadzić do błędów braku pamięci lub zmniejszenia wydajności. Ta opcja jest odrzucana, gdy --inMemoryPersistence
nie jest określona.
Aby dowiedzieć się więcej, przeczytaj Używanie pamięci do przechowywania danych.
Wyłączanie zbierania danych telemetrycznych
Opcjonalne. Domyślnie Azurite zbiera dane telemetryczne, aby pomóc ulepszyć produkt. Użyj opcji --disableTelemetry
, aby wyłączyć zbieranie danych telemetrycznych dla bieżącej sesji Azurite, takie jak następujące polecenie:
azurite --disableTelemetry
Nawiązywanie połączenia z usługą Azurite przy użyciu zestawów SDK i narzędzi
Możesz nawiązać połączenie z usługą Azurite z poziomu zestawów SDK usługi Azure Storage lub narzędzi, takich jak Eksplorator usługi Azure Storage. Uwierzytelnianie jest wymagane, a Azurite obsługuje autoryzację za pomocą protokołu OAuth, klucza współdzielonego i sygnatur dostępu współdzielonego (SAS). Usługa Azurite obsługuje również anonimowy dostęp do kontenerów publicznych.
Aby dowiedzieć się więcej na temat używania platformy Azurite z zestawami SDK platformy Azure, zobacz Zestawy SDK platformy Azure.
Znane konto pamięci masowej i klucz
Usługa Azurite akceptuje to samo dobrze znane konto i klucz używany przez starszy emulator usługi Azure Storage.
- Nazwa konta:
devstoreaccount1
- Klucz konta:
Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==
Niestandardowe konta pamięci i klucze
Azurite obsługuje niestandardowe nazwy i klucze kont magazynu, ustawiając zmienną środowiskową AZURITE_ACCOUNTS
w następującym formacie: account1:key1[:key2];account2:key1[:key2];...
.
Na przykład użyj niestandardowego konta magazynu, które ma jeden klucz:
set AZURITE_ACCOUNTS="account1:key1"
export AZURITE_ACCOUNTS="account1:key1"
Uwaga
Klucze konta muszą być ciągiem zakodowanym w formacie base64.
Użyj wielu kont magazynu, z których każde ma dwa klucze:
set AZURITE_ACCOUNTS="account1:key1:key2;account2:key1:key2"
export AZURITE_ACCOUNTS="account1:key1:key2;account2:key1:key2"
Usługa Azurite domyślnie odświeża niestandardowe nazwy kont i klucze ze zmiennej środowiskowej co minutę. Dzięki tej funkcji można dynamicznie zarządzać kluczem konta lub dodawać nowe konta magazynowe bez ponownego uruchamiania Azurite.
Uwaga
Domyślne devstoreaccount1
konto magazynu jest wyłączone podczas ustawiania niestandardowych kont magazynu. Jeśli chcesz nadal używać devstoreaccount1
po włączeniu niestandardowych kont magazynu, musisz dodać je do listy niestandardowych kont i kluczy w zmiennej środowiskowej AZURITE_ACCOUNTS
.
Klucze konta muszą być ciągiem zakodowanym w formacie base64.
Łańcuchy połączenia
Najprostszym sposobem nawiązania połączenia z usługą Azurite z aplikacji jest skonfigurowanie parametrów połączenia w pliku konfiguracji aplikacji, który odwołuje się do skrótu UseDevelopmentStorage=true. Oto przykład parametrów połączenia w pliku app.config :
<appSettings>
<add key="StorageConnectionString" value="UseDevelopmentStorage=true" />
</appSettings>
Parametry połączenia HTTP
Następujące parametry połączenia można przekazać do zestawów SDK platformy Azure lub narzędzi, takich jak interfejs wiersza polecenia platformy Azure 2.0 lub Eksplorator usługi Storage.
Pełne parametry połączenia to:
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;
Aby nawiązać połączenie z określoną usługą, możesz użyć następujących parametrów połączenia:
Aby nawiązać połączenie tylko z usługą Blob Storage, parametry połączenia to:
DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
Parametry połączenia HTTPS
Pełny ciąg połączenia HTTPS to:
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;
Aby nawiązać połączenie z określoną usługą, możesz użyć następujących parametrów połączenia:
Aby używać tylko usługi blob, parametry połączenia HTTPS to:
DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://127.0.0.1:10000/devstoreaccount1;
Jeśli użyłeś dotnet dev-certs
do wygenerowania swojego certyfikatu z podpisem własnym, użyj następującego ciągu połączenia.
DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=https://localhost:10000/devstoreaccount1;QueueEndpoint=https://localhost:10001/devstoreaccount1;TableEndpoint=https://localhost:10002/devstoreaccount1;
Zaktualizuj ciąg połączenia podczas korzystania z niestandardowych kont magazynu i kluczy.
Aby uzyskać więcej informacji, zobacz Konfigurowanie parametry połączenia usługi Azure Storage.
Zestawy Azure SDK
Aby nawiązać połączenie z usługą Azurite przy użyciu zestawów SDK platformy Azure, wykonaj następujące kroki:
- Włącz uwierzytelnianie OAuth dla Azurite za pośrednictwem przełącznika
--oauth
. Aby dowiedzieć się więcej, zobacz Konfiguracja protokołu OAuth. - Włącz protokół HTTPS przy użyciu certyfikatu z podpisem własnym poprzez opcje
--cert
,--key
, /,--pwd
. Aby dowiedzieć się więcej na temat generowania certyfikatów, zobacz Konfiguracja certyfikatu (HTTPS) i Konfiguracja protokołu HTTPS.
Po utworzeniu certyfikatów uruchom usługę Azurite przy użyciu następujących opcji wiersza polecenia:
azurite --oauth basic --cert cert-name.pem --key cert-name-key.pem
Zastąp cert-name.pem
nazwą pliku certyfikatu i certname-key.pem
nazwą pliku klucza. Jeśli używasz certyfikatu PFX, użyj --pwd
opcji zamiast --key
opcji .
Aby wchodzić w interakcje z zasobami usługi Blob Storage, możesz utworzyć wystąpienie obiektu BlobContainerClient
, BlobServiceClient
, lub BlobClient
.
W poniższych przykładach pokazano, jak autoryzować BlobContainerClient
obiekt przy użyciu trzech różnych mechanizmów autoryzacji: DefaultAzureCredential, parametry połączenia i klucz wspólny.
DefaultAzureCredential
udostępnia mechanizm uwierzytelniania oparty na tokenach elementu nośnego i używa łańcucha typów poświadczeń używanych do uwierzytelniania. Po uwierzytelnieniu to poświadczenie przekazuje token OAuth podczas inicjacji klienta. Aby dowiedzieć się więcej, zobacz dokumentację klasy 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==")
);
Eksplorator usługi Microsoft Azure Storage
Eksplorator usługi Storage umożliwia wyświetlanie danych przechowywanych w Azurite.
Nawiązywanie połączenia z usługą Azurite przy użyciu protokołu HTTP
W Eksploratorze usługi Storage połącz się z usługą Azurite, wykonując następujące kroki:
- Wybierz ikonę Zarządzaj kontami
- Wybierz pozycję Dodaj konto
- Wybierz pozycję Dołącz do emulatora lokalnego
- Wybierz Dalej
- Edytuj pole Nazwa wyświetlana na wybraną przez siebie nazwę
- Ponownie wybierz pozycję Dalej
- Wybierz pozycję Połącz
Nawiązywanie połączenia z usługą Azurite przy użyciu protokołu HTTPS
Domyślnie Eksplorator usługi Storage nie otwiera punktu końcowego HTTPS korzystającego z certyfikatu z podpisem własnym. Jeśli korzystasz z usługi Azurite z protokołem HTTPS, prawdopodobnie używasz certyfikatu z podpisem własnym. W Eksploratorze usługi Storage zaimportuj certyfikaty SSL za pośrednictwem okna dialogowego Edytowanie certyfikatów> SSL ->Importowanie certyfikatów.
Importowanie certyfikatu do Eksploratora usługi Storage
- Znajdź certyfikat na komputerze lokalnym.
- W Eksploratorze usługi Storage przejdź do pozycji Edytuj ->CERTYFIKATY SSL ->Importuj certyfikaty i zaimportuj certyfikat.
Jeśli nie zaimportujesz certyfikatu, wystąpi błąd:
unable to verify the first certificate
lub self signed certificate in chain
Dodawanie usługi Azurite za pośrednictwem parametrów połączenia HTTPS
Wykonaj następujące kroki, aby dodać protokół Azurite HTTPS do Eksploratora usługi Storage:
- Wybierz Przełącz Eksploratora
- Wybierz Lokalne i załączone
- Kliknij prawym przyciskiem myszy pozycję Konta magazynu i wybierz pozycję Połącz z usługą Azure Storage.
- Wybierz Użyj ciągu połączenia
- Wybierz Dalej.
- Wprowadź wartość w polu Nazwa wyświetlana .
- Wprowadź parametry połączenia HTTPS z poprzedniej sekcji tego dokumentu
- Wybierz Dalej
- Wybierz pozycję Połącz
Struktura obszaru roboczego
Podczas inicjowania usługi Azurite można utworzyć następujące pliki i foldery w lokalizacji obszaru roboczego.
-
__blobstorage__
— Katalog zawierający dane binarne utrwalone w usłudze Azurite Blob Service -
__queuestorage__
- Katalog zawierający trwałe dane binarne usługi kolejki Azurite -
__tablestorage__
- Katalog zawierający usługę tabel Azurite utrwalone dane binarne -
__azurite_db_blob__.json
- Azurite blob service metadata file (Plik metadanych usługi Azurite blob service) -
__azurite_db_blob_extent__.json
- Plik metadanych zakresu usługi Blob platformy Azure Azurite -
__azurite_db_queue__.json
- Plik metadanych usługi kolejki Azurite -
__azurite_db_queue_extent__.json
- Plik metadanych zakresu usługi kolejki Azurite -
__azurite_db_table__.json
- Azurite table service metadata file (Plik metadanych usługi tabel Azurite) -
__azurite_db_table_extent__.json
- Plik metadanych zakresu usługi tabel Azurite
Aby wyczyścić usługę Azurite, usuń powyższe pliki i foldery i uruchom ponownie emulator.
Różnice między usługą Azurite i usługą Azure Storage
Istnieją różnice funkcjonalne między lokalnym wystąpieniem usługi Azurite i kontem usługi Azure Storage w chmurze.
Adres URL punktu końcowego i połączenia
Punkty końcowe usługi dla platformy Azurite różnią się od punktów końcowych konta usługi Azure Storage. Komputer lokalny nie obsługuje rozpoznawania nazw domen, co wymaga od punktów końcowych Azurite adresów lokalnych.
Gdy adresujesz zasób na koncie Azure Storage, nazwa konta jest częścią nazwy hosta URI. Adresowany zasób jest częścią ścieżki identyfikatora URI:
<http|https>://<account-name>.<service-name>.core.windows.net/<resource-path>
Następujący identyfikator URI jest prawidłowym adresem obiektu blob na koncie usługi Azure Storage:
https://myaccount.blob.core.windows.net/mycontainer/myblob.txt
Adres URL stylizowany na IP
Ponieważ komputer lokalny nie rozpoznaje nazw domen, nazwa konta jest częścią ścieżki identyfikatora URI zamiast nazwy hosta. Użyj następującego formatu identyfikatora URI dla zasobu w usłudze Azurite:
http://<local-machine-address>:<port>/<account-name>/<resource-path>
Następujący adres może służyć do uzyskiwania dostępu do obiektu blob w Azurite:
http://127.0.0.1:10000/myaccount/mycontainer/myblob.txt
Adres URL w stylu produkcyjnym
Opcjonalnie możesz zmodyfikować plik hostów, aby uzyskać dostęp do konta przy użyciu adresu URL w formie produkcyjnej.
Najpierw dodaj jeden lub więcej wierszy do pliku hosts. Na przykład:
127.0.0.1 account1.blob.localhost
127.0.0.1 account1.queue.localhost
127.0.0.1 account1.table.localhost
Następnie ustaw zmienne środowiskowe, aby włączyć spersonalizowane konta magazynu i klucze.
set AZURITE_ACCOUNTS="account1:key1:key2"
Możesz dodać więcej kont. Zobacz sekcję Niestandardowe konta przechowywania i klucze w tym artykule.
Uruchom usługę Azurite i użyj dostosowanych parametrów połączenia, aby uzyskać dostęp do konta. W poniższym przykładzie parametry połączenia zakładają, że są używane porty domyślne.
DefaultEndpointsProtocol=http;AccountName=account1;AccountKey=key1;BlobEndpoint=http://account1.blob.localhost:10000;QueueEndpoint=http://account1.queue.localhost:10001;TableEndpoint=http://account1.table.localhost:10002;
Nie uzyskujesz dostępu do domyślnego konta w ten sposób za pomocą Eksploratora usługi Azure Storage. Eksplorator usługi Storage ma błąd, który powoduje, że zawsze dodaje nazwę konta do ścieżki adresu URL, co prowadzi do błędów.
Domyślnie w przypadku używania Azurite z adresem URL w stylu produkcyjnym nazwa konta powinna być w pełni kwalifikowaną nazwą domeny hosta, taką jak http://devstoreaccount1.blob.localhost:10000/container
. Aby użyć adresu URL w stylu produkcyjnym z nazwą konta w ścieżce adresu URL, takiej jak http://foo.bar.com:10000/devstoreaccount1/container
, pamiętaj, aby użyć parametru --disableProductStyleUrl
podczas uruchamiania Azurite.
Jeśli używasz host.docker.internal
jako hosta identyfikatora URI żądania (na przykład: http://host.docker.internal:10000/devstoreaccount1/container
), Azurite pobiera nazwę konta ze ścieżki identyfikatora URI żądania. To zachowanie jest prawdziwe niezależnie od tego, czy używasz parametru --disableProductStyleUrl
podczas uruchamiania Azurite.
Skalowanie i wydajność
Usługa Azurite nie obsługuje dużej liczby połączonych klientów. Nie ma gwarancji wydajności. Azurite jest przeznaczony do celów programistycznych i testowych.
Obsługa błędów
Usługa Azurite jest zgodna z logiką obsługi błędów usługi Azure Storage, ale istnieją różnice. Na przykład komunikaty o błędach mogą być inne, a kody stanu błędów są zgodne.
RA-GRS
Usługa Azurite obsługuje geograficznie nadmiarową replikację z dostępem do odczytu (RA-GRS). W przypadku zasobów magazynu uzyskaj dostęp do lokalizacji pomocniczej, dołączając -secondary
do nazwy konta. Na przykład następujący adres może służyć do uzyskiwania dostępu do obiektu blob przy użyciu pomocniczego tylko do odczytu w Azurite:
http://127.0.0.1:10000/devstoreaccount1-secondary/mycontainer/myblob.txt
Obsługa tabel
Obsługa tabel w Azurite jest obecnie dostępna w wersji zapoznawczej. Aby uzyskać więcej informacji, zobacz projekt Azurite V3 Table .
Obsługa funkcji trwałych wymaga tabel.
Ważne
Obsługa Azurite dla Table Storage jest obecnie dostępna w wersji zapoznawczej. Zobacz dodatkowe warunki użytkowania dla wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z postanowieniami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta, wersji zapoznawczej lub w inny sposób nie zostały jeszcze wydane w wersji ogólnodostępnej.
Azurite jest otwartym oprogramowaniem
Wkład i sugestie dotyczące Azurite są mile widziane. Przejdź do strony projektu GitHub Azurite lub do strony problemów GitHub, aby zobaczyć kamienie milowe i elementy robocze, które śledzimy w związku z przyszłymi funkcjami i poprawkami błędów. Szczegółowe elementy robocze są również śledzone w usłudze GitHub.
Następne kroki
- Użyj emulatora usługi Azure Storage, aby uzyskać dokumenty programistyczne i testowe starszego emulatora usługi Azure Storage, który został zastąpiony przez usługę Azurite.
- W artykule Configure Azure Storage connection strings (Konfigurowanie parametrów połączenia usługi Azure Storage ) wyjaśniono, jak utworzyć prawidłowe parametry połączenia usługi Azure Storage.