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 é executado atualmente somente 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.

Nota

Não há garantia de que os dados criados em uma versão do emulador de armazenamento estejam acessíveis ao usar uma versão diferente.Data created in one version of the storage emulator is not guaranteed to be accessible when using a different version. Se você precisar manter seus dados por um longo prazo, recomendamos que armazene esses dados em uma conta de armazenamento do Azure, em vez de 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 OData usadas pelo emulador de armazenamento por outras versões e isso 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 do serviço de armazenamento pode ser usada para enviar solicitações ao emulador.However, any version of OData supported by the storage service may be used to send requests to the emulator.

Como funciona o emulador de armazenamentoHow 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 de 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 a 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 na 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 obter mais informações 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 exibidos.Select the emulator from the list of displayed applications.

Quando o emulador de armazenamento for iniciado, uma janela de prompt de comando será exibida.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 obter mais informações, consulte 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.

Nota

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, 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á a ser executado.When you close the storage emulator Command Prompt window, the storage emulator will continue to run. Para abrir a janela do console do emulador de armazenamento novamente, siga as etapas anteriores como se fosse iniciar 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 será 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 para 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

Você pode usar o Gerenciador de armazenamento do Microsoft Azure para trabalhar com recursos de emulador de armazenamento local.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 um banco de dados SQL diferenteInitialize 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 do 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 do console, digite o seguinte comando, em que <SQLServerInstance> é o nome da instância de 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 de SQL Server.To use LocalDB, specify (localdb)\MSSQLLocalDb as the SQL Server instance.

    AzureStorageEmulator.exe init /server <SQLServerInstance>

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

    AzureStorageEmulator.exe init /server .

    Ou, você pode usar o seguinte comando, que reinicializa o banco de dados para a 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 obter mais informações 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

Você pode usar o SSMS ( Microsoft SQL Server Management Studio ) para gerenciar suas instâncias de 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. No diálogo SMSS conectar ao servidor , especifique (localdb)\MSSQLLocalDb no campo nome do servidor: para se conectar à instância de 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

Depois de instalar e iniciar o emulador de armazenamento, você pode testar seu código em relação a ele.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 com 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 suporta uma única conta fixa e uma chave de autenticação bem conhecidos para autenticação de chave partilhada.The storage emulator supports a single fixed account and a well-known authentication key for Shared Key authentication. Esta conta e chave são as credenciais de chave partilhada apenas permitidas para utilização com o emulador de armazenamento.This account and key are the only Shared Key credentials permitted for use with the storage emulator. São:They are:

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

Nota

A chave de autenticação suportada pelo emulador de armazenamento destina-se apenas 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. Ele não serve qualquer finalidade de segurança.It does not serve any security purpose. Não é possível utilizar a 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. Não deve utilizar a conta de desenvolvimento com dados de produção.You should not use the development account with production data.

O emulador de armazenamento suporta a ligação através de HTTP apenas.The storage emulator supports connection via HTTP only. No entanto, o HTTPS é o protocolo recomendado para aceder a recursos numa conta de armazenamento do Azure de produção.However, HTTPS is the recommended protocol for accessing resources in a production Azure storage account.

Ligar à conta do emulador usando um atalhoConnect to the emulator account using a shortcut

A maneira mais fácil para ligar para o emulador de armazenamento da sua aplicação consiste em configurar uma cadeia de ligação no ficheiro de configuração de seu aplicativo que referencia o 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. Eis um exemplo de uma cadeia de ligação para o emulador de armazenamento num App. config ficheiro: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>

Ligar à conta do emulador com o nome de conta bem conhecidos e a chaveConnect to the emulator account using the well-known account name and key

Para criar uma cadeia de ligação que referencia o nome da conta do emulador e a chave, tem de especificar os pontos de extremidade para cada um dos serviços que deseja usar do emulador na cadeia de ligação.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 ligação fará referência os pontos de extremidade do emulador, que são diferentes 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 cadeia de ligação ficará assim: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;

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

Especifique um proxy de HTTPSpecify an HTTP proxy

Também pode especificar um proxy de HTTP para utilizar quando está a testar o seu serviço contra o 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 estiver a depurar operações de acordo com os 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 o DevelopmentStorageProxyUri a opção de cadeia de ligação e defina 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 ligação que aponta para o emulador de armazenamento e configura um proxy de 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 de armazenamento do Azure.For more information on connection strings, see Configure Azure Storage connection strings.

Autorizar com uma assinatura de acesso compartilhadoAuthorize with a shared access signature

Nota

Este artigo foi atualizado para utilizar o novo módulo AZ do Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Pode continuar a utilizar o módulo AzureRM, que continuará a receber correções de erros 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 obter mais informações sobre o novo módulo Az e a compatibilidade do AzureRM, veja 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, veja 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, dão suporte apenas à 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 Azure PowerShell.You can also generate a SAS token by using Azure PowerShell. O exemplo a seguir gera um token SAS com permissões completas para um contêiner de blob:The following example generates a SAS token with full permissions to a blob container:

  1. Instale Azure PowerShell se você ainda não (usando a versão mais recente dos cmdlets Azure PowerShell é recomendado).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 Azure PowerShell e execute os comandos a seguir, 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 de assinatura de acesso compartilhado resultante para o novo contêiner deve ser semelhante a: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, lista) a BLOBs no 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çando 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 endereçar 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 de host do URI e o recurso que está sendo endereçado 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 URI a seguir é 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 do 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çando a conta secundária com RA-GRSAddressing the account secondary with RA-GRS

A partir da versão 3,1, o emulador de armazenamento dá suporte à replicação com redundância geográfica 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

Nota

Para acesso programático ao secundário com o emulador de armazenamento, use a biblioteca de 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 cliente do armazenamento do Microsoft Azure para .net para obter 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 de 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.

Nota

Se você tiver o emulador de computação Microsoft Azure instalado, um ícone de bandeja do sistema aparecerá quando você 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 comandosCommand-line syntax

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

OpçõesOptions

Para ver a lista de opções, escreva /help na linha de comandos.To view the list of options, type /help at the command prompt.

OpçãoOption DescriçãoDescription ComandoCommand ArgumentosArguments
ComeçarStart 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.
DeixarStop Interrompe o emulador de armazenamento.Stops the storage emulator. AzureStorageEmulator.exe stop
EstadoStatus Imprime o status do emulador de armazenamento.Prints the status of the storage emulator. AzureStorageEmulator.exe status
FormataçãoClear 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 da tabela.table: Clears table data.
todos: limpa todos os dados em todos os serviços.all: Clears all data in all services.
IniciarInit 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] -nomedoservidor \ NomedaInstância do servidor: 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 do 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 que ele já exista.-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 reservas para as 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 deve ser iniciado com permissões elevadas se estiver alterando as reservas de porta.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 dá 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çando recursos no emulador de armazenamento, os recursos são tratados 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 dá suporte à replicação com redundância geográfica 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 têm suporte na 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 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 para o armazenamento de BLOBsDifferences for Blob storage

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

  • O emulador de armazenamento dá suporte apenas 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 1024 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 acréscimo não são suportadas pelo emulador.Append Blob operations are not supported by the emulator. A tentativa de uma operação em um blob de acréscimo retorna um erro FeatureNotSupportedByEmulator (código de status HTTP 400-solicitação inadequada).Attempting an operation on an append blob returns a FeatureNotSupportedByEmulator error (HTTP status code 400 - Bad Request).

Diferenças para o armazenamento de tabelasDifferences for Table storage

As seguintes diferenças se aplicam 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 antes de 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 de SQL Server 2005, o que significa que as datas são precisas para 1/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 oferece suporte a valores de propriedade de chave de partição e chaves de linha de menos de 512 bytes.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 do tipo de dados Edm.Guid ou Edm.Binary dão suporte apenas aos operadores de comparação Equal (eq) e NotEqual (ne) em cadeias de caracteres 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 de armazenamento de filasDifferences for Queue storage

Não há 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

  • Correção de um bug que causaria uma falha se o registro em log estivesse habilitado.Fixed a bug that would cause a crash if logging was enabled.

Versão 5,6Version 5.6

  • O emulador de armazenamento agora dá suporte à versão 2018-03-28 dos serviços de armazenamento em pontos de extremidade de serviço de 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 em pontos de extremidade de serviço 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.
  • Foi adicionado suporte para a propriedade blob criado , 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 em pontos de extremidade de serviço 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 em pontos de extremidade de serviço 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 era.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 se há instalações do MSSQL e do .NET Framework existentes.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 se necessário como parte da inicialização.Database will still be created if needed as part of startup.
  • A criação do banco de dados não requer mais elevação.Database creation no longer requires elevation.
  • As reservas de porta não são mais necessárias para a inicialização.Port reservations are no longer needed for startup.
  • Adiciona as seguintes opções a init: -reserveports (requer elevação), -unreserveports (requer 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 em pontos de extremidade de serviço de 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 em pontos de extremidade de serviço 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 grandes números de BLOBs.The storage emulator's garbage collection of blob data is now more efficient when dealing with large numbers of blobs.
  • Correção de um bug que fazia com que o XML da ACL do contêiner fosse validado de forma ligeiramente diferente de como o serviço de armazenamento faz isso.Fixed a bug that caused container ACL XML to be validated slightly differently from how the storage service does it.
  • Correção de um bug que às vezes fazia com que os valores de DateTime Max e min sejam 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 em pontos de extremidade de serviço 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 em pontos de extremidade de serviço 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.
  • Corrigido um bug em que uma condição de corrida fez com que os dados da entidade de tabela esdelessem 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 arquivo executável do emulador de armazenamento 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 em pontos de extremidade de serviço 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 para os 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

  • O 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 acesso programático ao secundário com o emulador de armazenamento, use a biblioteca de 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 cliente do Armazenamento do Microsoft Azure para .NET para obter 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 do mouse no ícone da bandeja do sistema e selecionando Mostrar interface do usuário 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 suporte total.Version 2013-08-15 of the Azure storage services is now fully supported. (Anteriormente, esta versão era suportada apenas pelo emulador de armazenamento versão 2.2.1 Preview.)(Previously this version was only supported by Storage Emulator version 2.2.1 Preview.)

Passos seguintesNext steps