Usar o Emulador de Armazenamento do Azure para desenvolvimento e testeUse the Azure storage emulator for development and testing

O emulador de armazenamento Microsoft Azure é uma ferramenta que emula os serviços BLOB, fila e tabela do Azure para fins de desenvolvimento local.The Microsoft Azure storage emulator is a tool that emulates the Azure Blob, Queue, and Table services for local development purposes. Você pode testar seu aplicativo em relação aos serviços de armazenamento localmente sem criar uma assinatura do Azure ou incorrer em custos.You can test your application against the storage services locally without creating an Azure subscription or incurring any costs. Quando estiver satisfeito com o funcionamento do aplicativo no emulador, alterne para o usando uma conta de armazenamento do Azure na nuvem.When you're satisfied with how your application is working in the emulator, switch to using an Azure storage account in the cloud.

Obter o emulador de armazenamentoGet the storage emulator

O emulador de armazenamento está disponível como parte do SDK do Microsoft Azure.The storage emulator is available as part of the Microsoft Azure SDK. Você também pode instalar o emulador de armazenamento usando o instalador autônomo (download direto).You can also install the storage emulator by using the standalone installer (direct download). Para instalar o emulador de armazenamento, você deve ter privilégios administrativos em seu computador.To install the storage emulator, you must have administrative privileges on your computer.

O emulador de armazenamento atualmente é executado apenas no Windows.The storage emulator currently runs only on Windows. Se você precisar de um emulador de armazenamento para Linux, uma opção é a Comunidade mantida, emulador de armazenamento de código aberto azurite.If you need a storage emulator for Linux, one option is the community maintained, open-source storage emulator Azurite.

Observação

Os dados criados em uma versão do emulador de armazenamento não têm a garantia de estarem acessíveis ao usar outra versão.Data created in one version of the storage emulator is not guaranteed to be accessible when using a different version. Se você precisar persistir seus dados a longo prazo, recomendamos que você armazene esses dados em uma conta de armazenamento do Azure e não no emulador de armazenamento.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.

O emulador de armazenamento depende de versões específicas das bibliotecas OData.The storage emulator depends on specific versions of the OData libraries. Não há suporte para a substituição das DLLs do OData usadas pelo emulador de armazenamento em outras versões, e ela pode causar um comportamento inesperado.Replacing the OData DLLs used by the storage emulator with other versions is unsupported, and may cause unexpected behavior. No entanto, qualquer versão do OData com suporte no serviço de armazenamento pode ser usada para enviar solicitações para o emulador.However, any version of OData supported by the storage service may be used to send requests to the emulator.

Como o emulador de armazenamento funcionaHow the storage emulator works

O emulador de armazenamento usa uma instância LocalDB do Microsoft SQL Server 2012 Express para emular os serviços de armazenamento do Azure.The storage emulator uses a local Microsoft SQL Server 2012 Express LocalDB instance to emulate Azure storage services. Você pode optar por configurar o emulador de armazenamento para acessar uma instância local do SQL Server em vez da instância do LocalDB.You can choose to configure the storage emulator to access a local instance of SQL Server instead of the LocalDB instance. Consulte a seção Iniciar e inicializar o emulador de armazenamento mais adiante neste artigo para saber mais.See the Start and initialize the storage emulator section later in this article to learn more.

O emulador de armazenamento se conecta ao SQL Server ou LocalDB usando a autenticação do Windows.The storage emulator connects to SQL Server or LocalDB using Windows authentication.

Existem algumas diferenças de funcionalidade entre o emulador de armazenamento e os serviços de armazenamento do Azure.Some differences in functionality exist between the storage emulator and Azure storage services. Para saber mais sobre essas diferenças, consulte a seção Diferenças entre o emulador de armazenamento e o armazenamento do Azure mais adiante neste artigo.For more information about these differences, see the Differences between the storage emulator and Azure Storage section later in this article.

Iniciar e inicializar o emulador de armazenamentoStart and initialize the storage emulator

Para iniciar o Emulador de Armazenamento do Azure:To start the Azure storage emulator:

  1. Selecione o botão Iniciar ou pressione a tecla Windows.Select the Start button or press the Windows key.
  2. Comece digitando Azure Storage Emulator.Begin typing Azure Storage Emulator.
  3. Selecione o emulador na lista de aplicativos.Select the emulator from the list of displayed applications.

Quando o emulador de armazenamento for iniciado, aparecerá uma janela do Prompt de Comando.When the storage emulator starts, a Command Prompt window will appear. Você pode usar essa janela do console para iniciar e parar o emulador de armazenamento.You can use this console window to start and stop the storage emulator. Você também pode limpar os dados, obter o status e inicializar o emulador no prompt de comando.You can also clear data, get status, and initialize the emulator from the command prompt. Para saber mais, confira a seção Referência da ferramenta de linha de comando do emulador de armazenamento mais adiante neste artigo.For more information, see the Storage emulator command-line tool reference section later in this article.

Observação

O emulador de armazenamento do Azure pode não iniciar corretamente se outro emulador de armazenamento, como azurite, estiver em execução no sistema.The Azure storage emulator may not start correctly if another storage emulator, such as Azurite, is running on the system.

Quando o emulador estiver em execução, você verá um ícone na área de notificação da barra de tarefas do Windows.When the emulator is running, you'll see an icon in the Windows taskbar notification area.

Quando você fechar a janela do Prompt de Comando do emulador de armazenamento, o emulador de armazenamento continuará em execução.When you close the storage emulator Command Prompt window, the storage emulator will continue to run. Para exibir novamente a janela de comando do Emulador de Armazenamento, execute as etapas anteriores, como se estivesse iniciando o emulador de armazenamento.To bring up the Storage Emulator console window again, follow the preceding steps as if starting the storage emulator.

Na primeira vez que você executar o emulador de armazenamento, o ambiente de armazenamento local é inicializado para você.The first time you run the storage emulator, the local storage environment is initialized for you. O processo de inicialização cria um banco de dados no LocalDB e reserva portas HTTP para cada serviço de armazenamento local.The initialization process creates a database in LocalDB and reserves HTTP ports for each local storage service.

O emulador de armazenamento é instalado por padrão em 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.

Dica

Use o Gerenciador de Armazenamento do Microsoft Azure para trabalhar com recursos locais do emulador de armazenamento.You can use the Microsoft Azure Storage Explorer to work with local storage emulator resources. Procure "(portas padrão do emulador) (chave)" em "local & anexado" na árvore de recursos do Gerenciador de Armazenamento depois de instalar e iniciar o emulador de armazenamento.Look for "(Emulator - Default Ports) (Key)" under "Local & Attached" in the Storage Explorer resources tree after you've installed and started the storage emulator.

Inicializar o emulador de armazenamento para usar outro banco de dados SQLInitialize the storage emulator to use a different SQL database

Você pode usar a ferramenta de linha de comando do emulador de armazenamento para inicializar o emulador de armazenamento para apontar para uma instância do Banco de Dados SQL diferente da instância LocalDB padrão: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. Abra a janela de console do Emulador de Armazenamento, conforme descrito na seção Iniciar e inicializar o emulador de armazenamento.Open the Storage Emulator console window as described in the Start and initialize the storage emulator section.

  2. Na janela de comando, digite o seguinte comando, em que <SQLServerInstance> é o nome da instância do SQL Server.In the console window, type the following command, where <SQLServerInstance> is the name of the SQL Server instance. Para usar o LocalDB, especifique (localdb)\MSSQLLocalDb como a instância do SQL Server.To use LocalDB, specify (localdb)\MSSQLLocalDb as the SQL Server instance.

    AzureStorageEmulator.exe init /server <SQLServerInstance>

    Você também pode usar o seguinte comando, que direciona o emulador para usar a instância padrão do SQL Server:You can also use the following command, which directs the emulator to use the default SQL Server instance:

    AzureStorageEmulator.exe init /server .

    Se preferir, use o seguinte comando, que reinicializa o banco de dados na instância LocalDB padrão:Or, you can use the following command, which reinitializes the database to the default LocalDB instance:

    AzureStorageEmulator.exe init /forceCreate

Para saber mais sobre esses comandos, consulte Referência da ferramenta de linha de comando do emulador de armazenamento.For more information about these commands, see Storage emulator command-line tool reference.

Dica

Use o Microsoft SQL Server Management Studio (SSMS) para gerenciar suas instâncias do SQL Server, incluindo a instalação do LocalDB.You can use the Microsoft SQL Server Management Studio (SSMS) to manage your SQL Server instances, including the LocalDB installation. Na caixa de diálogo Conectar-se ao Servidor do SMSS, especifique (localdb)\MSSQLLocalDb no campo Nome do servidor: para se conectar à instância do LocalDB.In the SMSS Connect to Server dialog, specify (localdb)\MSSQLLocalDb in the Server name: field to connect to the LocalDB instance.

Autenticando solicitações no emulador de armazenamentoAuthenticating requests against the storage emulator

Após a instalação e iniciação do emulador de armazenamento, teste seu código nele.Once you've installed and started the storage emulator, you can test your code against it. Cada solicitação feita no emulador de armazenamento deve ser autorizada, a menos que seja uma solicitação anônima.Every request you make against the storage emulator must be authorized, unless it's an anonymous request. Você pode autorizar solicitações no emulador de armazenamento usando a autenticação de chave compartilhada ou uma SAS (Assinatura de Acesso Compartilhado).You can authorize requests against the storage emulator using Shared Key authentication or with a shared access signature (SAS).

Autorizar com credenciais de Chave CompartilhadaAuthorize with Shared Key credentials

O emulador de armazenamento dá suporte a uma única conta fixa e uma chave de autenticação conhecida para a autenticação da Chave Compartilhada.The storage emulator supports a single fixed account and a well-known authentication key for Shared Key authentication. Essa conta e a chave são as únicas credenciais de Chave Compartilhada permitidas para uso com o emulador de armazenamento.This account and key are the only Shared Key credentials permitted for use with the storage emulator. Eles são:They are:

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

Observação

A chave de autenticação suportada pelo emulador de armazenamento destina-se somente para testar a funcionalidade do seu código de autenticação de cliente.The authentication key supported by the storage emulator is intended only for testing the functionality of your client authentication code. Ela não serve para fins de segurança.It does not serve any security purpose. Você não pode usar sua conta de armazenamento de produção e a chave com o emulador de armazenamento.You cannot use your production storage account and key with the storage emulator. Você não deve usar a conta de desenvolvimento com dados de produção.You should not use the development account with production data.

O emulador de armazenamento oferece suporte à conexão via HTTP apenas.The storage emulator supports connection via HTTP only. No entanto, o HTTPS é o protocolo recomendado para acessar os recursos em uma conta de armazenamento de produção do Azure.However, HTTPS is the recommended protocol for accessing resources in a production Azure storage account.

Conectar-se à conta do emulador usando um atalhoConnect to the emulator account using a shortcut

A maneira mais fácil de conectar o emulador de armazenamento do seu aplicativo é configurar uma cadeia de conexão no arquivo de configuração do aplicativo que faz referência ao atalho 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. Aqui está um exemplo de uma cadeia de conexão para o emulador de armazenamento em um arquivo 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>

Conectar-se à conta do emulador usando o nome de conta e a chave conhecidosConnect to the emulator account using the well-known account name and key

Para criar uma cadeia de conexão que referencia o nome da conta do emulador e a chave, você deve especificar os pontos de extremidade para cada um dos serviços do emulador na cadeia de conexão que você deseja usar.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. Isso é necessário para que a cadeia de conexão faça referência aos pontos de extremidade do emulador, que são diferentes daqueles para uma conta de armazenamento de produção.This is necessary so that the connection string will reference the emulator endpoints, which are different than those for a production storage account. Por exemplo, o valor da sua cadeia de conexão terá esta aparência: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;

Esse valor é idêntico ao atalho mostrado acima, UseDevelopmentStorage=true.This value is identical to the shortcut shown above, UseDevelopmentStorage=true.

Especificar um proxy HTTPSpecify an HTTP proxy

Você também pode especificar um proxy HTTP para usar quando estiver testando seu serviço no emulador de armazenamento.You can also specify an HTTP proxy to use when you're testing your service against the storage emulator. Isso pode ser útil para observar solicitações e respostas HTTP enquanto você estiver depurando operações nos serviços de armazenamento.This can be useful for observing HTTP requests and responses while you're debugging operations against the storage services. Para especificar um proxy, adicione a opção DevelopmentStorageProxyUri à cadeia de conexão e defina o seu valor para o URI de proxy.To specify a proxy, add the DevelopmentStorageProxyUri option to the connection string, and set its value to the proxy URI. Por exemplo, aqui está uma cadeia de conexão que aponta para o emulador de armazenamento e configura um 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

Para obter mais informações sobre cadeias de conexão, consulte Configurar cadeias de conexão do Armazenamento do Azure.For more information on connection strings, see Configure Azure Storage connection strings.

Autorizar com assinatura de acesso compartilhadoAuthorize with a shared access signature

Observação

Este artigo foi atualizado para usar o novo módulo Az do Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Você ainda pode usar o módulo AzureRM, que continuará a receber as correções de bugs até pelo menos dezembro de 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para saber mais sobre o novo módulo Az e a compatibilidade com o AzureRM, confira Apresentação do novo módulo Az do Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para obter instruções de instalação do módulo Az, confira Instalar o Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Algumas bibliotecas de cliente de armazenamento do Azure, como a biblioteca do Xamarin, só oferecem suporte à autenticação com um token SAS(Assinatura de Acesso Compartilhado).Some Azure storage client libraries, such as the Xamarin library, only support authentication with a shared access signature (SAS) token. Você pode criar o token SAS usando Gerenciador de armazenamento ou outro aplicativo que ofereça suporte à autenticação de chave compartilhada.You can create the SAS token using Storage Explorer or another application that supports Shared Key authentication.

Você também pode gerar um token SAS usando o Azure PowerShell.You can also generate a SAS token by using Azure PowerShell. O exemplo a seguir gera um token SAS com permissões totais em um contêiner de blob:The following example generates a SAS token with full permissions to a blob container:

  1. Instale o Azure PowerShell se você ainda não tiver feito isso (recomendamos o uso da versão mais recente do cmdlet do Azure PowerShell).Install Azure PowerShell if you haven't already (using the latest version of the Azure PowerShell cmdlets is recommended). Para obter instruções de instalação, consulte Instalar e configurar o Azure PowerShell.For installation instructions, see Install and configure Azure PowerShell.
  2. Abra o Azure PowerShell e execute os seguintes comandos, substituindo CONTAINER_NAME por um nome de sua escolha: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

O URI da assinatura de acesso compartilhado resultante do novo contêiner deve ser semelhante ao seguinte: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

A assinatura de acesso compartilhado criada com este exemplo é válida por um dia.The shared access signature created with this example is valid for one day. A assinatura concede acesso completo (leitura, gravação, exclusão e lista) para os blobs do contêiner.The signature grants full access (read, write, delete, list) to blobs within the container.

Para obter mais informações sobre assinaturas de acesso compartilhado, consulte conceder acesso limitado aos recursos de armazenamento do Azure usando SAS (assinaturas de acesso compartilhado).For more information on shared access signatures, see Grant limited access to Azure Storage resources using shared access signatures (SAS).

Endereçamento de recursos no emulador de armazenamentoAddressing resources in the storage emulator

Os pontos de extremidade de serviço do emulador de armazenamento são diferentes dos pontos de extremidade de uma conta de armazenamento do Azure.The service endpoints for the storage emulator are different from the endpoints for an Azure storage account. O computador local não faz a resolução de nomes de domínio, exigindo que os pontos de extremidade do emulador de armazenamento sejam endereços locais.The local computer doesn't do domain name resolution, requiring the storage emulator endpoints to be local addresses.

Ao lidar com um recurso em uma conta de armazenamento do Azure, use o esquema a seguir.When you address a resource in an Azure storage account, you use the following scheme. O nome da conta faz parte do nome do host do URI e o recurso em questão faz parte do caminho do 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>

Por exemplo, o seguinte URI é um endereço válido para um blob em uma conta de armazenamento do Azure: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

Como o computador local não faz a resolução de nomes de domínio, o nome da conta faz parte do caminho do URI em vez do nome do host.Because the local computer doesn't do domain name resolution, the account name is part of the URI path instead of the host name. Use o seguinte formato de URI para um recurso no emulador de armazenamento:Use the following URI format for a resource in the storage emulator:

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

Por exemplo, o endereço a seguir pode ser usado para acessar um blob no emulador de armazenamento: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

Os pontos de extremidade de serviço para o emulador de armazenamento são:The service endpoints for the storage emulator are:

  • Serviço Blob: http://127.0.0.1:10000/<account-name>/<resource-path>Blob service: http://127.0.0.1:10000/<account-name>/<resource-path>
  • Serviço Fila: http://127.0.0.1:10001/<account-name>/<resource-path>Queue service: http://127.0.0.1:10001/<account-name>/<resource-path>
  • Serviço Tabela: http://127.0.0.1:10002/<account-name>/<resource-path>Table service: http://127.0.0.1:10002/<account-name>/<resource-path>

Endereçamento da conta secundária com RA-GRSAddressing the account secondary with RA-GRS

A partir da versão 3.1, o emulador de armazenamento oferece suporte a replicação de georredundância com acesso de leitura (RA-GRS).Beginning with version 3.1, the storage emulator supports read-access geo-redundant replication (RA-GRS). Você pode acessar o local secundário acrescentando-secundário ao nome da conta.You can access the secondary location by appending -secondary to the account name. Por exemplo, o endereço a seguir pode ser usado para acessar um blob usando o secundário somente leitura no emulador de armazenamento: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

Observação

Para obter acesso programático ao secundário com o emulador de armazenamento, use a Biblioteca Cliente de Armazenamento para .NET versão 3.2 ou posterior.For programmatic access to the secondary with the storage emulator, use the Storage Client Library for .NET version 3.2 or later. Consulte a Biblioteca de Clientes do Armazenamento do Microsoft Azure para .NET para ver mais detalhes.See the Microsoft Azure Storage Client Library for .NET for details.

Referência da ferramenta de linha de comando do emulador de armazenamentoStorage emulator command-line tool reference

A partir da versão 3.0, uma janela do console é exibida quando você inicia o Emulador de Armazenamento.Starting in version 3.0, a console window is displayed when you start the Storage Emulator. Use a linha de comando na janela do console para iniciar e parar o emulador.Use the command line in the console window to start and stop the emulator. Você também pode consultar o status e fazer outras operações na linha de comando.You can also query for status and do other operations from the command line.

Observação

Se você tiver o emulador de computação do Microsoft Azure instalado, um ícone de bandeja do sistema será exibido ao iniciar o Emulador de Armazenamento.If you have the Microsoft Azure compute emulator installed, a system tray icon appears when you launch the Storage Emulator. Clique com o botão direito do mouse no ícone para revelar um menu, que fornece uma maneira gráfica de iniciar e parar o Emulador de Armazenamento.Right-click on the icon to reveal a menu that provides a graphical way to start and stop the Storage Emulator.

Sintaxe da linha de comandoCommand-line syntax

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

OpçõesOptions

Para exibir a lista de opções, digite /help no prompt de comando.To view the list of options, type /help at the command prompt.

OpçãoOption DescriçãoDescription CommandCommand ArgumentosArguments
IniciarStart Inicia o emulador de armazenamento.Starts up the storage emulator. AzureStorageEmulator.exe start [-inprocess] -Reprocessar: Inicie o emulador no processo atual em vez de criar um novo processo.-Reprocess: Start the emulator in the current process instead of creating a new process.
PararStop Para o emulador de armazenamento.Stops the storage emulator. AzureStorageEmulator.exe stop
StatusStatus Imprime o status do emulador de armazenamento.Prints the status of the storage emulator. AzureStorageEmulator.exe status
LimparClear Limpa os dados em todos os serviços especificados na linha de comando.Clears the data in all services specified on the command line. AzureStorageEmulator.exe clear [blob] [table] [queue] [all] blob: limpa os dados do blob.blob: Clears blob data.
fila: limpa os dados da fila.queue: Clears queue data.
tabela: limpa os dados de tabela.table: Clears table data.
todos: limpa todos os dados em todos os serviços.all: Clears all data in all services.
InitInit Executa a inicialização única para configurar o emulador.Does one-time initialization to set up the emulator. AzureStorageEmulator.exe init [-server serverName] [-sqlinstance instanceName] [-forcecreate|-skipcreate] [-reserveports|-unreserveports] [-inprocess] -server nomedoServidor\nomedaInstância: especifica o servidor que hospeda a instância do SQL.-server serverName\instanceName: Specifies the server hosting the SQL instance.
-sqlinstance instanceName: especifica o nome da instância SQL a ser usada na instância do servidor padrão.-sqlinstance instanceName: Specifies the name of the SQL instance to be used in the default server instance.
-forcecreate: força a criação do Banco de Dados SQL, mesmo se ele já existir.-forcecreate: Forces creation of the SQL database, even if it already exists.
-skipcreate: ignora a criação do Banco de Dados SQL.-skipcreate: Skips creation of the SQL database. Isso tem precedência sobre -forcecreate.This takes precedence over -forcecreate.
-reserveports: tenta reservar as portas HTTP associadas aos serviços.-reserveports: Attempts to reserve the HTTP ports associated with the services.
-unreserveports: tenta remover as reservas de portas HTTP associadas aos serviços.-unreserveports: Attempts to remove reservations for the HTTP ports associated with the services. Isso tem precedência sobre -reserveports.This takes precedence over -reserveports.
-inprocess: executa a inicialização no processo atual em vez de gerar um novo processo.-inprocess: Performs initialization in the current process instead of spawning a new process. O processo atual deverá ser iniciado com permissões elevadas se reservas de porta forem alteradas.The current process must be launched with elevated permissions if changing port reservations.

Diferenças entre o emulador de armazenamento e o armazenamento do AzureDifferences between the storage emulator and Azure Storage

Como o emulador de armazenamento é um ambiente emulado local, há diferenças entre usar o emulador e uma conta de armazenamento do Azure na nuvem:Because the storage emulator is a local emulated environment, there are differences between using the emulator and an Azure storage account in the cloud:

  • O emulador de armazenamento oferece suporte a apenas uma única conta fixa e uma chave de autenticação conhecida.The storage emulator supports only a single fixed account and a well-known authentication key.
  • O emulador de armazenamento não é um serviço de armazenamento escalonável e não dá suporte a um grande número de clientes simultâneos.The storage emulator isn't a scalable storage service and doesn't support a large number of concurrent clients.
  • Conforme descrito em Endereçamento de recursos no emulador de armazenamento, os recursos são endereçados de forma diferente no emulador de armazenamento em comparação com uma conta de armazenamento do Azure.As described in Addressing resources in the storage emulator, resources are addressed differently in the storage emulator versus an Azure storage account. A diferença é porque a resolução de nomes de domínio está disponível na nuvem, mas não no computador local.The difference is because domain name resolution is available in the cloud but not on the local computer.
  • A partir da versão 3.1, a conta do emulador de armazenamento oferece suporte a replicação de georedundância com acesso de leitura (RA-GRS).Beginning with version 3.1, the storage emulator account supports read-access geo-redundant replication (RA-GRS). No emulador, todas as contas têm o RA-GRS habilitado e nunca há qualquer retardo entre as réplicas primária e secundária.In the emulator, all accounts have RA-GRS enabled and there's never any lag between the primary and secondary replicas. As operações Obter Estatísticas do Serviço Blob, Obter Estatísticas do Serviço Fila e Obter Estatísticas do Serviço Tabela são compatíveis com a conta secundária e sempre retornarão o valor do elemento da resposta LastSyncTime , como a hora atual, de acordo com o Banco de Dados SQL subjacente.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.
  • Atualmente, os pontos de extremidade do serviço de arquivo e do protocolo SMB não têm suporte no emulador de armazenamento.The File service and SMB protocol service endpoints aren't currently supported in the storage emulator.
  • Se você usar uma versão dos serviços de armazenamento que não tem suporte no emulador, o emulador retornará um erro VersionNotSupportedByEmulator (código de status HTTP 400-solicitação inválida).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).

Diferenças do armazenamento de blobDifferences for Blob storage

As diferenças a seguir aplicam-se ao armazenamento de blob no emulador:The following differences apply to Blob storage in the emulator:

  • O emulador de armazenamento só dá suporte a tamanhos de blob de até 2 GB.The storage emulator only supports blob sizes up to 2 GB.
  • O comprimento máximo de um nome de blob no emulador de armazenamento é de 256 caracteres, enquanto o comprimento máximo de um nome de blob no Armazenamento do Azure é de 1.024 caracteres.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.
  • A cópia incremental permite que os instantâneos de blobs substituídos sejam copiados, o que retorna uma falha no serviço.Incremental copy allows snapshots from overwritten blobs to be copied, which returns a failure on the service.
  • A comparação de obter intervalos de página não funciona entre instantâneos copiados usando blob de cópia incremental.Get Page Ranges Diff doesn't work between snapshots copied using Incremental Copy Blob.
  • Uma operação Put Blob pode ter sucesso em um blob que existe no emulador de armazenamento com uma concessão ativa, mesmo que a ID da concessão não tenha sido especificada na solicitação.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.
  • As operações de blob de anexo não são compatíveis com o emulador.Append Blob operations are not supported by the emulator. Tentar uma operação em um blob de anexo retornará um erro FeatureNotSupportedByEmulator (código de status HTTP 400 - Solicitação incorreta).Attempting an operation on an append blob returns a FeatureNotSupportedByEmulator error (HTTP status code 400 - Bad Request).

Diferenças do armazenamento de tabelaDifferences for Table storage

As diferenças a seguir aplicam-se ao armazenamento de tabela no emulador:The following differences apply to Table storage in the emulator:

  • As propriedades de data no serviço tabela no emulador de armazenamento dão suporte apenas ao intervalo suportado pelo SQL Server 2005 (eles precisam ser posteriores a 1º de janeiro de 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). Todas as datas anteriores a 1º de janeiro de 1753 são alteradas para esse valor.All dates before January 1, 1753 are changed to this value. A precisão das datas é limitada à precisão do SQL Server 2005, o que significa que as datas são precisas a 1/300 de um segundo.The precision of dates is limited to the precision of SQL Server 2005, meaning that dates are precise to 1/300th of a second.
  • O emulador de armazenamento dá suporte a valores de propriedade de chave de linha e chave de partição de menos de 512 bytes cada.The storage emulator supports partition key and row key property values of less than 512 bytes each. O tamanho total do nome da conta, do nome da tabela e dos nomes de propriedade de chave juntos não pode exceder 900 bytes.The total size of the account name, table name, and key property names together can't exceed 900 bytes.
  • O tamanho total de uma linha em uma tabela no emulador de armazenamento é limitado a menos de 1 MB.The total size of a row in a table in the storage emulator is limited to less than 1 MB.
  • No emulador de armazenamento, as propriedades de tipo de dados Edm.Guid ou Edm.Binary só oferecem suporte aos operadores de comparação Equal (eq) e NotEqual (ne) nas cadeias de filtro de consulta.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.

Diferenças do armazenamento de filaDifferences for Queue storage

Não existem diferenças específicas para o armazenamento de fila no emulador.There are no differences specific to Queue storage in the emulator.

Notas de versão do emulador de armazenamentoStorage emulator release notes

Versão 5,10Version 5.10

  • O emulador de armazenamento não rejeitará a versão 2019-07-07 dos serviços de armazenamento em pontos de extremidade de serviço de BLOB, fila e tabela.The storage emulator won't reject version 2019-07-07 of the storage services on Blob, Queue, and Table service endpoints.

Versão 5,9Version 5.9

  • O emulador de armazenamento não rejeitará a versão 2019-02-02 dos serviços de armazenamento em pontos de extremidade de serviço de BLOB, fila e tabela.The storage emulator won't reject version 2019-02-02 of the storage services on Blob, Queue, and Table service endpoints.

Versão 5,8Version 5.8

  • O emulador de armazenamento não rejeitará a versão 2018-11-09 dos serviços de armazenamento em pontos de extremidade de serviço de BLOB, fila e tabela.The storage emulator won't reject version 2018-11-09 of the storage services on Blob, Queue, and Table service endpoints.

Versão 5.7Version 5.7

  • Corrigido um erro que causaria uma falha se o log fosse ativado.Fixed a bug that would cause a crash if logging was enabled.

Versão 5.6Version 5.6

  • O emulador de armazenamento agora suporta a versão 2018-03-28 dos serviços de armazenamento nos pontos de extremidade de serviço Blob, Fila e Tabela.The storage emulator now supports version 2018-03-28 of the storage services on Blob, Queue, and Table service endpoints.

Versão 5.5Version 5.5

  • O emulador de armazenamento agora dá suporte à versão 2017-11-09 dos serviços de armazenamento dos pontos de extremidade dos serviços de Blob, Fila e Tabela.The storage emulator now supports version 2017-11-09 of the storage services on Blob, Queue, and Table service endpoints.
  • Suporte foi adicionado para a propriedade Criada do blob, que retorna o tempo de criação do blob.Support has been added for the blob Created property, which returns the blob's creation time.

Versão 5.4Version 5.4

  • Para melhorar a estabilidade da instalação, o emulador não tenta mais reservar portas no momento da instalação.To improve installation stability, the emulator no longer attempts to reserve ports at install time. Se você quiser reservas de porta, use a opção -reserveports do comando init para especificá-las.If you want port reservations, use the -reserveports option of the init command to specify them.

Versão 5.3Version 5.3

  • O emulador de armazenamento agora dá suporte à versão 2017-07-29 dos serviços de armazenamento dos pontos de extremidade dos serviços de Blob, Fila e Tabela.The storage emulator now supports version 2017-07-29 of the storage services on Blob, Queue, and Table service endpoints.

Versão 5.2Version 5.2

  • O emulador de armazenamento agora dá suporte à versão 2017-04-17 dos serviços de armazenamento nos pontos de extremidade dos serviços de Blob, Fila e Tabela.The storage emulator now supports version 2017-04-17 of the storage services on Blob, Queue, and Table service endpoints.
  • Corrigido um bug em que os valores de propriedade da tabela não estavam sendo codificados corretamente.Fixed a bug where table property values weren't being properly encoded.

Versão 5.1Version 5.1

  • Corrigido um bug em que o emulador de armazenamento estava retornando o cabeçalho DataServiceVersion em algumas respostas em que o serviço não estava.Fixed a bug where the storage emulator was returning the DataServiceVersion header in some responses where the service was not.

Versão 5.0Version 5.0

  • O instalador do emulador de armazenamento não verifica mais em busca de instalações existentes do MSSQL e do .NET Framework.The storage emulator installer no longer checks for existing MSSQL and .NET Framework installs.
  • O instalador do emulador de armazenamento não cria mais o banco de dados como parte da instalação.The storage emulator installer no longer creates the database as part of install. O banco de dados ainda será criado como parte da inicialização se necessário.Database will still be created if needed as part of startup.
  • A criação de banco de dados não requer elevação.Database creation no longer requires elevation.
  • Reservas de porta não são mais necessários para a inicialização.Port reservations are no longer needed for startup.
  • Adiciona as seguintes opções para init: -reserveports (exige a elevação), -unreserveports (exige a elevação), -skipcreate.Adds the following options to init: -reserveports (requires elevation), -unreserveports (requires elevation), -skipcreate.
  • A opção de interface do usuário do emulador de armazenamento no ícone da bandeja do sistema agora inicia a interface de linha de comando.The Storage Emulator UI option on the system tray icon now launches the command-line interface. A GUI antiga não está mais disponível.The old GUI is no longer available.
  • Algumas DLLs foram removidas ou renomeadas.Some DLLs have been removed or renamed.

Versão 4.6Version 4.6

  • O emulador de armazenamento agora dá suporte à versão 2016-05-31 dos serviços de armazenamento nos pontos de extremidade de serviço Blob, Fila e Tabela.The storage emulator now supports version 2016-05-31 of the storage services on Blob, Queue, and Table service endpoints.

Versão 4.5Version 4.5

  • Correção de um bug que causou a falha na instalação e inicialização quando o banco de dados de backup é renomeado.Fixed a bug that caused installation and initialization to fail when the backing database is renamed.

Versão 4.4Version 4.4

  • O emulador de armazenamento agora dá suporte à versão 2015-12-11 dos serviços de armazenamento dos pontos de extremidade dos serviços de Blob, Fila e Tabela.The storage emulator now supports version 2015-12-11 of the storage services on Blob, Queue, and Table service endpoints.
  • A coleta de lixo do emulador de armazenamento de dados de blob agora é mais eficiente ao lidar com um grande número de blobs.The storage emulator's garbage collection of blob data is now more efficient when dealing with large numbers of blobs.
  • Foi corrigido um bug que fazia o contêiner ACL XML ser validado de forma ligeiramente diferente de como o serviço de armazenamento o faz.Fixed a bug that caused container ACL XML to be validated slightly differently from how the storage service does it.
  • Foi corrigido um bug que às vezes fazia com que valores máx. e mín. de DateTime fossem relatados no fuso horário incorreto.Fixed a bug that sometimes caused max and min DateTime values to be reported in the incorrect time zone.

Versão 4.3Version 4.3

  • O emulador de armazenamento agora dá suporte à versão 2015-07-08 dos serviços de armazenamento dos pontos de extremidade dos serviços de Blob, Fila e Tabela.The storage emulator now supports version 2015-07-08 of the storage services on Blob, Queue, and Table service endpoints.

Versão 4.2Version 4.2

  • O emulador de armazenamento agora dá suporte à versão 2015-04-05 dos serviços de armazenamento dos pontos de extremidade dos serviços de Blob, Fila e Tabela.The storage emulator now supports version 2015-04-05 of the storage services on Blob, Queue, and Table service endpoints.

Versão 4.1Version 4.1

  • O emulador de armazenamento agora dá suporte à versão 2015-02-21 dos serviços de armazenamento em pontos de extremidade de serviço de BLOB, fila e tabela.The storage emulator now supports version 2015-02-21 of the storage services on Blob, Queue, and Table service endpoints. Ele não dá suporte aos novos recursos de blob de acréscimo.It doesn't support the new Append Blob features.
  • O emulador agora retorna uma mensagem de erro significativa para versões sem suporte dos serviços de armazenamento.The emulator now returns a meaningful error message for unsupported versions of storage services. É recomendável usar a versão mais recente do emulador.We recommend using the latest version of the emulator. Se você receber um erro VersionNotSupportedByEmulator (código de status HTTP 400-solicitação inadequada), baixe a versão mais recente do emulador.If you get a VersionNotSupportedByEmulator error (HTTP status code 400 - Bad Request), download the latest version of the emulator.
  • Correção do bug em que uma condição de corrida fazia com que dados de entidade de tabela ficassem incorretos durante operações de mesclagem simultâneas.Fixed a bug wherein a race condition caused table entity data to be incorrect during concurrent merge operations.

Versão 4.0Version 4.0

  • O emulador de armazenamento executável foi renomeado para AzureStorageEmulator.exe.The storage emulator executable has been renamed to AzureStorageEmulator.exe.

Versão 3.2Version 3.2

  • O emulador de armazenamento agora dá suporte à versão 2014-02-14 dos serviços de armazenamento dos pontos de extremidade dos serviços de Blob, Fila e Tabela.The storage emulator now supports version 2014-02-14 of the storage services on Blob, Queue, and Table service endpoints. Atualmente, não há suporte para pontos de extremidade de serviço de arquivo no emulador de armazenamento.File service endpoints aren't currently supported in the storage emulator. Consulte Controle de versão dos serviços de armazenamento do Azure para obter detalhes sobre a versão 2014-02-14.See Versioning for the Azure Storage Services for details about version 2014-02-14.

Versão 3.1Version 3.1

  • Armazenamento com redundância geográfica com acesso de leitura (RA-GRS) agora tem suporte no emulador de armazenamento.Read-access geo-redundant storage (RA-GRS) is now supported in the storage emulator. As APIs Get Blob Service Stats, Get Queue Service Stats e Get Table Service Stats têm suporte para a conta secundária e sempre retornarão o valor do elemento de resposta LastSyncTime como a hora atual de acordo com o banco de dados SQL subjacente.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. Para obter acesso programático ao secundário com o emulador de armazenamento, use a Biblioteca Cliente de Armazenamento para .NET versão 3.2 ou posterior.For programmatic access to the secondary with the storage emulator, use the Storage Client Library for .NET version 3.2 or later. Consulte a Referência da Biblioteca de Clientes do Armazenamento do Microsoft Azure para .NET para ver mais detalhes.See the Microsoft Azure Storage Client Library for .NET Reference for details.

Versão 3.0Version 3.0

  • O emulador de armazenamento do Azure não é mais fornecido no mesmo pacote que o emulador de computação.The Azure storage emulator is no longer shipped in the same package as the compute emulator.
  • A interface gráfica do usuário do emulador de armazenamento foi preterida.The storage emulator graphical user interface is deprecated. Ele foi substituído por uma interface de linha de comando programável por scripts.It has been replaced by a scriptable command-line interface. Para obter detalhes sobre a interface de linha de comando consulte Referência da ferramenta de linha de comando do emulador de armazenamento.For details on the command-line interface, see Storage Emulator Command-Line Tool Reference. A interface gráfica continuará presente na versão 3.0, mas só poderá ser acessada quando o emulador de computação for instalado, clicando com o botão direito no ícone de bandeja do sistema e selecionando Mostrar IU do Emulador de Armazenamento.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.
  • A versão 2013-08-15 dos serviços de armazenamento do Azure agora tem total suporte.Version 2013-08-15 of the Azure storage services is now fully supported. (Anteriormente nesta versão só tinha suporte do emulador de armazenamento versão 2.2.1 Preview.)(Previously this version was only supported by Storage Emulator version 2.2.1 Preview.)

Próximos passosNext steps