Udostępnij przez


Korzystanie z emulatora usługi Azurite na potrzeby lokalnego programowania w usłudze Azure Storage

Emulator open source usługi Azurite udostępnia bezpłatne środowisko lokalne do testowania aplikacji opartych na chmurze. Gdy jesteś zadowolony z działania aplikacji lokalnie, przejdź do korzystania z konta usługi Azure Storage w chmurze.

Azurite to lekki emulator magazynu napisany w języku JavaScript i uruchamiany w Node.js, który symuluje usługę Azure Storage na potrzeby programowania lokalnego. Obsługuje ona usługi Blob, Queue i Table Storage oraz zapewnia obsługę wielu platform w systemach Windows, Linux i macOS. Aby uzyskać pomoc dotyczącą instalowania i uruchamiania rozwiązania Azurite, zobacz Instalowanie i uruchamianie emulatora usługi Azurite.

Usługa Azurite umożliwia również deweloperom uruchamianie testów względem lokalnego środowiska magazynu, symulując zachowanie platformy Azure, co ma kluczowe znaczenie dla integracji i kompleksowego testowania. Aby dowiedzieć się więcej na temat używania platformy Azurite do testowania automatycznego, zobacz Uruchamianie testów automatycznych przy użyciu platformy Azurite.

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.

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.

Ważne

Usługa Azurite obsługuje tylko usługi Blob, Queue i Table Storage. Nie obsługuje usług Azure Files ani Azure Data Lake Storage Gen2, ale zapewnia obsługę międzyplatformową w systemach Windows, Linux i macOS.

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. Zasób, o którym mowa, jest częścią ścieżki 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 formacie 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 magazynu i klucze w artykule Łączenie z usługą Azurite.

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 pamięci uzyskaj dostęp do lokacji pomocniczej, dołączając -secondary do nazwy konta. Na przykład, następujący adres może być użyty do uzyskania dostępu do bloba za pomocą drugorzędnego dostępu 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.

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 utrwalone dane binarne usługi tabel Azurite
  • __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ń pliki i foldery i uruchom ponownie emulator.

Następne kroki