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 usługi Azure Blob, Queue Storage i Table Storage. Jeśli aplikacja działa lokalnie, przełącz się na korzystanie z konta usługi Azure Storage w chmurze. Emulator zapewnia obsługę międzyplatformową w systemach Windows, Linux i macOS.

Azurite to przyszła platforma emulatora magazynu. Azurite zastępuje emulator usługi Azure Storage. Usługa Azurite będzie nadal aktualizowana w celu obsługi najnowszych wersji interfejsów API usługi Azure Storage.

Istnieje kilka różnych sposobów instalowania i uruchamiania Azurite w systemie lokalnym. Wybierz dowolną z tych kart.

Instalowanie rozwiązania Azurite

Azurite jest automatycznie dostępny w programie Visual Studio 2022. Jeśli korzystasz z wcześniejszej wersji programu Visual Studio, musisz zainstalować bibliotekę Azurite przy użyciu menedżera pakietów node, witryny DockerHub lub sklonowania repozytorium GitHub Azurite.

Uruchamianie Azurite

W przypadku kilku konfiguracji Azure Functions lub ASP.NET projekty automatycznie uruchamiają Azurite. W przypadku wszystkich innych typów projektów musisz uruchomić Azurite z poziomu wiersza polecenia.

Uruchamianie Azurite z wiersza polecenia

Plik wykonywalny Azurite można znaleźć w folderze rozszerzeń instalacji programu Visual Studio. Określona lokalizacja może się różnić w zależności od wersji programu Visual Studio. Jeśli na przykład zainstalowano program Visual Studio 2022 Professional na komputerze z systemem Windows lub maszynie wirtualnej, plik wykonywalny Azurite znajduje się w tej lokalizacji:

C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator.

Jeśli używasz wersji enterprise programu Visual Studio, otwórz następującą lokalizację:

C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator.

Otwórz wymaganą lokalizację i uruchom plik azurite.exe. Po uruchomieniu pliku wykonywalnego Azurite nasłuchuje połączeń.

Dane wyjściowe wiersza polecenia Azurite

Uruchamianie Azurite z projektu Azure Functions

W programie Visual Studio 2022 utwórz projekt Azure Functions. Podczas ustawiania opcji projektu zaznacz pole z etykietą Użyj Azurite dla konta magazynu środowiska uruchomieniowego.

Zrzut ekranu przedstawiający sposób ustawiania Azurite jako konta magazynu środowiska uruchomieniowego dla projektu Azure Functions.

Po utworzeniu projektu azurite uruchamia się automatycznie. Dane wyjściowe wyglądają podobnie do poniższego zrzutu ekranu:

Zrzut ekranu przedstawiający dane wyjściowe po ustawieniu Azurite jako konta magazynu środowiska uruchomieniowego dla projektu Azure Functions.

Uruchamianie 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 Azurite usługi Storage.

Zrzut ekranu przedstawiający sposób dodawania Azurite jako zależności do projektu ASP.NET.

W oknie dialogowym Konfigurowanie emulatora Azurite magazynu ustaw pole Nazwa parametrów połączenia na StorageConnectionStringwartość , a następnie wybierz pozycję Zakończ.

Zrzut ekranu przedstawiający sposób konfigurowania parametrów połączenia w celu używania biblioteki Azurite z projektem ASP.NET.

Po zakończeniu konfiguracji wybierz pozycję Zamknij , a emulator Azurite zostanie uruchomiony automatycznie. Dane wyjściowe wyglądają podobnie do poniższego zrzutu ekranu:

Zrzut ekranu przedstawiający dane wyjściowe po połączeniu projektu ASP.NET z emulatorem Azurite.

Opcje wiersza polecenia

W tej sekcji szczegółowo przedstawiono przełączniki wiersza polecenia dostępne podczas uruchamiania Azurite.

Help

Opcjonalnie — uzyskaj pomoc w wierszu polecenia przy użyciu przełącznika -h lub --help .

azurite -h
azurite --help

Host nasłuchiwania obiektów blob

Opcjonalnie — domyślnie Azurite nasłuchuje 127.0.0.1 jako serwera lokalnego. 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

Przestroga

Zezwolenie na zdalne żądania może sprawić, że system będzie narażony na ataki zewnętrzne.

Konfiguracja portu nasłuchiwania obiektów blob

Opcjonalnie — domyślnie usługa Azurite będzie nasłuchiwać 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.

Host nasłuchiwania w kolejce

Opcjonalnie — domyślnie Azurite nasłuchuje 127.0.0.1 jako serwera lokalnego. Użyj przełącznika --queueHost , aby ustawić adres zgodnie z wymaganiami.

Akceptuj żądania tylko na komputerze lokalnym:

azurite --queueHost 127.0.0.1

Zezwalaj na żądania zdalne:

azurite --queueHost 0.0.0.0

Przestroga

Zezwolenie na zdalne żądania może sprawić, że system będzie narażony na ataki zewnętrzne.

Konfiguracja portu nasłuchiwania w kolejce

Opcjonalnie — domyślnie usługa Azurite nasłuchuje usługi Kolejki na porcie 10001. Użyj przełącznika --queuePort , 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 Kolejki:

azurite --queuePort 8888

Pozwól systemowi automatycznie wybrać dostępny port:

azurite --queuePort 0

Port używany jest wyświetlany podczas uruchamiania Azurite.

Host nasłuchiwania tabel

Opcjonalnie — domyślnie Azurite nasłuchuje 127.0.0.1 jako serwera lokalnego. Użyj przełącznika --tableHost , aby ustawić adres zgodnie z wymaganiami.

Akceptuj żądania tylko na komputerze lokalnym:

azurite --tableHost 127.0.0.1

Zezwalaj na żądania zdalne:

azurite --tableHost 0.0.0.0

Przestroga

Zezwolenie na zdalne żądania może sprawić, że system będzie narażony na ataki zewnętrzne.

Konfiguracja portu nasłuchiwania tabeli

Opcjonalnie — domyślnie Azurite nasłuchuje usługi Table Service na porcie 10002. Użyj przełącznika --tablePort , 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 Table Service:

azurite --tablePort 11111

Pozwól systemowi automatycznie wybrać dostępny port:

azurite --tablePort 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 będzie używany bieżący katalog roboczy procesu. Zanotuj małe litery "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 Azurite stosuje tryb ścisły do blokowania nieobsługiwanych nagłówków i parametrów żądania. Wyłącz tryb ścisły przy użyciu przełącznika -L lub --loose . Zanotuj stolicę "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. Włącz tryb HTTPS, podając ścieżkę do pliku certyfikatu Privacy Enhanced Mail (pem) lub Personal Information Exchange (pfx) do przełącznika --cert .

Po --cert podaniu pliku PEM należy podać odpowiedni --key przełącznik.

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

Po --cert podaniu pliku PFX należy podać odpowiedni --pwd przełącznik.

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

Aby uzyskać szczegółowe informacje na temat tworzenia plików PEM i PFX, zobacz Konfiguracja 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

Uwierzytelnianie OAuth wymaga punktu końcowego HTTPS. Upewnij się, że protokół HTTPS jest włączony, podając --cert przełącznik wraz z przełącznikiem --oauth .

Azurite obsługuje uwierzytelnianie podstawowe, określając basic parametr przełącznika --oauth . Azurite przeprowadzi podstawowe uwierzytelnianie, takie jak weryfikowanie przychodzącego tokenu elementu nośnego, sprawdzanie wystawcy, odbiorców i wygaśnięcie. Azurite nie będzie sprawdzać podpisu tokenu ani uprawnień.

Pomiń sprawdzanie wersji interfejsu API

Opcjonalnie — podczas uruchamiania 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 stylu produkcji

Opcjonalnie. W przypadku korzystania z w pełni kwalifikowanej nazwy domeny zamiast adresu IP na hoście identyfikatora URI żądania domyślnie usługa Azurite przeanalizuje nazwę konta magazynu z hosta identyfikatora URI żądania. Możesz wymusić analizowanie nazwy konta magazynu ze ścieżki identyfikatora URI żądania przy użyciu polecenia --disableProductStyleUrl:

azurite --disableProductStyleUrl

Autoryzacja dla narzędzi i zestawów SDK

Nawiąż połączenie z usługą Azurite z zestawów SDK usługi Azure Storage lub narzędzi, takich jak Eksplorator usługi Azure Storage, przy użyciu dowolnej strategii uwierzytelniania. Wymagane jest uwierzytelnianie. Usługa Azurite obsługuje autoryzację przy użyciu protokołu OAuth, klucza wspólnego i sygnatur dostępu współdzielonego (SAS). Usługa Azurite obsługuje również anonimowy dostęp do kontenerów publicznych.

Jeśli używasz zestawów SDK platformy Azure, uruchom bibliotekę Azurite przy użyciu --oauth basic and --cert --key/--pwd opcji.

Dobrze znane konto magazynu i klucz

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 magazynu i klucze

Usługa Azurite obsługuje niestandardowe nazwy i klucze kont magazynu, ustawiając zmienną AZURITE_ACCOUNTS środowiskową 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.

Możesz też użyć wielu kont magazynu z dwoma kluczami:

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 obracać klucz konta lub dodawać nowe konta magazynu bez ponownego uruchamiania usługi Azurite.

Uwaga

Domyślne devstoreaccount1 konto magazynu jest wyłączone podczas ustawiania niestandardowych kont magazynu.

Klucze konta muszą być ciągiem zakodowanym w formacie Base64.

Parametry połączeń

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 w wersji 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 tylko z usługą obiektów blob, parametry połączenia to:

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

Aby nawiązać połączenie tylko z usługą kolejki, parametry połączenia to:

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;

Aby nawiązać połączenie tylko z usługą tabel, parametry połączenia to:

DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;

Parametry połączenia HTTPS

Pełne parametry 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 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;

Aby korzystać tylko z usługi kolejki, parametry połączenia HTTPS są następujące:

DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;QueueEndpoint=https://127.0.0.1:10001/devstoreaccount1;

Aby użyć tylko usługi table Service, parametry połączenia HTTPS są następujące:

DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;TableEndpoint=https://127.0.0.1:10002/devstoreaccount1;

Jeśli użyto dotnet dev-certs polecenia do wygenerowania certyfikatu z podpisem własnym, użyj następujących parametrów 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 parametry połączenia podczas używania niestandardowych kont magazynu i kluczy.

Aby uzyskać więcej informacji, zobacz Konfigurowanie parametrów połączenia usługi Azure Storage.

Zestawy Azure SDK

Aby używać biblioteki Azurite z zestawami SDK platformy Azure, użyj opcji protokołu OAuth i HTTPS:

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

Azure Blob Storage

Następnie można utworzyć wystąpienie obiektu BlobContainerClient, BlobServiceClient lub Obiektu BlobClient.

// 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==")
  );

Usługa Azure Queue Storage

Można również utworzyć wystąpienie obiektu QueueClient lub QueueServiceClient.

// With queue URL and DefaultAzureCredential
var client = new QueueClient(
    new Uri("https://127.0.0.1:10001/devstoreaccount1/queue-name"), new DefaultAzureCredential()
  );

// With connection string
var client = new QueueClient(
    "DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;QueueEndpoint=https://127.0.0.1:10001/devstoreaccount1;", "queue-name"
  );

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

Azure Table Storage

Można również utworzyć wystąpienie obiektu TableClient lub TableServiceClient.

// With table URL and DefaultAzureCredential
var client = new Client(
    new Uri("https://127.0.0.1:10002/devstoreaccount1/table-name"), new DefaultAzureCredential()
  );

// With connection string
var client = new TableClient(
    "DefaultEndpointsProtocol=https;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;TableEndpoint=https://127.0.0.1:10002/devstoreaccount1;", "table-name"
  );

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

Microsoft Azure Storage Explorer

Możesz użyć Eksplorator usługi Storage, aby wyświetlić dane przechowywane w Azurite.

Nawiązywanie połączenia z usługą Azurite przy użyciu protokołu HTTP

W Eksplorator usługi Storage połącz się z Azurite, wykonując następujące kroki:

  1. Wybierz ikonę Zarządzaj kontami
  2. Wybierz pozycję Dodaj konto
  3. Wybierz pozycję Dołącz do emulatora lokalnego
  4. Wybierz pozycję Dalej
  5. Edytuj pole Nazwa wyświetlana , aby wybrać nazwę
  6. Ponownie wybierz pozycję Dalej
  7. 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, który używa certyfikatu z podpisem własnym. Jeśli używasz biblioteki Azurite z protokołem HTTPS, prawdopodobnie używasz certyfikatu z podpisem własnym. W Eksplorator usługi Storage zaimportuj certyfikaty SSL za pośrednictwem okna dialogowego Edytowaniecertyfikatów SSL> ->Importowanie certyfikatów.

Importowanie certyfikatu do Eksplorator usługi Storage
  1. Znajdź certyfikat na komputerze lokalnym.
  2. W Eksplorator 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ół HTTPS Azurite do Eksplorator usługi Storage:

  1. Wybierz pozycję Przełącz Eksplorator
  2. Wybierz pozycję Dołączone lokalne &
  3. Kliknij prawym przyciskiem myszy pozycję Konta magazynu i wybierz polecenie Połącz z usługą Azure Storage.
  4. Wybierz pozycję Użyj parametrów połączenia
  5. Wybierz opcję Dalej.
  6. Wprowadź wartość w polu Nazwa wyświetlana .
  7. Wprowadź parametry połączenia HTTPS z poprzedniej sekcji tego dokumentu
  8. Wybierz pozycję Dalej
  9. Wybierz pozycję Połącz

Struktura obszaru roboczego

Podczas inicjowania 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 usługę kolejki Azurite utrwalone dane binarne
  • __tablestorage__ - Katalog zawierający usługę tabel Azurite utrwalone dane binarne
  • __azurite_db_blob__.json - Plik metadanych usługi Azurite blob
  • __azurite_db_blob_extent__.json - Plik metadanych zakresu usługi obiektów blob 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ć 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 usługi Azurite różnią się od punktów końcowych konta usługi Azure Storage. Komputer lokalny nie obsługuje rozpoznawania nazw domen, co wymaga, aby punkty końcowe usługi Azurite byłyby adresami lokalnymi.

Gdy adresujesz zasób na koncie usługi Azure Storage, nazwa konta jest częścią nazwy hosta identyfikatora 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 dla obiektu blob na koncie usługi Azure Storage:

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

Adres URL w stylu 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 usłudze 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 stylu produkcyjnym .

Najpierw dodaj jeden lub więcej wierszy do pliku hostów. 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ć dostosowane konta magazynu i klucze:

set AZURITE_ACCOUNTS="account1:key1:key2"

Możesz dodać więcej kont. Zobacz sekcję Niestandardowe konta magazynu i klucze w tym artykule.

Uruchom usługę Azurite i użyj dostosowanych parametrów połączenia, aby uzyskać dostęp do konta. W przykładowych parametrach połączenia poniżej założono, ż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 konta domyślnego w ten sposób przy użyciu Eksplorator usługi Azure Storage. Istnieje usterka, która Eksplorator usługi Storage zawsze dodaje nazwę konta w ścieżce adresu URL, powodując błędy.

Domyślnie w przypadku korzystania z usługi Azurite z adresem URL w stylu produkcyjnym nazwa konta powinna być nazwą hosta w pełni kwalifikowaną nazwą domeny, 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 podczas uruchamiania --disableProductStyleUrl Azurite.

W przypadku użycia host.docker.internal jako hosta identyfikatora URI żądania (na przykład: http://host.docker.internal:10000/devstoreaccount1/container), usługa Azurite zawsze pobierze nazwę konta ze ścieżki identyfikatora URI żądania. Jest to prawda niezależnie od tego, czy używasz parametru podczas uruchamiania --disableProductStyleUrl usługi Azurite.

Skalowanie i wydajność

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łędu są wyrównane.

RA-GRS

Usługa Azurite obsługuje replikację geograficznie nadmiarową dostępu do odczytu (RA-GRS). W przypadku zasobów magazynu uzyskaj dostęp do lokalizacji dodatkowej, 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 pomocniczej funkcji tylko do odczytu w usłudze Azurite:

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

Obsługa tabel

Obsługa tabel w usłudze 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 usługi Azurite dla usługi Table Storage jest obecnie dostępna w wersji zapoznawczej. Zobacz Dodatkowe warunki użytkowania wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z postanowieniami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta lub wersji zapoznawczej albo w inny sposób nie zostały jeszcze wydane jako ogólnie dostępne.

Azurite to open source

Udziały i sugestie dotyczące Azurite są mile widziane. Przejdź do strony projektu Usługi GitHub azurite lub problemów z usługą GitHub dla kamieni milowych i elementów roboczych, które śledzimy pod kątem nadchodzących funkcji i poprawek usterek. Szczegółowe elementy robocze są również śledzone w usłudze GitHub.

Następne kroki