Korzystanie z emulatora usługi Azure Storage na potrzeby tworzenia i testowaniaUse the Azure storage emulator for development and testing

Emulator magazynu Microsoft Azure jest narzędziem, które emuluje usługi obiektów blob, kolejek i tabel platformy Azure na potrzeby lokalnego tworzenia.The Microsoft Azure storage emulator is a tool that emulates the Azure Blob, Queue, and Table services for local development purposes. Możesz testować swoją aplikację w usłudze Storage lokalnie bez tworzenia subskrypcji platformy Azure lub ponoszenia kosztów.You can test your application against the storage services locally without creating an Azure subscription or incurring any costs. Gdy aplikacja działa w emulatorze, przejdź do korzystania z konta usługi Azure Storage w chmurze.When you're satisfied with how your application is working in the emulator, switch to using an Azure storage account in the cloud.

Pobierz emulator magazynuGet the storage emulator

Emulator magazynu jest dostępny w ramach zestawu SDK Microsoft Azure.The storage emulator is available as part of the Microsoft Azure SDK. Emulator magazynu można również zainstalować przy użyciu autonomicznego Instalatora (Pobieranie bezpośrednie).You can also install the storage emulator by using the standalone installer (direct download). Aby zainstalować emulator magazynu, musisz mieć uprawnienia administracyjne na komputerze.To install the storage emulator, you must have administrative privileges on your computer.

Emulator magazynu jest obecnie uruchamiany tylko w systemie Windows.The storage emulator currently runs only on Windows. Jeśli potrzebujesz emulatora magazynu dla systemu Linux, jedną z opcji jest obsługiwana przez społeczność azuriteemulator magazynu typu open source.If you need a storage emulator for Linux, one option is the community maintained, open-source storage emulator Azurite.

Uwaga

W przypadku korzystania z innej wersji nie ma gwarancji, że dane utworzone w jednej wersji emulatora magazynu są dostępne.Data created in one version of the storage emulator is not guaranteed to be accessible when using a different version. Jeśli potrzebujesz utrzymywać dane przez długi czas, zalecamy przechowywanie tych danych na koncie usługi Azure Storage, a nie w emulatorze magazynu.If you need to persist your data for the long term, we recommended that you store that data in an Azure storage account, rather than in the storage emulator.

Emulator magazynu zależy od określonych wersji bibliotek OData.The storage emulator depends on specific versions of the OData libraries. Zastępowanie bibliotek DLL OData używanych przez emulator magazynu z innymi wersjami nie jest obsługiwane i może spowodować nieoczekiwane zachowanie.Replacing the OData DLLs used by the storage emulator with other versions is unsupported, and may cause unexpected behavior. Jednak w celu wysyłania żądań do emulatora może być używana dowolna wersja protokołu OData obsługiwana przez usługę magazynu.However, any version of OData supported by the storage service may be used to send requests to the emulator.

Jak działa emulator magazynuHow the storage emulator works

Emulator magazynu używa wystąpienia lokalnego Microsoft SQL Server 2012 Express LocalDB do emulowania usług Azure Storage.The storage emulator uses a local Microsoft SQL Server 2012 Express LocalDB instance to emulate Azure storage services. Można skonfigurować emulator magazynu, aby mógł uzyskać dostęp do lokalnego wystąpienia SQL Server, a nie wystąpienia LocalDB.You can choose to configure the storage emulator to access a local instance of SQL Server instead of the LocalDB instance. Zobacz sekcję Uruchamianie i Inicjowanie emulatora magazynu w dalszej części tego artykułu, aby dowiedzieć się więcej.See the Start and initialize the storage emulator section later in this article to learn more.

Emulator magazynu łączy się z SQL Server lub LocalDB przy użyciu uwierzytelniania systemu Windows.The storage emulator connects to SQL Server or LocalDB using Windows authentication.

Istnieją pewne różnice w działaniu między emulatorem magazynu a usługami Azure Storage.Some differences in functionality exist between the storage emulator and Azure storage services. Więcej informacji na temat tych różnic znajduje się w sekcji różnice między emulatorem magazynu i usługą Azure Storage w dalszej części tego artykułu.For more information about these differences, see the Differences between the storage emulator and Azure Storage section later in this article.

Uruchamianie i Inicjowanie emulatora magazynuStart and initialize the storage emulator

Aby uruchomić emulator usługi Azure Storage:To start the Azure storage emulator:

  1. Wybierz przycisk Start lub naciśnij klawisz systemu Windows .Select the Start button or press the Windows key.
  2. Zacznij pisać Azure Storage Emulator.Begin typing Azure Storage Emulator.
  3. Wybierz emulator z listy wyświetlanych aplikacji.Select the emulator from the list of displayed applications.

Po uruchomieniu emulatora magazynu zostanie wyświetlone okno wiersza polecenia.When the storage emulator starts, a Command Prompt window will appear. To okno konsoli służy do uruchamiania i zatrzymywania emulatora magazynu.You can use this console window to start and stop the storage emulator. Możesz również wyczyścić dane, pobrać stan i zainicjować emulator z poziomu wiersza polecenia.You can also clear data, get status, and initialize the emulator from the command prompt. Aby uzyskać więcej informacji, zobacz sekcję dotyczącą narzędzia wiersza polecenia emulatora magazynu w dalszej części tego artykułu.For more information, see the Storage emulator command-line tool reference section later in this article.

Uwaga

Emulator usługi Azure Storage może nie działać prawidłowo, jeśli w systemie działa inny emulator magazynu, taki jak azurite.The Azure storage emulator may not start correctly if another storage emulator, such as Azurite, is running on the system.

Po uruchomieniu emulatora pojawi się ikona w obszarze powiadomień paska zadań systemu Windows.When the emulator is running, you'll see an icon in the Windows taskbar notification area.

Po zamknięciu okna wiersza polecenia emulatora magazynu będzie nadal można uruchamiać emulator magazynu.When you close the storage emulator Command Prompt window, the storage emulator will continue to run. Aby ponownie wyświetlić okno konsoli emulatora magazynu, wykonaj powyższe kroki, tak jak w przypadku uruchamiania emulatora magazynu.To bring up the Storage Emulator console window again, follow the preceding steps as if starting the storage emulator.

Przy pierwszym uruchomieniu emulatora magazynu jest inicjowane lokalne środowisko magazynu.The first time you run the storage emulator, the local storage environment is initialized for you. Proces inicjalizacji tworzy bazę danych w LocalDB i rezerwuje porty HTTP dla każdej lokalnej usługi magazynu.The initialization process creates a database in LocalDB and reserves HTTP ports for each local storage service.

Emulator magazynu jest instalowany domyślnie do C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator.The storage emulator is installed by default to C:\Program Files (x86)\Microsoft SDKs\Azure\Storage Emulator.

Porada

Eksplorator usługi Microsoft Azure Storage można użyć do pracy z zasobami emulatora magazynu lokalnego.You can use the Microsoft Azure Storage Explorer to work with local storage emulator resources. Poszukaj pozycji "(domyślne porty emulatora) (klucz)" w obszarze "lokalne & dołączone" w drzewie zasobów Eksplorator usługi Storage po zainstalowaniu i uruchomieniu emulatora magazynu.Look for "(Emulator - Default Ports) (Key)" under "Local & Attached" in the Storage Explorer resources tree after you've installed and started the storage emulator.

Inicjowanie emulatora magazynu w celu korzystania z innej bazy danych SQLInitialize the storage emulator to use a different SQL database

Za pomocą narzędzia wiersza polecenia emulatora magazynu można zainicjować emulator magazynu, aby wskazywał wystąpienie bazy danych SQL inne niż domyślne wystąpienie LocalDB:You can use the storage emulator command-line tool to initialize the storage emulator to point to a SQL database instance other than the default LocalDB instance:

  1. Otwórz okno konsoli emulatora magazynu, zgodnie z opisem w sekcji Uruchamianie i Inicjowanie emulatora magazynu .Open the Storage Emulator console window as described in the Start and initialize the storage emulator section.

  2. W oknie konsoli wpisz następujące polecenie, gdzie <SQLServerInstance> jest nazwą wystąpienia SQL Server.In the console window, type the following command, where <SQLServerInstance> is the name of the SQL Server instance. Aby użyć LocalDB, określ (localdb)\MSSQLLocalDb jako wystąpienie SQL Server.To use LocalDB, specify (localdb)\MSSQLLocalDb as the SQL Server instance.

    AzureStorageEmulator.exe init /server <SQLServerInstance>

    Można również użyć następującego polecenia, które kieruje emulator do użycia domyślnego wystąpienia SQL Server:You can also use the following command, which directs the emulator to use the default SQL Server instance:

    AzureStorageEmulator.exe init /server .

    Można też użyć poniższego polecenia, które ponownie inicjuje bazę danych do domyślnego wystąpienia LocalDB:Or, you can use the following command, which reinitializes the database to the default LocalDB instance:

    AzureStorageEmulator.exe init /forceCreate

Aby uzyskać więcej informacji na temat tych poleceń, zobacz temat Narzędzie wiersza polecenia emulatora magazynu.For more information about these commands, see Storage emulator command-line tool reference.

Porada

Możesz użyć Management Studio Microsoft SQL Server (SSMS), aby zarządzać wystąpieniami SQL Server, w tym instalacją LocalDB.You can use the Microsoft SQL Server Management Studio (SSMS) to manage your SQL Server instances, including the LocalDB installation. W oknie dialogowym SMSS łączenie z serwerem Określ (localdb)\MSSQLLocalDb w polu Nazwa serwera: aby połączyć się z wystąpieniem LocalDB.In the SMSS Connect to Server dialog, specify (localdb)\MSSQLLocalDb in the Server name: field to connect to the LocalDB instance.

Uwierzytelnianie żądań względem emulatora magazynuAuthenticating requests against the storage emulator

Po zainstalowaniu i uruchomieniu emulatora magazynu można przetestować swój kod.Once you've installed and started the storage emulator, you can test your code against it. Każde żądanie wprowadzane względem emulatora magazynu musi być autoryzowane, chyba że jest to żądanie anonimowe.Every request you make against the storage emulator must be authorized, unless it's an anonymous request. Żądania można autoryzować do emulatora magazynu przy użyciu uwierzytelniania klucza współużytkowanego lub z sygnaturą dostępu współdzielonego (SAS).You can authorize requests against the storage emulator using Shared Key authentication or with a shared access signature (SAS).

Autoryzuj przy użyciu poświadczeń klucza współużytkowanegoAuthorize with Shared Key credentials

Emulator magazynu obsługuje jednego stałego konta i klucz uwierzytelniania dobrze znanych na potrzeby uwierzytelniania klucza wspólnego.The storage emulator supports a single fixed account and a well-known authentication key for Shared Key authentication. Tego konta i klucz są dozwolone do użytku z emulatora magazynu tylko poświadczenia klucza wspólnego.This account and key are the only Shared Key credentials permitted for use with the storage emulator. Oto one:They are:

Account name: devstoreaccount1
Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==

Uwaga

Klucz uwierzytelniania, obsługiwanych przez emulator magazynu jest przeznaczony tylko do celów testowych funkcjonalność kod uwierzytelniania klienta.The authentication key supported by the storage emulator is intended only for testing the functionality of your client authentication code. Nie ma żadnych celów bezpieczeństwa.It does not serve any security purpose. Nie można użyć konta magazynu w środowisku produkcyjnym i klucz za pomocą emulatora magazynu.You cannot use your production storage account and key with the storage emulator. Nie należy używać konta programowania z danymi produkcyjnymi.You should not use the development account with production data.

Emulator magazynu obsługuje tylko połączenie za pośrednictwem protokołu HTTP.The storage emulator supports connection via HTTP only. Jednak protokół HTTPS jest zalecane protokołu do uzyskiwania dostępu do zasobów w środowisku produkcyjnym konta magazynu platformy Azure.However, HTTPS is the recommended protocol for accessing resources in a production Azure storage account.

Łączenie się z kontem emulator przy użyciu skrótuConnect to the emulator account using a shortcut

Najprostszym sposobem, aby nawiązać połączenie z emulatora magazynu z poziomu aplikacji jest skonfigurowanie parametrów połączenia w pliku konfiguracyjnym aplikacji, która odwołuje się skrót UseDevelopmentStorage=true.The easiest way to connect to the storage emulator from your application is to configure a connection string in your application's configuration file that references the shortcut UseDevelopmentStorage=true. Oto przykład parametrów połączenia z emulatorem magazynu w app.config pliku:Here's an example of a connection string to the storage emulator in an app.config file:

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

Łączenie się z kontem emulatora, korzystając z dobrze znaną nazwę konta i kluczaConnect to the emulator account using the well-known account name and key

Aby utworzyć parametry połączenia, który odwołuje się do emulatora nazwy i klucza konta, należy określić punkty końcowe dla poszczególnych usług, którą chcesz korzystać z emulatora w parametrach połączenia.To create a connection string that references the emulator account name and key, you must specify the endpoints for each of the services you wish to use from the emulator in the connection string. Jest to konieczne, tak aby parametry połączenia będzie odwoływać się do emulatora punktów końcowych, które są inne niż konto magazynu w środowisku produkcyjnym.This is necessary so that the connection string will reference the emulator endpoints, which are different than those for a production storage account. Na przykład wartość parametrów połączenia będzie wyglądać następująco:For example, the value of your connection string will look like this:

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

Ta wartość jest taka sama jak skrótów pokazanych powyżej UseDevelopmentStorage=true.This value is identical to the shortcut shown above, UseDevelopmentStorage=true.

Określ serwer proxy HTTPSpecify an HTTP proxy

Można również określić serwer proxy HTTP do użycia podczas testowania usługi względem emulatora magazynu.You can also specify an HTTP proxy to use when you're testing your service against the storage emulator. Może to być przydatne do obserwacji żądań i odpowiedzi HTTP podczas debugowania operacji dotyczących usług magazynu.This can be useful for observing HTTP requests and responses while you're debugging operations against the storage services. Aby określić serwer proxy, należy dodać DevelopmentStorageProxyUri opcji Parametry połączenia, a następnie ustaw dla niego wartość identyfikatora URI serwera proxy.To specify a proxy, add the DevelopmentStorageProxyUri option to the connection string, and set its value to the proxy URI. Na przykład poniżej przedstawiono parametry połączenia, który wskazuje emulatora magazynu i konfiguruje serwer proxy HTTP:For example, here is a connection string that points to the storage emulator and configures an HTTP proxy:

UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri

Aby uzyskać więcej informacji dotyczących parametrów połączenia, zobacz Konfigurowanie parametrów połączenia usługi Azure Storage.For more information on connection strings, see Configure Azure Storage connection strings.

Autoryzuj przy użyciu sygnatury dostępu współdzielonegoAuthorize with a shared access signature

Uwaga

Ten artykuł został zaktualizowany o korzystanie z nowego modułu Azure PowerShell Az.This article has been updated to use the new Azure PowerShell Az module. Nadal możesz używać modułu AzureRM, który będzie nadal otrzymywać poprawki błędów do co najmniej grudnia 2020 r.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Aby dowiedzieć się więcej na temat nowego modułu Az i zgodności z modułem AzureRM, zobacz Wprowadzenie do nowego modułu Az programu Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Aby uzyskać instrukcje dotyczące instalacji modułu Az, zobacz Instalowanie programu Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Niektóre biblioteki klienta usługi Azure Storage, takie jak biblioteka Xamarin, obsługują tylko uwierzytelnianie z tokenem sygnatury dostępu współdzielonego (SAS).Some Azure storage client libraries, such as the Xamarin library, only support authentication with a shared access signature (SAS) token. Token SYGNATURy dostępu współdzielonego można utworzyć przy użyciu Eksplorator usługi Storage lub innej aplikacji obsługującej uwierzytelnianie klucza wspólnego.You can create the SAS token using Storage Explorer or another application that supports Shared Key authentication.

Token sygnatury dostępu współdzielonego można również wygenerować przy użyciu Azure PowerShell.You can also generate a SAS token by using Azure PowerShell. Poniższy przykład generuje token SAS z pełnymi uprawnieniami do kontenera obiektów blob:The following example generates a SAS token with full permissions to a blob container:

  1. Zainstaluj Azure PowerShell, jeśli nie zostało to jeszcze zrobione (zaleca się użycie najnowszej wersji Azure PowerShell poleceń cmdlet).Install Azure PowerShell if you haven't already (using the latest version of the Azure PowerShell cmdlets is recommended). Instrukcje instalacji znajdują się w temacie Install and configure Azure PowerShell.For installation instructions, see Install and configure Azure PowerShell.
  2. Otwórz Azure PowerShell i uruchom następujące polecenia, zastępując CONTAINER_NAME nazwą wybraną przez użytkownika:Open Azure PowerShell and run the following commands, replacing CONTAINER_NAME with a name of your choosing:
$context = New-AzStorageContext -Local

New-AzStorageContainer CONTAINER_NAME -Permission Off -Context $context

$now = Get-Date

New-AzStorageContainerSASToken -Name CONTAINER_NAME -Permission rwdl -ExpiryTime $now.AddDays(1.0) -Context $context -FullUri

Otrzymany identyfikator URI sygnatury dostępu współdzielonego dla nowego kontenera powinien wyglądać podobnie do:The resulting shared access signature URI for the new container should be similar to:

http://127.0.0.1:10000/devstoreaccount1/sascontainer?sv=2012-02-12&se=2015-07-08T00%3A12%3A08Z&sr=c&sp=wl&sig=t%2BbzU9%2B7ry4okULN9S0wst%2F8MCUhTjrHyV9rDNLSe8g%3Dsss

Sygnatura dostępu współdzielonego utworzona przy użyciu tego przykładu jest ważna przez jeden dzień.The shared access signature created with this example is valid for one day. Podpis przyznaje pełen dostęp (odczyt, zapis, usuwanie, lista) do obiektów BLOB w kontenerze.The signature grants full access (read, write, delete, list) to blobs within the container.

Aby uzyskać więcej informacji na temat sygnatur dostępu współdzielonego, zobacz udzielanie ograniczonego dostępu do zasobów usługi Azure Storage za pomocą sygnatur dostępu współdzielonego (SAS).For more information on shared access signatures, see Grant limited access to Azure Storage resources using shared access signatures (SAS).

Adresowanie zasobów w emulatorze magazynuAddressing resources in the storage emulator

Punkty końcowe usługi dla emulatora magazynu są inne niż punkty końcowe dla konta usługi Azure Storage.The service endpoints for the storage emulator are different from the endpoints for an Azure storage account. Komputer lokalny nie obsługuje rozpoznawania nazw domen, ponieważ punkty końcowe emulatora magazynu mają być adresami lokalnymi.The local computer doesn't do domain name resolution, requiring the storage emulator endpoints to be local addresses.

Gdy adresowanie zasobu na koncie usługi Azure Storage jest możliwe, należy użyć poniższego schematu.When you address a resource in an Azure storage account, you use the following scheme. Nazwa konta jest częścią nazwy hosta identyfikatora URI, a zasób jest częścią ścieżki URI:The account name is part of the URI host name, and the resource being addressed is part of the URI path:

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

Na przykład następujący identyfikator URI jest prawidłowym adresem dla obiektu BLOB na koncie usługi Azure Storage:For example, the following URI is a valid address for a blob in an Azure storage account:

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

Ponieważ komputer lokalny nie wykonuje rozpoznawania nazw domen, nazwa konta jest częścią ścieżki URI zamiast nazwy hosta.Because the local computer doesn't do domain name resolution, the account name is part of the URI path instead of the host name. Użyj następującego formatu identyfikatora URI dla zasobu w emulatorze magazynu:Use the following URI format for a resource in the storage emulator:

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

Na przykład następujący adres może służyć do uzyskiwania dostępu do obiektu BLOB w emulatorze magazynu:For example, the following address might be used for accessing a blob in the storage emulator:

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

Punkty końcowe usługi dla emulatora magazynu są następujące:The service endpoints for the storage emulator are:

  • Blob service: http://127.0.0.1:10000/<account-name>/<resource-path>Blob service: http://127.0.0.1:10000/<account-name>/<resource-path>
  • Usługa kolejki: http://127.0.0.1:10001/<account-name>/<resource-path>Queue service: http://127.0.0.1:10001/<account-name>/<resource-path>
  • Table service: http://127.0.0.1:10002/<account-name>/<resource-path>Table service: http://127.0.0.1:10002/<account-name>/<resource-path>

Adresowanie pomocniczej konta za pomocą RA-GRSAddressing the account secondary with RA-GRS

Począwszy od wersji 3,1 emulator magazynu obsługuje replikację Geograficznie nadmiarowy do odczytu (RA-GRS).Beginning with version 3.1, the storage emulator supports read-access geo-redundant replication (RA-GRS). Możesz uzyskać dostęp do pomocniczej lokalizacji, dołączając-pomocniczy do nazwy konta.You can access the secondary location by appending -secondary to the account name. Na przykład następujący adres może służyć do uzyskiwania dostępu do obiektu BLOB przy użyciu pomocniczego elementu tylko do odczytu w emulatorze magazynu:For example, the following address might be used for accessing a blob using the read-only secondary in the storage emulator:

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

Uwaga

Aby uzyskać programistyczny dostęp do pomocniczego elementu z emulatorem magazynu, użyj biblioteki klienta usługi Storage dla programu .NET w wersji 3,2 lub nowszej.For programmatic access to the secondary with the storage emulator, use the Storage Client Library for .NET version 3.2 or later. Aby uzyskać szczegółowe informacje, zobacz Biblioteka klienta Microsoft Azure Storage dla platformy .NET .See the Microsoft Azure Storage Client Library for .NET for details.

Dokumentacja narzędzia wiersza polecenia emulatora magazynuStorage emulator command-line tool reference

Począwszy od wersji 3,0, okno konsoli jest wyświetlane po uruchomieniu emulatora magazynu.Starting in version 3.0, a console window is displayed when you start the Storage Emulator. Użyj wiersza polecenia w oknie konsoli, aby uruchomić i zatrzymać emulator.Use the command line in the console window to start and stop the emulator. Można również wykonywać zapytania o stan i wykonywać inne operacje z poziomu wiersza polecenia.You can also query for status and do other operations from the command line.

Uwaga

Jeśli zainstalowano emulator obliczeń Microsoft Azure, podczas uruchamiania emulatora magazynu zostanie wyświetlona ikona zasobnika systemowego.If you have the Microsoft Azure compute emulator installed, a system tray icon appears when you launch the Storage Emulator. Kliknij prawym przyciskiem myszy ikonę, aby wyświetlić menu, które zapewnia graficzny sposób uruchamiania i zatrzymywania emulatora magazynu.Right-click on the icon to reveal a menu that provides a graphical way to start and stop the Storage Emulator.

Składnia wiersza poleceniaCommand-line syntax

AzureStorageEmulator.exe [start] [stop] [status] [clear] [init] [help]

OpcjeOptions

Aby wyświetlić listę opcji, wpisz ciąg /help w wierszu polecenia.To view the list of options, type /help at the command prompt.

OpcjaOption OpisDescription PolecenieCommand ArgumentyArguments
RozpocznijStart Uruchamia emulator magazynu.Starts up the storage emulator. AzureStorageEmulator.exe start [-inprocess] -Reprocess: uruchamia emulator w bieżącym procesie zamiast tworzenia nowego procesu.-Reprocess: Start the emulator in the current process instead of creating a new process.
KomunikatStop Powoduje zatrzymanie emulatora magazynu.Stops the storage emulator. AzureStorageEmulator.exe stop
StanStatus Drukuje stan emulatora magazynu.Prints the status of the storage emulator. AzureStorageEmulator.exe status
WyczyśćClear Czyści dane we wszystkich usługach określonych w wierszu polecenia.Clears the data in all services specified on the command line. AzureStorageEmulator.exe clear [blob] [table] [queue] [all] BLOB: czyści dane obiektów BLOB.blob: Clears blob data.
Queue: czyści dane kolejki.queue: Clears queue data.
tabela: czyści dane tabeli.table: Clears table data.
wszystkie: czyści wszystkie dane we wszystkich usługach.all: Clears all data in all services.
InitInit Wykonuje jednorazowe inicjowanie w celu skonfigurowania emulatora.Does one-time initialization to set up the emulator. AzureStorageEmulator.exe init [-server serverName] [-sqlinstance instanceName] [-forcecreate|-skipcreate] [-reserveports|-unreserveports] [-inprocess] -Server serverName\instanceName: Określa serwer hostujący wystąpienie programu SQL Server.-server serverName\instanceName: Specifies the server hosting the SQL instance.
-SQLInstance InstanceName: Określa nazwę wystąpienia SQL, które ma być używane w domyślnym wystąpieniu serwera.-sqlinstance instanceName: Specifies the name of the SQL instance to be used in the default server instance.
-forceCreate: wymusza tworzenie bazy danych SQL, nawet jeśli już istnieje.-forcecreate: Forces creation of the SQL database, even if it already exists.
-skipcreate: pomija Tworzenie bazy danych SQL.-skipcreate: Skips creation of the SQL database. Ma to pierwszeństwo przed forceCreate.This takes precedence over -forcecreate.
-reserveports: próbuje zarezerwować porty http skojarzone z usługami.-reserveports: Attempts to reserve the HTTP ports associated with the services.
-unreserveports: próbuje usunąć rezerwacje dla portów http skojarzonych z usługami.-unreserveports: Attempts to remove reservations for the HTTP ports associated with the services. Ma to pierwszeństwo przed reserveports.This takes precedence over -reserveports.
-unprocess: wykonuje inicjalizację w bieżącym procesie zamiast duplikowania nowego procesu.-inprocess: Performs initialization in the current process instead of spawning a new process. W przypadku zmiany rezerwacji portów bieżący proces musi zostać uruchomiony z podwyższonym poziomem uprawnień.The current process must be launched with elevated permissions if changing port reservations.

Różnice między emulatorem magazynu a usługą Azure StorageDifferences between the storage emulator and Azure Storage

Ponieważ emulator magazynu jest lokalnym emulowanym środowiskiem, istnieją różnice między użyciem emulatora i konta usługi Azure Storage w chmurze:Because the storage emulator is a local emulated environment, there are differences between using the emulator and an Azure storage account in the cloud:

  • Emulator magazynu obsługuje tylko pojedyncze stałe konto i dobrze znane klucze uwierzytelniania.The storage emulator supports only a single fixed account and a well-known authentication key.
  • Emulator magazynu nie jest skalowalną usługą magazynu i nie obsługuje dużej liczby równoczesnych klientów.The storage emulator isn't a scalable storage service and doesn't support a large number of concurrent clients.
  • Zgodnie z opisem w temacie Addressing Resources w emulatorze magazynuzasoby są rozwiązywane inaczej w emulatorze magazynu, a konto usługi Azure Storage.As described in Addressing resources in the storage emulator, resources are addressed differently in the storage emulator versus an Azure storage account. Różnica polega na tym, że rozpoznawanie nazw domen jest dostępne w chmurze, ale nie na komputerze lokalnym.The difference is because domain name resolution is available in the cloud but not on the local computer.
  • Począwszy od wersji 3,1, konto emulatora magazynu obsługuje replikację Geograficznie nadmiarowy do odczytu (RA-GRS).Beginning with version 3.1, the storage emulator account supports read-access geo-redundant replication (RA-GRS). W emulatorze wszystkie konta mają włączoną funkcję RA-GRS i nigdy nie ma zwłoki między repliką podstawową i pomocniczą.In the emulator, all accounts have RA-GRS enabled and there's never any lag between the primary and secondary replicas. Statystyki usługi Get BLOB Service, get Queue Service i Get Table Service są obsługiwane na poziomie pomocniczym konta i zawsze zwracają wartość LastSyncTime elementu Response jako bieżący czas zgodnie z podstawową bazą danych SQL.The Get Blob Service Stats, Get Queue Service Stats, and Get Table Service Stats operations are supported on the account secondary and will always return the value of the LastSyncTime response element as the current time according to the underlying SQL database.
  • Punkty końcowe usługi plików i protokołu SMB nie są obecnie obsługiwane w emulatorze magazynu.The File service and SMB protocol service endpoints aren't currently supported in the storage emulator.
  • Jeśli używasz wersji usług magazynu, która nie jest obsługiwana przez emulator, Emulator zwróci błąd VersionNotSupportedByEmulator (kod stanu HTTP 400-złe żądanie).If you use a version of the storage services that is not supported by the emulator, the emulator returns a VersionNotSupportedByEmulator error (HTTP status code 400 - Bad Request).

Różnice dotyczące usługi BLOB StorageDifferences for Blob storage

Poniższe różnice dotyczą magazynu obiektów BLOB w emulatorze:The following differences apply to Blob storage in the emulator:

  • Emulator magazynu obsługuje tylko rozmiary obiektów BLOB do 2 GB.The storage emulator only supports blob sizes up to 2 GB.
  • Maksymalna długość nazwy obiektu BLOB w emulatorze magazynu to 256 znaków, podczas gdy maksymalna długość nazwy obiektu BLOB w usłudze Azure Storage to 1024 znaków.The maximum length of a blob name in the storage emulator is 256 characters, while the maximum length of a blob name in Azure Storage is 1024 characters.
  • Kopiowanie przyrostowe umożliwia skopiowanie migawek z nadpisanych obiektów blob, które zwracają błąd w usłudze.Incremental copy allows snapshots from overwritten blobs to be copied, which returns a failure on the service.
  • Pobieranie zakresów stron różnica nie działa między migawkami skopiowanymi przy użyciu obiektu BLOB kopiowania przyrostowego.Get Page Ranges Diff doesn't work between snapshots copied using Incremental Copy Blob.
  • Operacja Put obiektu BLOB może powieść się z obiektem BLOB, który istnieje w emulatorze magazynu z aktywną dzierżawą, nawet jeśli w żądaniu nie został określony identyfikator dzierżawy.A Put Blob operation may succeed against a blob that exists in the storage emulator with an active lease even if the lease ID hasn't been specified in the request.
  • Operacje dołączania obiektów BLOB nie są obsługiwane przez emulator.Append Blob operations are not supported by the emulator. Próba wykonania operacji na dołączeniu obiektu BLOB zwraca błąd FeatureNotSupportedByEmulator (kod stanu HTTP 400-złe żądanie).Attempting an operation on an append blob returns a FeatureNotSupportedByEmulator error (HTTP status code 400 - Bad Request).

Różnice dotyczące usługi Table StorageDifferences for Table storage

Poniższe różnice dotyczą magazynu tabel w emulatorze:The following differences apply to Table storage in the emulator:

  • Właściwości Date w Table service w emulatorze magazynu obsługują tylko zakres obsługiwany przez SQL Server 2005 (wymagane jest późniejsze od 1 stycznia 1753).Date properties in the Table service in the storage emulator support only the range supported by SQL Server 2005 (they're required to be later than January 1, 1753). Wszystkie daty przed 1 stycznia 1753 są zmieniane na tę wartość.All dates before January 1, 1753 are changed to this value. Precyzja dat jest ograniczona do dokładności SQL Server 2005, co oznacza, że daty są precyzyjne do 1/300th sekundy.The precision of dates is limited to the precision of SQL Server 2005, meaning that dates are precise to 1/300th of a second.
  • Emulator magazynu obsługuje wartości właściwości klucza partycji i klucza wiersza mniejsze niż 512 bajtów.The storage emulator supports partition key and row key property values of less than 512 bytes each. Łączny rozmiar nazwy konta, nazwy tabeli i nazwy właściwości klucza nie może przekraczać 900 bajtów.The total size of the account name, table name, and key property names together can't exceed 900 bytes.
  • Łączny rozmiar wiersza w tabeli w emulatorze magazynu jest ograniczony do mniej niż 1 MB.The total size of a row in a table in the storage emulator is limited to less than 1 MB.
  • W emulatorze magazynu właściwości typu danych Edm.Guid lub Edm.Binary obsługują tylko operatory porównania Equal (eq) i NotEqual (ne) w ciągach filtru zapytań.In the storage emulator, properties of data type Edm.Guid or Edm.Binary support only the Equal (eq) and NotEqual (ne) comparison operators in query filter strings.

Różnice dotyczące usługi queue storageDifferences for Queue storage

W emulatorze nie ma żadnych różnic związanych z magazynem kolejek.There are no differences specific to Queue storage in the emulator.

Informacje o wersji emulatora magazynuStorage emulator release notes

Wersja 5,10Version 5.10

  • Emulator magazynu nie odrzuci wersji 2019-07-07 usług magazynu dla punktów końcowych obiektów blob, kolejek i Table service.The storage emulator won't reject version 2019-07-07 of the storage services on Blob, Queue, and Table service endpoints.

Wersja 5,9Version 5.9

  • Emulator magazynu nie odrzuci wersji 2019-02-02 usług magazynu dla punktów końcowych obiektów blob, kolejek i Table service.The storage emulator won't reject version 2019-02-02 of the storage services on Blob, Queue, and Table service endpoints.

Wersja 5,8Version 5.8

  • Emulator magazynu nie odrzuci wersji 2018-11-09 usług magazynu dla punktów końcowych obiektów blob, kolejek i Table service.The storage emulator won't reject version 2018-11-09 of the storage services on Blob, Queue, and Table service endpoints.

Wersja 5,7Version 5.7

  • Naprawiono usterkę powodującą awarię, jeśli rejestrowanie zostało włączone.Fixed a bug that would cause a crash if logging was enabled.

Wersja 5,6Version 5.6

  • Emulator magazynu obsługuje teraz wersję 2018-03-28 usług magazynu dla punktów końcowych obiektów blob, kolejek i Table service.The storage emulator now supports version 2018-03-28 of the storage services on Blob, Queue, and Table service endpoints.

Wersja 5,5Version 5.5

  • Emulator magazynu obsługuje teraz wersję 2017-11-09 usług magazynu dla punktów końcowych obiektów blob, kolejek i Table service.The storage emulator now supports version 2017-11-09 of the storage services on Blob, Queue, and Table service endpoints.
  • Dodano obsługę dla właściwości obiektu BLOB Created , która zwraca czas utworzenia obiektu BLOB.Support has been added for the blob Created property, which returns the blob's creation time.

Wersja 5,4Version 5.4

  • Aby poprawić stabilność instalacji, Emulator nie próbuje zarezerwować portów w czasie instalacji.To improve installation stability, the emulator no longer attempts to reserve ports at install time. Jeśli chcesz zastrzeżeń portów, użyj opcji -reserveports polecenia init , aby je określić.If you want port reservations, use the -reserveports option of the init command to specify them.

Wersja 5,3Version 5.3

  • Emulator magazynu obsługuje teraz wersję 2017-07-29 usług magazynu dla punktów końcowych obiektów blob, kolejek i Table service.The storage emulator now supports version 2017-07-29 of the storage services on Blob, Queue, and Table service endpoints.

Wersja 5,2Version 5.2

  • Emulator magazynu obsługuje teraz wersję 2017-04-17 usług magazynu dla punktów końcowych obiektów blob, kolejek i Table service.The storage emulator now supports version 2017-04-17 of the storage services on Blob, Queue, and Table service endpoints.
  • Naprawiono usterkę polegającą na tym, że wartości właściwości tabeli nie zostały poprawnie zakodowane.Fixed a bug where table property values weren't being properly encoded.

Wersja 5,1Version 5.1

  • Rozwiązano problem polegający na tym, że emulator magazynu zwrócił DataServiceVersion nagłówka w niektórych odpowiedziach, w których usługa nie była.Fixed a bug where the storage emulator was returning the DataServiceVersion header in some responses where the service was not.

Wersja 5,0Version 5.0

  • Instalator emulatora magazynu nie sprawdza już istniejących instalacji programu MSSQL i .NET Framework.The storage emulator installer no longer checks for existing MSSQL and .NET Framework installs.
  • Instalator emulatora magazynu nie tworzy już bazy danych w ramach instalacji.The storage emulator installer no longer creates the database as part of install. Baza danych będzie w razie konieczności tworzona w ramach uruchomienia.Database will still be created if needed as part of startup.
  • Tworzenie bazy danych nie wymaga już podniesienia uprawnień.Database creation no longer requires elevation.
  • Rezerwacje portów nie są już potrzebne do uruchomienia.Port reservations are no longer needed for startup.
  • Dodaje następujące opcje do init: -reserveports (wymaga podniesienia uprawnień), -unreserveports (wymaga podniesienia uprawnień), -skipcreate.Adds the following options to init: -reserveports (requires elevation), -unreserveports (requires elevation), -skipcreate.
  • Opcja interfejsu użytkownika emulatora magazynu w ikonie zasobnika systemu teraz uruchamia interfejs wiersza polecenia.The Storage Emulator UI option on the system tray icon now launches the command-line interface. Stary interfejs GUI nie jest już dostępny.The old GUI is no longer available.
  • Niektóre biblioteki DLL zostały usunięte lub zmieniono ich nazwy.Some DLLs have been removed or renamed.

Wersja 4,6Version 4.6

  • Emulator magazynu obsługuje teraz wersję 2016-05-31 usług magazynu dla punktów końcowych obiektów blob, kolejek i Table service.The storage emulator now supports version 2016-05-31 of the storage services on Blob, Queue, and Table service endpoints.

Wersja 4,5Version 4.5

  • Rozwiązano błąd, który spowodował niepowodzenie instalacji i inicjalizacji w przypadku zmiany nazwy bazy danych.Fixed a bug that caused installation and initialization to fail when the backing database is renamed.

Wersja 4,4Version 4.4

  • Emulator magazynu obsługuje teraz wersję 2015-12-11 usług magazynu dla punktów końcowych obiektów blob, kolejek i Table service.The storage emulator now supports version 2015-12-11 of the storage services on Blob, Queue, and Table service endpoints.
  • Odzyskiwanie pamięci przez emulator magazynu danych obiektów BLOB jest teraz wydajniejsze w przypadku dużej liczby obiektów BLOB.The storage emulator's garbage collection of blob data is now more efficient when dealing with large numbers of blobs.
  • Usunięto usterkę, która spowodowała sprawdzenie poprawności kodu XML listy ACL kontenerów nieco inaczej niż w przypadku usługi Storage.Fixed a bug that caused container ACL XML to be validated slightly differently from how the storage service does it.
  • Rozwiązano usterkę, która czasami powodowała raportowanie wartości maks. Max i min DateTime w niepoprawnej strefie czasowej.Fixed a bug that sometimes caused max and min DateTime values to be reported in the incorrect time zone.

Wersja 4,3Version 4.3

  • Emulator magazynu obsługuje teraz wersję 2015-07-08 usług magazynu dla punktów końcowych obiektów blob, kolejek i Table service.The storage emulator now supports version 2015-07-08 of the storage services on Blob, Queue, and Table service endpoints.

Wersja 4,2Version 4.2

  • Emulator magazynu obsługuje teraz wersję 2015-04-05 usług magazynu dla punktów końcowych obiektów blob, kolejek i Table service.The storage emulator now supports version 2015-04-05 of the storage services on Blob, Queue, and Table service endpoints.

Wersja 4,1Version 4.1

  • Emulator magazynu obsługuje teraz wersję 2015-02-21 usług magazynu dla punktów końcowych obiektów blob, kolejek i Table service.The storage emulator now supports version 2015-02-21 of the storage services on Blob, Queue, and Table service endpoints. Nie obsługuje nowych funkcji dołączania obiektów BLOB.It doesn't support the new Append Blob features.
  • Emulator teraz zwraca zrozumiały komunikat o błędzie dla nieobsługiwanych wersji usług magazynu.The emulator now returns a meaningful error message for unsupported versions of storage services. Zalecamy użycie najnowszej wersji emulatora.We recommend using the latest version of the emulator. Jeśli wystąpi błąd VersionNotSupportedByEmulator (kod stanu HTTP 400-złe żądanie), Pobierz najnowszą wersję emulatora.If you get a VersionNotSupportedByEmulator error (HTTP status code 400 - Bad Request), download the latest version of the emulator.
  • Naprawiono usterkę polegającą na tym, że stan wyścigu spowodował nieprawidłowe dane jednostki tabeli podczas współbieżnych operacji scalania.Fixed a bug wherein a race condition caused table entity data to be incorrect during concurrent merge operations.

Wersja 4,0Version 4.0

  • Nazwa pliku wykonywalnego emulatora magazynu została zmieniona na AzureStorageEmulator. exe.The storage emulator executable has been renamed to AzureStorageEmulator.exe.

Wersja 3,2Version 3.2

  • Emulator magazynu obsługuje teraz wersję 2014-02-14 usług magazynu dla punktów końcowych obiektów blob, kolejek i Table service.The storage emulator now supports version 2014-02-14 of the storage services on Blob, Queue, and Table service endpoints. Punkty końcowe usługi plików nie są obecnie obsługiwane w emulatorze magazynu.File service endpoints aren't currently supported in the storage emulator. Aby uzyskać szczegółowe informacje na temat wersji 2014-02-14 , zobacz Przechowywanie wersji usług Azure Storage .See Versioning for the Azure Storage Services for details about version 2014-02-14.

Wersja 3,1Version 3.1

  • Magazyn Geograficznie nadmiarowy dostępny do odczytu (RA-GRS) jest teraz obsługiwany w emulatorze magazynu.Read-access geo-redundant storage (RA-GRS) is now supported in the storage emulator. Interfejsy API Get Blob Service Stats, Get Queue Service Stats i Get Table Service Stats są obsługiwane dla pomocniczego konta i zawsze zwracają wartość elementu odpowiedzi LastSyncTime jako bieżący czas zgodnie z podstawową bazą danych SQL.The Get Blob Service Stats, Get Queue Service Stats, and Get Table Service Stats APIs are supported for the account secondary and will always return the value of the LastSyncTime response element as the current time according to the underlying SQL database. Aby uzyskać programistyczny dostęp do pomocniczego elementu z emulatorem magazynu, użyj biblioteki klienta usługi Storage dla programu .NET w wersji 3,2 lub nowszej.For programmatic access to the secondary with the storage emulator, use the Storage Client Library for .NET version 3.2 or later. Szczegółowe informacje znajdują się w temacie Microsoft Azure Storage Client Library for .NET Reference.See the Microsoft Azure Storage Client Library for .NET Reference for details.

Wersja 3,0Version 3.0

  • Emulator usługi Azure Storage nie jest już dostarczany w tym samym pakiecie co emulator obliczeniowy.The Azure storage emulator is no longer shipped in the same package as the compute emulator.
  • Graficzny interfejs użytkownika emulatora magazynu jest przestarzały.The storage emulator graphical user interface is deprecated. Został on zastąpiony przez skryptowy interfejs wiersza polecenia.It has been replaced by a scriptable command-line interface. Aby uzyskać szczegółowe informacje na temat interfejsu wiersza polecenia, zobacz temat narzędzie wiersza polecenia emulatora magazynu.For details on the command-line interface, see Storage Emulator Command-Line Tool Reference. Interfejs graficzny będzie nadal występować w wersji 3,0, ale można uzyskać do niego dostęp tylko wtedy, gdy emulator obliczeń zostanie zainstalowany, klikając prawym przyciskiem myszy ikonę zasobnika systemowego i wybierając pozycję Pokaż interfejs użytkownika emulatora magazynu.The graphical interface will continue to be present in version 3.0, but it can only be accessed when the Compute Emulator is installed by right-clicking on the system tray icon and selecting Show Storage Emulator UI.
  • Wersja 2013-08-15 usług Azure Storage jest teraz w pełni obsługiwana.Version 2013-08-15 of the Azure storage services is now fully supported. (Wcześniej ta wersja była obsługiwana tylko przez emulator magazynu w wersji wersja zapoznawcza).(Previously this version was only supported by Storage Emulator version 2.2.1 Preview.)

Następne krokiNext steps