Azure ストレージ エミュレーターを使用した開発とテストUse the Azure storage emulator for development and testing

Microsoft Azure ストレージ エミュレーターでは、Azure の BLOB、Queue、Table service を開発用にエミュレートするローカル環境が利用できます。The Microsoft Azure storage emulator provides a local environment that emulates the Azure Blob, Queue, and Table services for development purposes. ストレージ エミュレーターを使用すると、ストレージ サービスに対するアプリケーションのローカル テストが、Azure サブスクリプションを作成したりコストをかけたりせずに実施できます。Using the storage emulator, you can test your application against the storage services locally, without creating an Azure subscription or incurring any costs. エミュレーターでのアプリケーションの動作に満足できたら、クラウドでの Azure ストレージ アカウントの使用に切り替えることができます。When you're satisfied with how your application is working in the emulator, you can switch to using an Azure storage account in the cloud.

ストレージ エミュレーターの取得Get the storage emulator

ストレージ エミュレーターは、 Microsoft Azure SDKに付属しています。The storage emulator is available as part of the Microsoft Azure SDK. また、スタンドアロンのインストーラー (直接ダウンロード) を使用して、ストレージ エミュレーターをインストールすることも可能です。You can also install the storage emulator by using the standalone installer (direct download). ストレージ エミュレーターをインストールするには、お使いのコンピューターに対する管理者特権が必要です。To install the storage emulator, you must have administrative privileges on your computer.

ストレージ エミュレーターは、現在、Windows でのみ実行されます。The storage emulator currently runs only on Windows. Linux 用のストレージ エミュレーターをお探しの場合、コミュニティで管理されているオープン ソースのストレージ エミュレーター Azurite が選択肢の 1 つとして挙げられます。For those considering a storage emulator for Linux, one option is the community maintained, open source storage emulator Azurite.

注意

ストレージ エミュレーターの特定のバージョンで作成されたデータには、別のバージョンを使用しているとアクセスできない場合があります。Data created in one version of the storage emulator is not guaranteed to be accessible when using a different version. データを永続化して長期にわたって保持する必要がある場合、そのデータはストレージ エミュレーターではなく Azure ストレージ アカウントに格納することをお勧めします。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.

ストレージ エミュレーターは、OData ライブラリの特定のバージョンに依存します。The storage emulator depends on specific versions of the OData libraries. ストレージ エミュレーターで使用される OData DLL を他のバージョンで置き換えることはサポートされていません。この置き換えを行うと、予期しない動作が発生する可能性があります。Replacing the OData DLLs used by the storage emulator with other versions is unsupported, and may cause unexpected behavior. ただし、ストレージ サービスでサポートされる OData のバージョンを使用してエミュレーターに要求を送信することは可能です。However, any version of OData supported by the storage service may be used to send requests to the emulator.

ストレージ エミュレーターのしくみHow the storage emulator works

ストレージ エミュレーターは、ローカルの Microsoft SQL Server インスタンスとローカル ファイル システムを使用して、Azure ストレージ サービスをエミュレートします。The storage emulator uses a local Microsoft SQL Server instance and the local file system to emulate Azure storage services. 既定では、ストレージ エミュレーターは、Microsoft SQL Server 2012 Express LocalDB のデータベースを使用します。By default, the storage emulator uses a database in Microsoft SQL Server 2012 Express LocalDB. LocalDB インスタンスではなく、SQL Server のローカル インスタンスにアクセスするようにストレージ エミュレーターを構成することもできます。You can choose to configure the storage emulator to access a local instance of SQL Server instead of the LocalDB instance. 詳細については、この記事で後述する「ストレージ エミュレーターの起動と初期化」を参照してください。For more information, see the Start and initialize the storage emulator section later in this article.

ストレージ エミュレーターは、Windows 認証を使用して SQL Server または LocalDB に接続します。The storage emulator connects to SQL Server or LocalDB using Windows authentication.

ストレージ エミュレーターと Azure のストレージ サービスには、いくつかの機能上の違いがあります。Some differences in functionality exist between the storage emulator and Azure storage services. これらの違いの詳細については、この記事で後述する「ストレージ エミュレーターと Azure ストレージとの違い」を参照してください。For more information about these differences, see the Differences between the storage emulator and Azure Storage section later in this article.

ストレージ エミュレーターの起動と初期化Start and initialize the storage emulator

Azure ストレージ エミュレーターを起動するには、次の手順を実行します。To start the Azure storage emulator:

  1. [スタート] を選択するか、Windows キーを押します。Select the Start button or press the Windows key.
  2. Azure Storage Emulator」と入力を開始します。Begin typing Azure Storage Emulator.
  3. 表示されているアプリケーションの一覧からエミュレーターを選択します。Select the emulator from the list of displayed applications.

ストレージ エミュレーターが起動すると、コマンド プロンプト ウィンドウが表示されます。When the storage emulator starts, a Command Prompt window will appear. このコンソール ウィンドウを使用して、ストレージ エミュレーターの起動と停止、データのクリア、状態の取得、およびエミュレーターの初期化を実行できます。You can use this console window to start and stop the storage emulator, clear data, get status, and initialize the emulator. 詳細については、この記事で後述する「ストレージ エミュレーター コマンド ライン ツールのリファレンス」を参照してください。For more information, see the Storage emulator command-line tool reference section later in this article.

エミュレーターの実行中は、Windows タスク バーの通知領域にアイコンが表示されます。When the emulator is running, you'll see an icon in the Windows taskbar notification area.

ストレージ エミュレーターのコマンド プロンプト ウィンドウを終了しても、ストレージ エミュレーターは引き続き実行されています。When you close the storage emulator Command Prompt window, the storage emulator will continue to run. ストレージ エミュレーターのコンソール ウィンドウを再度表示するには、ストレージ エミュレーターを起動する場合と同じように前述の手順に従います。To bring up the Storage Emulator console window again, follow the preceding steps as if starting the storage emulator.

ストレージ エミュレーターを初めて実行すると、ローカル ストレージ環境が初期化されます。The first time you run the storage emulator, the local storage environment is initialized for you. 初期化プロセスでは、LocalDB にデータベースが作成され、各ローカル ストレージ サービス用として HTTP ポートが予約されます。The initialization process creates a database in LocalDB and reserves HTTP ports for each local storage service.

ストレージ エミュレーターは既定では 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.

ヒント

Microsoft Azure ストレージ エクスプローラーを使用して、ローカル ストレージ エミュレーター リソースを操作できます。You can use the Microsoft Azure Storage Explorer to work with local storage emulator resources. ストレージ エミュレーターをインストールして起動したら、ストレージ エクスプローラーのリソース ツリーの "ストレージ アカウント" の下で "(開発)" を探します。Look for "(Development)" under "Storage Accounts" in the Storage Explorer resources tree after you've installed and started the storage emulator.

別の SQL データベースを使用するための、ストレージ エミュレーターの初期化Initialize the storage emulator to use a different SQL database

既定の LocalDB インスタンスとは別の SQL データベース インスタンスを参照するようにストレージ エミュレーターを初期化するには、ストレージ エミュレーター コマンド ライン ツールを使用します。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. ストレージ エミュレーターの起動と初期化」セクションの説明に従って、ストレージ エミュレーターのコンソール ウィンドウを開きます。Open the Storage Emulator console window as described in the Start and initialize the storage emulator section.
  2. コンソール ウィンドウで、次のコマンドを入力します。ここで <SQLServerInstance> は、SQL Server インスタンスの名前です。In the console window, type the following command, where <SQLServerInstance> is the name of the SQL Server instance. LocalDB を使用するには、SQL Server インスタンスとして (localdb)\MSSQLLocalDb を指定します。To use LocalDB, specify (localdb)\MSSQLLocalDb as the SQL Server instance.

    AzureStorageEmulator.exe init /server <SQLServerInstance>

    次のコマンドを使うこともできます。このコマンドを指定すると、エミュレーターは既定の SQL Server インスタンスを使用します。You can also use the following command, which directs the emulator to use the default SQL Server instance:

    AzureStorageEmulator.exe init /server .\\

    または、データベースを既定の LocalDB インスタンスに再初期化する次のコマンドを使うこともできます。Or, you can use the following command, which reinitializes the database to the default LocalDB instance:

    AzureStorageEmulator.exe init /forceCreate

これらのコマンドの詳細については、「ストレージ エミュレーター コマンド ライン ツールのリファレンス」を参照してください。For more information about these commands, see Storage emulator command-line tool reference.

ヒント

Microsoft SQL Server Management Studio (SSMS) を使用して、LocalDB のインストールを含め、SQL Server インスタンスを管理できます。You can use the Microsoft SQL Server Management Studio (SSMS) to manage your SQL Server instances, including the LocalDB installation. SMSS の [サーバーへの接続] ダイアログで、[サーバー名:] フィールドに (localdb)\MSSQLLocalDb を指定して LocalDB インスタンスに接続します。In the SMSS Connect to Server dialog, specify (localdb)\MSSQLLocalDb in the Server name: field to connect to the LocalDB instance.

ストレージ エミュレーターに対する要求の認証Authenticating requests against the storage emulator

ストレージ エミュレーターをインストールして起動すると、コードをテストできます。Once you've installed and started the storage emulator, you can test your code against it. クラウドの Azure Storage の場合と同様に、ストレージ エミュレーターに対する各要求は、匿名である場合を除いて承認される必要があります。As with Azure Storage in the cloud, every request you make against the storage emulator must be authorized, unless it is an anonymous request. ストレージ エミュレーターに対する要求の承認には、共有キー認証を使用するか、共有アクセス署名 (SAS) を使用することができます。You can authorize requests against the storage emulator using Shared Key authentication or with a shared access signature (SAS).

共有キー資格情報を使用して承認するAuthorize with Shared Key credentials

ストレージ エミュレーターでは、共有キー認証について、単一の固定アカウントと既知の認証キーがサポートされています。The storage emulator supports a single fixed account and a well-known authentication key for Shared Key authentication. このアカウントとキーのみ、ストレージ エミュレーターで共有キー資格情報として使用できます。This account and key are the only Shared Key credentials permitted for use with the storage emulator. 次に例を示します。They are:

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

注意

ストレージ エミュレーターでサポートされている認証キーは、クライアント認証コードの機能をテストすることだけを目的としています。The authentication key supported by the storage emulator is intended only for testing the functionality of your client authentication code. セキュリティ機能は果たしません。It does not serve any security purpose. ストレージ エミュレーターで運用環境のストレージ アカウントとキーを使用することはできません。You cannot use your production storage account and key with the storage emulator. 開発アカウントを運用データで使用することは避けてください。You should not use the development account with production data.

ストレージ エミュレーターでは HTTP 経由の接続のみがサポートされます。The storage emulator supports connection via HTTP only. ただし、運用環境の Azure ストレージ アカウント内のリソースにアクセスする際は、HTTPS が推奨されるプロトコルです。However, HTTPS is the recommended protocol for accessing resources in a production Azure storage account.

ショートカットを使用してエミュレーター アカウントに接続するConnect to the emulator account using a shortcut

アプリケーションからストレージ エミュレーターに接続する最も簡単な方法は、ショートカット 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. たとえば、app.config ファイル内でのストレージ エミュレーターへの接続文字列は次のようになります。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>

よく知られたアカウント名とキーを使用してエミュレーター アカウントに接続するConnect to the emulator account using the well-known account name and key

エミュレーターのアカウント名とキーを参照する接続文字列を作成するには、接続文字列内のエミュレーターから使用する各サービスのエンドポイントを指定する必要があります。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. これは、接続文字列が運用ストレージ アカウントに使用するものと異なるエミュレーター エンドポイントを参照するために必要です。This is necessary so that the connection string will reference the emulator endpoints, which are different than those for a production storage account. たとえば、接続文字列の値は次のようになります。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;

この値は、前述のショートカット UseDevelopmentStorage=trueと同じです。This value is identical to the shortcut shown above, UseDevelopmentStorage=true.

HTTP プロキシを指定するSpecify an HTTP proxy

また、サービスをストレージ エミュレーターでテストする際に使用する HTTP プロキシを指定することもできます。You can also specify an HTTP proxy to use when you're testing your service against the storage emulator. これは、ストレージ サービスに対する操作をデバッグするとき、HTTP の要求と応答を調べる場合に便利です。This can be useful for observing HTTP requests and responses while you're debugging operations against the storage services. プロキシを指定するには、 DevelopmentStorageProxyUri オプションを接続文字列に追加し、値としてプロキシ URI を設定します。To specify a proxy, add the DevelopmentStorageProxyUri option to the connection string, and set its value to the proxy URI. たとえば、次に示す接続文字列は、ストレージ エミュレーターを指しており、HTTP プロキシを構成しています。For example, here is a connection string that points to the storage emulator and configures an HTTP proxy:

UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri

接続文字列の詳細については、「Azure Storage の接続文字列を構成する」を参照してください。For more information on connection strings, see Configure Azure Storage connection strings.

共有アクセス署名を使用して承認するAuthorize with a shared access signature

Xamarin ライブラリなど、一部の Azure ストレージ クライアント ライブラリでは、共有アクセス署名 (SAS) トークンでの認証だけがサポートされています。Some Azure storage client libraries, such as the Xamarin library, only support authentication with a shared access signature (SAS) token. この SAS トークンは、ストレージ エクスプローラーなどのツールや、共有キー認証をサポートしている別のアプリケーションを使用して作成することができます。You can create the SAS token using a tool like the Storage Explorer or another application that supports Shared Key authentication.

また、Azure PowerShell を使用して SAS トークンを生成することもできます。You can also generate a SAS token by using Azure PowerShell. 次の例では、BLOB コンテナーに対するフル アクセス許可を持つ SAS トークンが生成されます。The following example generates a SAS token with full permissions to a blob container:

  1. まだインストールしていない場合は、Azure PowerShell をインストールします (最新バージョンの Azure PowerShell コマンドレットを使用することをお勧めします)。Install Azure PowerShell if you haven't already (using the latest version of the Azure PowerShell cmdlets is recommended). インストールの手順については、「Install and configure Azure PowerShell (Azure PowerShell のインストールと構成)」を参照してください。For installation instructions, see Install and configure Azure PowerShell.
  2. Azure PowerShell を開き、次のコマンドを実行します。ACCOUNT_NAMEACCOUNT_KEY== は使用する資格情報で置き換え、CONTAINER_NAME は任意の名前で置き換えます。Open Azure PowerShell and run the following commands, replacing ACCOUNT_NAME and ACCOUNT_KEY== with your own credentials, and CONTAINER_NAME with a name of your choosing:
$context = New-AzureStorageContext -StorageAccountName "ACCOUNT_NAME" -StorageAccountKey "ACCOUNT_KEY=="

New-AzureStorageContainer CONTAINER_NAME -Permission Off -Context $context

$now = Get-Date

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

新しいコンテナーの共有アクセス署名 URI は、次のようになります。The resulting shared access signature URI for the new container should be similar to:

https://storageaccount.blob.core.windows.net/sascontainer?sv=2012-02-12&se=2015-07-08T00%3A12%3A08Z&sr=c&sp=wl&sig=t%2BbzU9%2B7ry4okULN9S0wst%2F8MCUhTjrHyV9rDNLSe8g%3Dsss

この例で作成した共有アクセス署名は、1 日間有効です。The shared access signature created with this example is valid for one day. この署名は、コンテナー内の BLOB へのフル アクセス (読み取り、書き込み、削除、一覧表示) を許可します。The signature grants full access (read, write, delete, list) to blobs within the container.

共有アクセス署名の詳細については、Azure Storage での共有アクセス署名 (SAS) の使用に関するページをご覧ください。For more information on shared access signatures, see Using shared access signatures (SAS) in Azure Storage.

ストレージ エミュレーターでのリソースのアドレス指定Addressing resources in the storage emulator

ストレージ エミュレーターのサービス エンドポイントは、Azure ストレージ アカウントのものとは異なります。The service endpoints for the storage emulator are different from those of an Azure storage account. 異なる理由は、ローカル コンピューターがドメイン名解決を行わず、ストレージ エミュレーターのエンドポイントがローカル アドレスでなければならない点にあります。The difference is because the local computer does not perform domain name resolution, requiring the storage emulator endpoints to be local addresses.

Azure ストレージ アカウントのリソースをアドレス指定する場合は、次のスキームを使用します。When you address a resource in an Azure storage account, you use the following scheme. アカウント名が URI ホスト名の一部になり、アドレス指定するリソースが 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>

たとえば、以下の URI は、Azure ストレージ アカウント内の BLOB の有効なアドレスです。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

ただし、ストレージ エミュレーターでは、ローカル コンピューターがドメイン名の解決を実行しないため、アカウント名は、ホスト名ではなく URI パスの一部になります。However, the storage emulator, because the local computer does not perform domain name resolution, the account name is part of the URI path instead of the host name. ストレージ エミュレーターのリソースには、次の URI 形式を使用します。Use the following URI format for a resource in the storage emulator:

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

たとえば、ストレージ エミュレーターの BLOB にアクセスするには次のアドレスを使用します。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

ストレージ エミュレーターのサービス エンドポイントは、次のとおりです。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>
  • Queue サービス: 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>

RA-GRS を使用した、アカウントのセカンダリ拠点のアドレス指定Addressing the account secondary with RA-GRS

Version 3.1 以降では、ストレージ エミュレーターで読み取りアクセスの geo 冗長レプリケーション (RA-GRS) がサポートされます。Beginning with version 3.1, the storage emulator supports read-access geo-redundant replication (RA-GRS). クラウド内のストレージ リソースとローカル エミュレーター内のストレージ リソースの場合、2 次拠点にアクセスするにはアカウント名に -secondary を付加します。For storage resources both in the cloud and in the local emulator, you can access the secondary location by appending -secondary to the account name. たとえば、ストレージ エミュレーターで読み取り専用の 2 次拠点を使用して BLOB にアクセスするには、次のアドレスを使用します。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

注意

ストレージ エミュレーターを使用した、プログラムによるセカンダリへのアクセスには、.NET 用ストレージ クライアント ライブラリの Version 3.2 以降を使用してください。For programmatic access to the secondary with the storage emulator, use the Storage Client Library for .NET version 3.2 or later. 詳細については、「 .NET 用の Microsoft Azure Storage クライアント ライブラリ 」を参照してください。See the Microsoft Azure Storage Client Library for .NET for details.

ストレージ エミュレーター コマンド ライン ツールのリファレンスStorage emulator command-line tool reference

Version 3.0 以降、コンソール ウィンドウは、ストレージ エミュレーターを起動すると表示されます。Starting in version 3.0, a console window is displayed when you start the Storage Emulator. コンソール ウィンドウでコマンド ラインを使用して、エミュレーターの起動または停止、状態のクエリ、その他の操作を実行します。Use the command line in the console window to start and stop the emulator as well as query for status and perform other operations.

注意

Microsoft Azure コンピューティング エミュレーターがインストール済みの場合は、ストレージ エミュレーターの起動時にシステム トレイ アイコンが表示されます。If you have the Microsoft Azure compute emulator installed, a system tray icon appears when you launch the Storage Emulator. このアイコンを右クリックするとメニューが表示され、直感的な方法でストレージ エミュレーターを起動および停止できます。Right-click on the icon to reveal a menu that provides a graphical way to start and stop the Storage Emulator.

コマンド ラインの構文Command line syntax

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

オプションOptions

オプションの一覧を表示するには、コマンド プロンプトで「 /help 」と入力します。To view the list of options, type /help at the command prompt.

オプションOption 説明Description コマンドCommand 引数Arguments
StartStart ストレージ エミュレーターを起動します。Starts up the storage emulator. AzureStorageEmulator.exe start [-inprocess] -inprocess: 新しいプロセスを作成せずに、現在のプロセスでエミュレーターを起動します。-inprocess: Start the emulator in the current process instead of creating a new process.
StopStop ストレージ エミュレーターを停止します。Stops the storage emulator. AzureStorageEmulator.exe stop
状態Status ストレージ エミュレーターの状態を出力します。Prints the status of the storage emulator. AzureStorageEmulator.exe status
ClearClear コマンド ラインで指定されたすべてのサービス内のデータを消去します。Clears the data in all services specified on the command line. AzureStorageEmulator.exe clear [blob] [table] [queue] [all] blob: BLOB データを消去します。blob: Clears blob data.
queue: キュー データを消去します。queue: Clears queue data.
table: テーブル データを消去します。table: Clears table data.
all: すべてのサービスのすべてのデータを消去します。all: Clears all data in all services.
InitInit エミュレーターをセットアップするために、1 回限りの初期化を実行します。Performs one-time initialization to set up the emulator. AzureStorageEmulator.exe init [-server serverName] [-sqlinstance instanceName] [-forcecreate|-skipcreate] [-reserveports|-unreserveports] [-inprocess] -server serverName\instanceName: SQL インスタンスをホストしているサーバーを指定します。-server serverName\instanceName: Specifies the server hosting the SQL instance.
-sqlinstance instanceName: 既定のサーバー インスタンスで使用される SQL インスタンスの名前を指定します。-sqlinstance instanceName: Specifies the name of the SQL instance to be used in the default server instance.
-forcecreate: SQL データベースが既に存在していても、強制的に作成します。-forcecreate: Forces creation of the SQL database, even if it already exists.
-skipcreate: SQL データベースの作成をスキップします。-skipcreate: Skips creation of the SQL database. これは -forcecreate に優先します。This takes precedence over -forcecreate.
-reserveports: サービスに関連付けられている HTTP ポートの予約を試行します。-reserveports: Attempts to reserve the HTTP ports associated with the services.
-unreserveports: サービスに関連付けられている HTTP ポートの予約の削除を試行します。-unreserveports: Attempts to remove reservations for the HTTP ports associated with the services. これは -reserveports に優先します。This takes precedence over -reserveports.
-inprocess: 新しいプロセスを生成せずに、現在のプロセスで初期化を行います。-inprocess: Performs initialization in the current process instead of spawning a new process. ポートの予約を変更する場合は、管理者特権のアクセス許可で現在のプロセスを起動する必要があります。The current process must be launched with elevated permissions if changing port reservations.

ストレージ エミュレーターと Azure ストレージとの違いDifferences between the storage emulator and Azure Storage

ストレージ エミュレーターは、ローカルの SQL インスタンスで実行される、エミュレートされた環境であるため、エミュレーターとクラウド上の Azure ストレージ アカウントの機能には違いがあります。Because the storage emulator is an emulated environment running in a local SQL instance, there are differences in functionality between the emulator and an Azure storage account in the cloud:

  • ストレージ エミュレーターでは、単一の固定アカウントと既知の認証キーのみがサポートされます。The storage emulator supports only a single fixed account and a well-known authentication key.
  • ストレージ エミュレーターはスケーラブルなストレージ サービスではなく、多数の同時クライアントはサポートされません。The storage emulator is not a scalable storage service and does not support a large number of concurrent clients.
  • ストレージ エミュレーターでのリソースのアドレス指定」で説明したように、ストレージ エミュレーターでは、リソースは Azure ストレージ アカウントとは異なる方法でアドレス指定されます。As described in Addressing resources in the storage emulator, resources are addressed differently in the storage emulator versus an Azure storage account. この違いは、クラウドではドメイン名解決が使用できても、ローカル コンピューターでは使用できないことが原因です。This difference is because domain name resolution is available in the cloud but not on the local computer.
  • Version 3.1 以降では、ストレージ エミュレーター アカウントで読み取りアクセスの geo 冗長レプリケーション (RA-GRS) がサポートされます。Beginning with version 3.1, the storage emulator account supports read-access geo-redundant replication (RA-GRS). エミュレーターでは、すべてのアカウントで RA-GRS が有効になっていて、プライマリ レプリカとセカンダリ レプリカの間に時間差が生じることはありません。In the emulator, all accounts have RA-GRS enabled, and there is never any lag between the primary and secondary replicas. Get Blob Service Stats、Get Queue Service Stats、および Get Table Service Stats 操作は、アカウントのセカンダリ拠点でサポートされており、常に LastSyncTime 応答要素の値を、基になる 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.
  • File サービスおよび SMB プロトコル サービス エンドポイントは、ストレージ エミュレーターでは現在サポートされていません。The File service and SMB protocol service endpoints are not currently supported in the storage emulator.
  • エミュレーターでサポートされていないストレージ サービスのバージョンを使用する場合、ストレージ エミュレーターは VersionNotSupportedByEmulator エラー (HTTP 状態コード 400 - Bad Request) を返します。If you use a version of the storage services that is not yet supported by the emulator, the storage emulator returns a VersionNotSupportedByEmulator error (HTTP status code 400 - Bad Request).

BLOB ストレージに対する相違点Differences for Blob storage

以下の相違点が、エミュレーターの BLOB ストレージに該当します。The following differences apply to Blob storage in the emulator:

  • ストレージ エミュレーターでは、最大で 2 GB のサイズの BLOB だけがサポートされます。The storage emulator only supports blob sizes up to 2 GB.
  • 増分コピーを使用すると、上書きされた BLOB からのスナップショットをコピーできます。これにより、サービスでエラーが返されます。Incremental copy allows snapshots from overwritten blobs to be copied, which returns a failure on the service.
  • Incremental Copy BLOB を使用してコピーされたスナップショット間では、ページ範囲の差分の取得は機能しません。Get Page Ranges Diff does not work between snapshots copied using Incremental Copy Blob.
  • アクティブなリースを持つストレージ エミュレーター内に存在する BLOB に対する Put Blob 操作が、要求でリース ID が指定されなかった場合でも、成功することがあります。A Put Blob operation may succeed against a blob that exists in the storage emulator with an active lease, even if the lease ID has not been specified in the request.
  • エミュレーターでは追加 BLOB の操作はサポートされません。Append Blob operations are not supported by the emulator. 追加 BLOB で操作をしようとすると、FeatureNotSupportedByEmulator エラー (HTTP ステータス コード 400 - Bad Request) が返されます。Attempting an operation on an append blob returns a FeatureNotSupportedByEmulator error (HTTP status code 400 - Bad Request).

テーブル ストレージに対する相違点Differences for Table storage

以下の相違点が、エミュレーターのテーブル ストレージに該当します。The following differences apply to Table storage in the emulator:

  • ストレージ エミュレーターの Table service での日付プロパティは、SQL Server 2005 でサポートされている範囲だけをサポートします (1753 年 1 月 1 日より後である必要があります)。Date properties in the Table service in the storage emulator support only the range supported by SQL Server 2005 (they are required to be later than January 1, 1753). 1753 年 1 月 1 日より前のすべての日付は、この値に変更されます。All dates before January 1, 1753 are changed to this value. 日付の精度は、SQL Server 2005 の精度までに制限されます。つまり、日付の精度は 1/300 秒です。The precision of dates is limited to the precision of SQL Server 2005, meaning that dates are precise to 1/300th of a second.
  • ストレージ エミュレーターでは、それぞれ 512 バイト未満のパーティション キーと行キーのプロパティ値がサポートされます。The storage emulator supports partition key and row key property values of less than 512 bytes each. また、アカウント名、テーブル名、およびキー プロパティ名の合計サイズが 900 バイトを超えることはできません。Additionally, the total size of the account name, table name, and key property names together cannot exceed 900 bytes.
  • ストレージ エミュレーターのテーブル内の行の合計サイズは、1 MB 未満に制限されます。The total size of a row in a table in the storage emulator is limited to less than 1 MB.
  • ストレージ エミュレーターで、データ型 Edm.Guid または Edm.Binary のプロパティは、クエリ フィルター文字列で Equal (eq) および NotEqual (ne) 比較演算子だけをサポートします。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.

キュー ストレージに対する相違点Differences for Queue storage

エミュレーターのキュー ストレージに固有の違いはありません。There are no differences specific to Queue storage in the emulator.

ストレージ エミュレーター リリース ノートStorage emulator release notes

バージョン 5.5Version 5.5

  • ストレージ エミュレーターで、BLOB、Queue、および Table service エンドポイント上のストレージ サービスのバージョン 2017-11-09 がサポートされるようになりました。The storage emulator now supports version 2017-11-09 of the storage services on Blob, Queue, and Table service endpoints.
  • BLOB の作成時刻を返す BLOB の Created プロパティのサポートが追加されました。Support has been added for the blob Created property, which returns the blob's creation time.

バージョン 5.4Version 5.4

インストールの安定性を向上させるために、エミュレーターでインストール時にポートの予約を試行しなくなりました。To improve installation stability, the emulator no longer attempts to reserve ports at install time. ポートの予約が必要な場合は、init コマンドの -reserveports オプションを使用して指定します。If port reservations are desired, use the -reserveports option of the init command to specify them.

バージョン 5.3Version 5.3

ストレージ エミュレーターで、BLOB、Queue、および Table service エンドポイント上のストレージ サービスのバージョン 2017-07-29 がサポートされるようになりました。The storage emulator now supports version 2017-07-29 of the storage services on Blob, Queue, and Table service endpoints.

バージョン 5.2Version 5.2

  • ストレージ エミュレーターで、BLOB、Queue、および Table service エンドポイント上のストレージ サービスのバージョン 2017-04-17 がサポートされるようになりました。The storage emulator now supports version 2017-04-17 of the storage services on Blob, Queue, and Table service endpoints.
  • テーブルのプロパティ値が適切にエンコードされないバグを修正しました。Fixed a bug where table property values were not being properly encoded.

バージョン 5.1Version 5.1

一部の応答でサービスが返していなかった DataServiceVersion ヘッダーをストレージ エミュレーターが返していたバグを修正しました。Fixed a bug where the storage emulator was returning the DataServiceVersion header in some responses where the service was not.

バージョン 5.0Version 5.0

  • ストレージ エミュレーターのインストーラーが既存の MSSQL や .NET Framework のインストールをチェックしなくなりました。The storage emulator installer no longer checks for existing MSSQL and .NET Framework installs.
  • ストレージ エミュレーターのインストーラーがインストールの一部としてデータベースを作成しなくなりました。The storage emulator installer no longer creates the database as part of install. データベースはスタートアップの一部として必要な場合は作成されます。Database will still be created if needed as part of startup.
  • データベースの作成に管理者特権が不要になりました。Database creation no longer requires elevation.
  • スタートアップでポートの予約が不要になりました。Port reservations are no longer needed for startup.
  • init-reserveports (管理者特権が必要)、-unreserveports (管理者特権が必要)、-skipcreate のオプションを追加しました。Adds the following options to init: -reserveports (requires elevation), -unreserveports (requires elevation), -skipcreate.
  • システム トレイ アイコンのストレージ エミュレーター UI オプションがコマンド ライン インターフェイスを起動するようになりました。The Storage Emulator UI option on the system tray icon now launches the command line interface. 古い GUI は使用できなくなりました。The old GUI is no longer available.
  • 一部の DLL が削除または名前が変更されました。Some DLLs have been removed or renamed.

バージョン 4.6Version 4.6

  • ストレージ エミュレーターで、BLOB、Queue、および Table service エンドポイント上のストレージ サービスのバージョン 2016-05-31 がサポートされるようになりました。The storage emulator now supports version 2016-05-31 of the storage services on Blob, Queue, and Table service endpoints.

バージョン 4.5Version 4.5

  • バックアップ データベースの名前が変更された場合に、ストレージ エミュレーターの初期化とインストールが失敗する原因となったバグを修正しました。Fixed a bug that caused initialization and installation of the storage emulator to fail when the backing database was renamed.

バージョン 4.4Version 4.4

  • ストレージ エミュレーターで、BLOB、Queue、および Table service エンドポイント上のストレージ サービスのバージョン 2015-12-11 がサポートされるようになりました。The storage emulator now supports version 2015-12-11 of the storage services on Blob, Queue, and Table service endpoints.
  • ストレージ エミュレーターの BLOB データに対するガベージ コレクションが、多数の BLOB を処理する場合に、より効率的になりました。The storage emulator's garbage collection of blob data is now more efficient when dealing with large numbers of blobs.
  • コンテナー ACL XML の検証が、ストレージ サービスによる検証と少し異なる方法で行われる原因となるバグを修正しました。Fixed a bug that caused container ACL XML to be validated slightly differently from how the storage service does it.
  • 最大および最小 DateTime 値が不適切なタイム ゾーンで報告される場合があるバグを修正しました。Fixed a bug that sometimes caused max and min DateTime values to be reported in the incorrect time zone.

バージョン 4.3Version 4.3

  • ストレージ エミュレーターで、BLOB、Queue、および Table service エンドポイント上のストレージ サービスのバージョン 2015-07-08 がサポートされるようになりました。The storage emulator now supports version 2015-07-08 of the storage services on Blob, Queue, and Table service endpoints.

バージョン 4.2Version 4.2

  • ストレージ エミュレーターで、BLOB、Queue、および Table service エンドポイント上のストレージ サービスのバージョン 2015-04-05 がサポートされるようになりました。The storage emulator now supports version 2015-04-05 of the storage services on Blob, Queue, and Table service endpoints.

Version 4.1Version 4.1

  • ストレージ エミュレーターでは、新しい追加 BLOB 機能を除く BLOB、Queue、Table service エンドポイント上のストレージ サービスのバージョン 2015-02-21 がサポートされるようになりました。The storage emulator now supports version 2015-02-21 of the storage services on Blob, Queue, and Table service endpoints, except for the new Append Blob features.
  • エミュレーターでサポートされていないストレージ サービスのバージョンを使用する場合でも、エミュレーターでは意味のあるエラー メッセージを返します。If you use a version of the storage services that is not yet supported by the emulator, the emulator returns a meaningful error message. 最新バージョンのエミュレーターの使用をお勧めします。We recommend using the latest version of the emulator. VersionNotSupportedByEmulator エラー (HTTP ステータス コード 400 - Bad Request) が発生する場合、最新バージョンのストレージ エミュレーターをダウンロードしてください。If you encounter a VersionNotSupportedByEmulator error (HTTP status code 400 - Bad Request), please download the latest version of the storage emulator.
  • 競争状態のバグが原因となる同時マージ操作時のテーブル エンティティ データの間違いが修正されました。Fixed a bug wherein a race condition caused table entity data to be incorrect during concurrent merge operations.

Version 4.0Version 4.0

  • ストレージ エミュレーターの実行可能ファイルの名前が AzureStorageEmulator.exeに変更されました。The storage emulator executable has been renamed to AzureStorageEmulator.exe.

Version 3.2Version 3.2

  • ストレージ エミュレーターで、BLOB、Queue、および Table service エンドポイント上のストレージ サービスのバージョン 2014-02-14 がサポートされるようになりました。The storage emulator now supports version 2014-02-14 of the storage services on Blob, Queue, and Table service endpoints. File サービス エンドポイントは、ストレージ エミュレーターでは現在サポートされていません。File service endpoints are not currently supported in the storage emulator. バージョン 2014-02-14 の詳細については、 Azure Storage サービスのバージョン管理 に関するページを参照してください。See Versioning for the Azure Storage Services for details about version 2014-02-14.

Version 3.1Version 3.1

  • 読み取りアクセス地理冗長ストレージ (RA-GRS) が、ストレージ エミュレーターでサポートされるようになりました。Read-access geo-redundant storage (RA-GRS) is now supported in the storage emulator. Get Blob Service Stats、Get Queue Service Stats、および Get Table Service Stats API は、アカウントのセカンダリ拠点でサポートされており、常に LastSyncTime 応答要素の値を、基になる 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. ストレージ エミュレーターを使用した、プログラムによるセカンダリへのアクセスには、.NET 用ストレージ クライアント ライブラリの Version 3.2 以降を使用してください。For programmatic access to the secondary with the storage emulator, use the Storage Client Library for .NET version 3.2 or later. 詳細については、.NET リファレンス用の Microsoft Azure Storage クライアント ライブラリを参照してください。See the Microsoft Azure Storage Client Library for .NET Reference for details.

Version 3.0Version 3.0

  • Azure ストレージ エミュレーターが、コンピューティング エミュレーターと同じパッケージには同梱されないようになりました。The Azure storage emulator is no longer shipped in the same package as the compute emulator.
  • ストレージ エミュレーターのグラフィカル ユーザー インターフェイスが、スクリプト可能なコマンド ライン インターフェイスを優先して、非推奨となりました。The storage emulator graphical user interface is deprecated in favor of a scriptable command-line interface. コマンド ライン インターフェイスの詳細については、ストレージ エミュレーター コマンド ライン ツールのリファレンスを参照してください。For details on the command-line interface, see Storage Emulator Command-Line Tool Reference. グラフィカル インターフェイスはバージョン 3.0 までは引き続き存在しますが、計算エミュレーターがインストールされている場合にシステム トレイ アイコンを右クリックして [ストレージ エミュレーター UI の表示] を選択することによってのみアクセスできます。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.
  • Azure ストレージ サービスのバージョン 2013-08-15 が、完全にサポートされるようになりました。Version 2013-08-15 of the Azure storage services is now fully supported. (以前は、このバージョンはストレージ エミュレーター バージョン 2.2.1 プレビューだけでサポートされていました。)(Previously this version was only supported by Storage Emulator version 2.2.1 Preview.)

次の手順Next steps