Utilisation de l’émulateur de stockage Azure pour le développement et le testUse the Azure storage emulator for development and testing

L’émulateur de stockage Microsoft Azure est un outil qui émule les services Blob, File d’attente et Table d’Azure à des fins de développement.The Microsoft Azure storage emulator is a tool that emulates the Azure Blob, Queue, and Table services for local development purposes. Vous pouvez tester localement votre application sur les services de stockage sans souscrire d’abonnement Azure ni engendrer de frais.You can test your application against the storage services locally without creating an Azure subscription or incurring any costs. Quand vous êtes satisfait du fonctionnement de votre application dans l’émulateur, commencez à utiliser un compte de stockage Azure dans le cloud.When you're satisfied with how your application is working in the emulator, switch to using an Azure storage account in the cloud.

Obtenir l’émulateur de stockageGet the storage emulator

L’émulateur de stockage fait partie du Kit de développement logiciel (SDK) Microsoft Azure.The storage emulator is available as part of the Microsoft Azure SDK. Vous pouvez également installer l’émulateur de stockage en tant que programme d’installation autonome (téléchargement direct).You can also install the storage emulator by using the standalone installer (direct download). Pour installer l’émulateur de stockage, vous devez disposer de privilèges administratifs sur votre ordinateur.To install the storage emulator, you must have administrative privileges on your computer.

Actuellement, l’émulateur de stockage s’exécute uniquement sous Windows.The storage emulator currently runs only on Windows. Si vous avez besoin d’un émulateur de stockage pour Linux, il est possible d’utiliser l’émulateur de stockage open source Azurite, géré par la communauté.If you need a storage emulator for Linux, one option is the community maintained, open-source storage emulator Azurite.

Notes

Il n’est pas garanti que vous puissiez accéder aux données créées dans une version de l’émulateur de stockage à partir d’une autre version.Data created in one version of the storage emulator is not guaranteed to be accessible when using a different version. Si vous devez rendre vos données persistantes à long terme, nous vous recommandons de stocker ces données dans un compte de stockage Azure plutôt que dans l’émulateur de stockage.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.

L’émulateur de stockage dépend des versions spécifiques des bibliothèques OData.The storage emulator depends on specific versions of the OData libraries. Le remplacement des DLL OData utilisées par l’émulateur de stockage par des versions ultérieures n’est pas pris en charge et peut provoquer un comportement inattendu.Replacing the OData DLLs used by the storage emulator with other versions is unsupported, and may cause unexpected behavior. Toutefois, vous pouvez utiliser n’importe quelle version OData prise en charge par le service de stockage pour envoyer des demandes à l’émulateur.However, any version of OData supported by the storage service may be used to send requests to the emulator.

Fonctionnement de l’émulateur de stockageHow the storage emulator works

L’émulateur de stockage utilise une instance locale de Microsoft SQL Server 2012 Express LocalDB pour émuler les services de stockage Azure.The storage emulator uses a local Microsoft SQL Server 2012 Express LocalDB instance to emulate Azure storage services. Vous pouvez configurer l’émulateur de stockage de sorte qu’il accède à une instance locale de SQL Server plutôt qu’à l’instance LocalDB.You can choose to configure the storage emulator to access a local instance of SQL Server instead of the LocalDB instance. Pour en savoir plus, consultez la section Démarrer et initialiser l’émulateur de stockage plus loin dans cet article.See the Start and initialize the storage emulator section later in this article to learn more.

L'émulateur de stockage se connecte à SQL Server ou LocalDB par l'intermédiaire de l'authentification Windows.The storage emulator connects to SQL Server or LocalDB using Windows authentication.

Il existe quelques différences de fonctionnalités entre l’émulateur de stockage et les services de stockage Azure.Some differences in functionality exist between the storage emulator and Azure storage services. Pour plus d’informations sur ces différences, consultez la section Différences entre l’émulateur de stockage et le Stockage Azure plus loin dans cet article.For more information about these differences, see the Differences between the storage emulator and Azure Storage section later in this article.

Démarrer et initialiser l’émulateur de stockageStart and initialize the storage emulator

Pour démarrer l’émulateur de stockage Azure :To start the Azure storage emulator:

  1. Sélectionnez le bouton Démarrer ou appuyez sur la touche Windows.Select the Start button or press the Windows key.
  2. Commencez à taper Azure Storage Emulator.Begin typing Azure Storage Emulator.
  3. Sélectionnez l’émulateur dans la liste des applications affichées.Select the emulator from the list of displayed applications.

Au démarrage de l’émulateur de stockage, une fenêtre d’invite de commande apparaît.When the storage emulator starts, a Command Prompt window will appear. Vous pouvez utiliser cette fenêtre de console pour démarrer et arrêter l’émulateur de stockage.You can use this console window to start and stop the storage emulator. Vous pouvez également effacer des données, initialiser l’émulateur et afficher son état à partir de l’invite de commandes.You can also clear data, get status, and initialize the emulator from the command prompt. Pour plus d’informations, consultez la section Référence de l’outil en ligne de commande de l’émulateur de stockage plus loin dans cet article.For more information, see the Storage emulator command-line tool reference section later in this article.

Notes

L’émulateur de stockage Azure peut ne pas démarrer correctement si un autre émulateur de stockage comme Azurite s’exécute sur le système.The Azure storage emulator may not start correctly if another storage emulator, such as Azurite, is running on the system.

Lorsque l’émulateur est en cours d’exécution, une icône est affichée dans la zone de notification de la barre des tâches Windows.When the emulator is running, you'll see an icon in the Windows taskbar notification area.

Lorsque vous fermez la fenêtre d’invite de commande de l’émulateur de stockage, celui-ci continuera à s’exécuter.When you close the storage emulator Command Prompt window, the storage emulator will continue to run. Pour faire réapparaître la fenêtre de console de l’émulateur de stockage, suivez les étapes ci-dessus comme si vous démarriez l’émulateur de stockage.To bring up the Storage Emulator console window again, follow the preceding steps as if starting the storage emulator.

La première fois que vous exécutez l'émulateur de stockage, l'environnement de stockage local est initialisé pour vous.The first time you run the storage emulator, the local storage environment is initialized for you. Le processus d'initialisation crée une base de données dans LocalDB et réserve des ports HTTP pour chaque service de stockage local.The initialization process creates a database in LocalDB and reserves HTTP ports for each local storage service.

L’émulateur de stockage est installé par défaut dans 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.

Conseil

Vous pouvez utiliser l’Explorateur Stockage Microsoft Azure pour travailler avec les ressources d’émulateur de stockage local.You can use the Microsoft Azure Storage Explorer to work with local storage emulator resources. Recherchez « (Émulateur - Ports par défaut) » sous « Locaux et joints » dans l’arborescence de ressources de l’Explorateur de stockage après avoir installé et démarré l’émulateur de stockage.Look for "(Emulator - Default Ports) (Key)" under "Local & Attached" in the Storage Explorer resources tree after you've installed and started the storage emulator.

Initialiser l’émulateur de stockage de manière à utiliser une autre base de données SQLInitialize the storage emulator to use a different SQL database

Vous pouvez utiliser l’outil en ligne de commande de l’émulateur de stockage pour initialiser l’émulateur de stockage afin qu’il pointe vers une instance de base de données SQL autre que l’instance LocalDB par défaut :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. Ouvrez la fenêtre de console de l’émulateur de stockage, comme décrit dans la section Démarrer et initialiser l’émulateur de stockage.Open the Storage Emulator console window as described in the Start and initialize the storage emulator section.

  2. Dans la fenêtre de console, tapez la commande suivante, où <SQLServerInstance> est le nom de l’instance SQL Server.In the console window, type the following command, where <SQLServerInstance> is the name of the SQL Server instance. Pour utiliser LocalDB, spécifiez (localdb)\MSSQLLocalDb comme instance SQL Server.To use LocalDB, specify (localdb)\MSSQLLocalDb as the SQL Server instance.

    AzureStorageEmulator.exe init /server <SQLServerInstance>

    Vous pouvez également exécuter la commande suivante, qui indique à l'émulateur d'utiliser l'instance SQL Server par défaut :You can also use the following command, which directs the emulator to use the default SQL Server instance:

    AzureStorageEmulator.exe init /server .

    En guise d’alternative, vous pouvez exécuter la commande suivante, qui réinitialise la base de données en rétablissant l’instance LocalDB par défaut :Or, you can use the following command, which reinitializes the database to the default LocalDB instance:

    AzureStorageEmulator.exe init /forceCreate

Pour plus d’informations sur ces commandes, consultez la section Référence de l’outil en ligne de commande de l’émulateur de stockage.For more information about these commands, see Storage emulator command-line tool reference.

Conseil

Vous pouvez utiliser Microsoft SQL Server Management Studio (SSMS) pour gérer vos instances SQL Server, y compris l’installation de LocalDB.You can use the Microsoft SQL Server Management Studio (SSMS) to manage your SQL Server instances, including the LocalDB installation. Dans la boîte de dialogue Se connecter au serveur de SMSS, spécifiez (localdb)\MSSQLLocalDb dans le champ Nom du serveur : pour vous connecter à l’instance LocalDB.In the SMSS Connect to Server dialog, specify (localdb)\MSSQLLocalDb in the Server name: field to connect to the LocalDB instance.

Authentification des demandes auprès de l’émulateur de stockageAuthenticating requests against the storage emulator

Une fois l’émulateur de stockage installé et démarré, vous pouvez tester votre code sur celui-ci.Once you've installed and started the storage emulator, you can test your code against it. Chaque demande que vous effectuez auprès de l’émulateur de stockage doit être autorisée, sauf s’il s’agit d’une demande anonyme.Every request you make against the storage emulator must be authorized, unless it's an anonymous request. Vous pouvez autoriser les demandes auprès de l’émulateur de stockage à l’aide de l’authentification par clé partagée ou d’une signature d’accès partagé (SAP).You can authorize requests against the storage emulator using Shared Key authentication or with a shared access signature (SAS).

Autorisation à l’aide d’informations d’identification de clé partagéeAuthorize with Shared Key credentials

L’émulateur de stockage prend en charge uniquement un compte fixe et une clé d’authentification connue pour l’authentification par clé partagée.The storage emulator supports a single fixed account and a well-known authentication key for Shared Key authentication. Ce compte et cette clé sont les seules informations d’identification par clé partagée autorisées pour une utilisation avec l’émulateur de stockage.This account and key are the only Shared Key credentials permitted for use with the storage emulator. Il s'agit de :They are:

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

Notes

La clé d'authentification prise en charge par l'émulateur de stockage est destinée uniquement au test de la fonctionnalité de votre code d'authentification du client.The authentication key supported by the storage emulator is intended only for testing the functionality of your client authentication code. Elle n'offre aucune fonction de sécurité.It does not serve any security purpose. Vous ne pouvez pas utiliser votre compte et votre clé de stockage de production avec l'émulateur de stockage.You cannot use your production storage account and key with the storage emulator. Vous ne devez pas utiliser le compte de développement avec des données de production.You should not use the development account with production data.

L’émulateur de stockage prend uniquement en charge la connexion via le protocole HTTP.The storage emulator supports connection via HTTP only. Toutefois, HTTPS est le protocole recommandé pour l’accès aux ressources dans un compte de Stockage Azure de production.However, HTTPS is the recommended protocol for accessing resources in a production Azure storage account.

Se connecter au compte de l’émulateur à l’aide d’un raccourciConnect to the emulator account using a shortcut

Le moyen le plus simple de vous connecter à l’émulateur de stockage à partir de votre application est de configurer une chaîne de connexion dans le fichier de configuration de votre application qui référence le raccourci 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. Voici un exemple de chaîne de connexion à l’émulateur de stockage dans un fichier 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>

Se connecter au compte de l’émulateur à l’aide d’un nom de compte connu et d’une cléConnect to the emulator account using the well-known account name and key

Pour créer une chaîne de connexion qui référence le nom et la clé du compte de l’émulateur, vous devez définir les points de terminaison associés aux services que vous souhaitez utiliser à partir de l’émulateur dans la chaîne de connexion.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. Cela est nécessaire pour que la chaîne de connexion puisse référencer les points de terminaison de l’émulateur, qui sont différents de ceux associés à un compte de stockage de production.This is necessary so that the connection string will reference the emulator endpoints, which are different than those for a production storage account. Par exemple, la valeur de votre chaîne de connexion ressemblera à ceci :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;

Cette valeur est identique au raccourci présenté plus haut, UseDevelopmentStorage=true.This value is identical to the shortcut shown above, UseDevelopmentStorage=true.

Spécifier un proxy HTTPSpecify an HTTP proxy

Vous pouvez aussi spécifier un proxy HTTP à utiliser lorsque vous testez votre service sur l’émulateur de stockage.You can also specify an HTTP proxy to use when you're testing your service against the storage emulator. Cela peut être utile pour observer les demandes et les réponses HTTP pendant que vous déboguez des opérations sur les services de stockage.This can be useful for observing HTTP requests and responses while you're debugging operations against the storage services. Pour spécifier un proxy, ajoutez l’option DevelopmentStorageProxyUri à la chaîne de connexion, puis définissez sa valeur sur l’URI du proxy.To specify a proxy, add the DevelopmentStorageProxyUri option to the connection string, and set its value to the proxy URI. Voici par exemple une chaîne de connexion qui pointe vers l’émulateur de stockage et configure un 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

Pour plus d’informations sur les chaînes de connexion, consultez Configuration des chaînes de connexion Stockage Azure.For more information on connection strings, see Configure Azure Storage connection strings.

Autorisation à l’aide d’une signature d’accès partagéAuthorize with a shared access signature

Notes

Cet article a été mis à jour pour tenir compte de l’utilisation du nouveau module Az d’Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Vous pouvez toujours utiliser le module AzureRM, qui continue à recevoir des correctifs de bogues jusqu’à au moins décembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Pour en savoir plus sur le nouveau module Az et la compatibilité avec AzureRM, consultez Présentation du nouveau module Az d’Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Pour des instructions d’installation du module Az, consultez Installer Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Certaines bibliothèques clientes de stockage Azure, telles que la bibliothèque Xamarin, prennent uniquement en charge l’authentification par jeton de signature d’accès partagé (SAP).Some Azure storage client libraries, such as the Xamarin library, only support authentication with a shared access signature (SAS) token. Vous pouvez créer le jeton SAS à l’aide de l’Explorateur Stockage ou d’une autre application prenant en charge l’authentification avec clé partagée.You can create the SAS token using Storage Explorer or another application that supports Shared Key authentication.

Vous pouvez également générer un jeton SAP à l’aide d’Azure PowerShell.You can also generate a SAS token by using Azure PowerShell. L’exemple suivant génère un jeton SAP avec des autorisations complètes sur un conteneur de blobs :The following example generates a SAS token with full permissions to a blob container:

  1. Installez Azure PowerShell si vous ne l’avez pas encore (à l’aide de la version la plus récente de cmdlets d’Azure PowerShell).Install Azure PowerShell if you haven't already (using the latest version of the Azure PowerShell cmdlets is recommended). Pour connaître la procédure d’installation, consultez l’article Install and configure Azure PowerShell (Installation et configuration d’Azure PowerShell).For installation instructions, see Install and configure Azure PowerShell.
  2. Ouvrez Azure PowerShell et exécutez les commandes suivantes, en remplaçant CONTAINER_NAME par un nom de votre choix :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

L’URI de la signature d’accès partagé obtenue pour le nouveau conteneur doit être semblable à ce qui suit :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

La signature d’accès partagé créée avec cet exemple est valide une journée.The shared access signature created with this example is valid for one day. La signature accorde un accès complet (lecture, écriture, suppression et liste) aux blobs du conteneur.The signature grants full access (read, write, delete, list) to blobs within the container.

Pour plus d’informations sur les signatures d’accès partagé, consultez Accorder un accès limité aux ressources du Stockage Azure à l’aide des signatures d’accès partagé (SAP).For more information on shared access signatures, see Grant limited access to Azure Storage resources using shared access signatures (SAS).

Adressage des ressources dans l’émulateur de stockageAddressing resources in the storage emulator

Les points de terminaison de service de l’émulateur de stockage sont différents de ceux d’un compte de stockage Azure.The service endpoints for the storage emulator are different from the endpoints for an Azure storage account. Dans la mesure où l’ordinateur local n’effectue pas de résolution de noms de domaine, les points de terminaison de l’émulateur de stockage doivent être des adresses locales.The local computer doesn't do domain name resolution, requiring the storage emulator endpoints to be local addresses.

Lorsque vous adressez une ressource dans un compte de stockage Azure, vous utilisez le schéma suivant.When you address a resource in an Azure storage account, you use the following scheme. Le nom du compte fait partie du nom d’hôte de l’URI et la ressource étant adressée fait partie du chemin d’accès de l’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>

Par exemple, l’URI suivante est une adresse valide pour un objet blob dans un compte de stockage 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

Dans la mesure où l’ordinateur local n’effectue pas de résolution de noms de domaine, le nom du compte fait partie du chemin de l’URI au lieu du nom d’hôte.Because the local computer doesn't do domain name resolution, the account name is part of the URI path instead of the host name. Utilisez le format d’URI suivant pour une ressource dans l’émulateur de stockage :Use the following URI format for a resource in the storage emulator:

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

Par exemple, l'adresse suivante peut être utilisée pour accéder à un objet blob dans l'émulateur de stockage :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

Les points de terminaison de service de l’émulateur de stockage sont :The service endpoints for the storage emulator are:

  • Service BLOB : http://127.0.0.1:10000/<account-name>/<resource-path>Blob service: http://127.0.0.1:10000/<account-name>/<resource-path>
  • Service de File d’attente : http://127.0.0.1:10001/<account-name>/<resource-path>Queue service: http://127.0.0.1:10001/<account-name>/<resource-path>
  • Service de Table : http://127.0.0.1:10002/<account-name>/<resource-path>Table service: http://127.0.0.1:10002/<account-name>/<resource-path>

Adressage du compte secondaire avec RA-GRSAddressing the account secondary with RA-GRS

À partir de la version 3.1, l’émulateur de stockage prend en charge la réplication géo-redondante avec accès en lecture (RA-GRS).Beginning with version 3.1, the storage emulator supports read-access geo-redundant replication (RA-GRS). Vous pouvez accéder à l’emplacement secondaire en ajoutant -secondary au nom du compte.You can access the secondary location by appending -secondary to the account name. Par exemple, vous pouvez utiliser l'adresse suivante pour accéder à un objet blob en utilisant l'emplacement secondaire en lecture seule dans l'émulateur de stockage :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

Notes

Pour un accès par programmation au stockage secondaire avec l'émulateur de stockage, utilisez la bibliothèque cliente de stockage pour .NET version 3.2 ou ultérieure.For programmatic access to the secondary with the storage emulator, use the Storage Client Library for .NET version 3.2 or later. Pour plus d’informations, consultez Bibliothèque cliente Microsoft Azure Storage pour .NET .See the Microsoft Azure Storage Client Library for .NET for details.

Référence de l’outil en ligne de commande de l’émulateur de stockageStorage emulator command-line tool reference

À partir de la version 3.0, une fenêtre de console s’affiche lorsque vous démarrez l’émulateur de stockage.Starting in version 3.0, a console window is displayed when you start the Storage Emulator. Utilisez la ligne de commande dans la fenêtre de console pour démarrer et arrêter l’émulateur.Use the command line in the console window to start and stop the emulator. Vous pouvez également interroger l’état et effectuer d’autres opérations à partir de la ligne de commande.You can also query for status and do other operations from the command line.

Notes

Si l’émulateur de calcul Microsoft Azure est installé, une icône apparaît dans la zone de notification lorsque vous lancez l’émulateur de stockage.If you have the Microsoft Azure compute emulator installed, a system tray icon appears when you launch the Storage Emulator. Cliquez avec le bouton droit sur l’icône pour faire apparaître un menu, qui fournit un moyen graphique pour démarrer et arrêter l’émulateur de stockage.Right-click on the icon to reveal a menu that provides a graphical way to start and stop the Storage Emulator.

Syntaxe de ligne de commandeCommand-line syntax

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

OptionsOptions

Pour afficher la liste des options, tapez /help dans l’invite de commandes.To view the list of options, type /help at the command prompt.

OptionOption DescriptionDescription CommandeCommand ArgumentsArguments
StartStart Permet de démarrer l’émulateur de stockage.Starts up the storage emulator. AzureStorageEmulator.exe start [-inprocess] -Reprocess : Démarrez l’émulateur dans le processus actuel au lieu de créer un processus.-Reprocess: Start the emulator in the current process instead of creating a new process.
StopStop Permet d’arrêter l’émulateur de stockage.Stops the storage emulator. AzureStorageEmulator.exe stop
ÉtatStatus Permet d’imprimer l’état de l’émulateur de stockage.Prints the status of the storage emulator. AzureStorageEmulator.exe status
ClearClear Permet d’effacer les données de tous les services spécifiés sur la ligne de commande.Clears the data in all services specified on the command line. AzureStorageEmulator.exe clear [blob] [table] [queue] [all] blob : Efface les données d’objet blob.blob: Clears blob data.
queue : Efface les données de file d’attente.queue: Clears queue data.
table : Efface les données de table.table: Clears table data.
all : Efface toutes les données de tous les services.all: Clears all data in all services.
InitInit Effectue une initialisation ponctuelle pour configurer l’émulateur.Does one-time initialization to set up the emulator. AzureStorageEmulator.exe init [-server serverName] [-sqlinstance instanceName] [-forcecreate|-skipcreate] [-reserveports|-unreserveports] [-inprocess] -server serverName\instanceName : Spécifie le serveur qui héberge l’instance SQL.-server serverName\instanceName: Specifies the server hosting the SQL instance.
-sqlinstance instanceName : Spécifie le nom de l’instance SQL à utiliser dans l’instance de serveur par défaut.-sqlinstance instanceName: Specifies the name of the SQL instance to be used in the default server instance.
-forcecreate : Force la création de la base de données SQL, même si celle-ci existe déjà.-forcecreate: Forces creation of the SQL database, even if it already exists.
-skipcreate : Ignore la création de la base de données SQL.-skipcreate: Skips creation of the SQL database. Cet argument est prioritaire sur -forcecreate.This takes precedence over -forcecreate.
-reserveports : Tente de réserver les ports HTTP associés aux services.-reserveports: Attempts to reserve the HTTP ports associated with the services.
-unreserveports : Tente de supprimer les réservations des ports HTTP associés aux services.-unreserveports: Attempts to remove reservations for the HTTP ports associated with the services. Cet argument est prioritaire sur -reserveports.This takes precedence over -reserveports.
-inprocess : Effectue l’initialisation dans le processus actuel au lieu de générer un nouveau processus.-inprocess: Performs initialization in the current process instead of spawning a new process. Vous devez lancer le processus actuel avec des autorisations élevées en cas de modification des réservations des ports.The current process must be launched with elevated permissions if changing port reservations.

Différences entre l’émulateur de stockage et Azure StorageDifferences between the storage emulator and Azure Storage

L’émulateur de stockage étant un environnement émulé local, il existe des différences entre l’émulateur et un compte de stockage Azure dans le cloud :Because the storage emulator is a local emulated environment, there are differences between using the emulator and an Azure storage account in the cloud:

  • L'émulateur de stockage prend en charge uniquement un compte fixe et une clé d'authentification connue.The storage emulator supports only a single fixed account and a well-known authentication key.
  • L’émulateur de stockage n’est pas un service de stockage scalable et ne prend pas en charge un grand nombre de clients simultanés.The storage emulator isn't a scalable storage service and doesn't support a large number of concurrent clients.
  • Comme décrit dans Adressage des ressources dans l’émulateur de stockage, les ressources ne sont pas adressées de la même manière dans l’émulateur de stockage et dans un compte de stockage Azure.As described in Addressing resources in the storage emulator, resources are addressed differently in the storage emulator versus an Azure storage account. La différence est due au fait que la résolution de noms de domaine est disponible dans le cloud, mais pas sur l’ordinateur local.The difference is because domain name resolution is available in the cloud but not on the local computer.
  • À partir de la version 3.1, le compte d'émulateur de stockage prend en charge la réplication géo-redondante avec accès en lecture.Beginning with version 3.1, the storage emulator account supports read-access geo-redundant replication (RA-GRS). Dans l’émulateur, RA-GRS est activé pour tous les comptes et il n’y a jamais de latence entre le réplica principal et le réplica secondaire.In the emulator, all accounts have RA-GRS enabled and there's never any lag between the primary and secondary replicas. Les opérations Get Blob Service Stats, Get Queue Service Stats et Get Table Service Stats sont prises en charge sur le compte secondaire et retournent toujours la valeur de l’élément de réponse LastSyncTime comme heure actuelle en fonction de la base de données SQL sous-jacente.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.
  • Les points de terminaison du service de fichiers et de protocole SMB ne sont pas pris en charge dans l’émulateur de stockage pour le moment.The File service and SMB protocol service endpoints aren't currently supported in the storage emulator.
  • Si vous utilisez une version des services de stockage qui n’est pas prise en charge par l’émulateur, l’émulateur retourne une erreur VersionNotSupportedByEmulator (code d’état HTTP 400 - Demande incorrecte).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).

Différences pour le stockage d’objets blobDifferences for Blob storage

Les différences suivantes s’appliquent au stockage d’objets blob dans l’émulateur :The following differences apply to Blob storage in the emulator:

  • L’émulateur de stockage prend uniquement en charge les objets blob d’une taille inférieure ou égale à 2 Go.The storage emulator only supports blob sizes up to 2 GB.
  • La longueur maximale d’un nom d’objet blob dans l’émulateur de stockage est de 256 caractères, contre 1 024 caractères dans le stockage Azure.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.
  • La copie incrémentielle permet de copier des instantanés à partir d’objets blob remplacés, ce qui renvoie une erreur sur le service.Incremental copy allows snapshots from overwritten blobs to be copied, which returns a failure on the service.
  • L’opération Get Page Ranges Diff ne fonctionne pas entre des instantanés copiés à l’aide de la copie incrémentielle d’objets blob.Get Page Ranges Diff doesn't work between snapshots copied using Incremental Copy Blob.
  • Une opération Put Blob peut réussir sur un objet blob qui existe dans l’émulateur de stockage avec un bail actif, même si l’ID du bail n’a pas été spécifié dans la demande.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.
  • L’émulateur ne prend pas en charge les opérations des objets blob d’ajout.Append Blob operations are not supported by the emulator. Toute tentative d’exécution d’une opération sur un objet blob d’ajout renvoie une erreur FeatureNotSupportedByEmulator (code d’état HTTP 400 – demande incorrecte).Attempting an operation on an append blob returns a FeatureNotSupportedByEmulator error (HTTP status code 400 - Bad Request).

Différences pour le stockage de tablesDifferences for Table storage

Les différences suivantes s’appliquent au stockage de tables dans l’émulateur :The following differences apply to Table storage in the emulator:

  • Les propriétés de date du service de Table dans l’émulateur de stockage ne prennent en charge que la plage autorisée par SQL Server 2005 (les dates postérieures au 1er janvier 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). Toutes les dates antérieures au 1er janvier 1753 sont remplacées par cette valeur.All dates before January 1, 1753 are changed to this value. La précision des dates est limitée à la précision de SQL Server 2005, ce qui signifie que les dates sont précises au 1/300e de seconde.The precision of dates is limited to the precision of SQL Server 2005, meaning that dates are precise to 1/300th of a second.
  • L’émulateur de stockage prend en charge des valeurs de propriétés de clé de partition et de clé de ligne de moins de 512 octets chacune.The storage emulator supports partition key and row key property values of less than 512 bytes each. La taille totale du nom du compte, du nom de table et de l’ensemble des noms de propriétés de clé ne peut pas dépasser 900 octets.The total size of the account name, table name, and key property names together can't exceed 900 bytes.
  • La taille totale d’une ligne de table dans l’émulateur de stockage est limitée à moins de 1 Mo.The total size of a row in a table in the storage emulator is limited to less than 1 MB.
  • Dans l’émulateur de stockage, les propriétés du type de données Edm.Guid ou Edm.Binary ne prennent en charge que les opérateurs de comparaison Equal (eq) et NotEqual (ne) dans les chaînes de filtre de requête.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.

Différences pour le stockage de files d’attenteDifferences for Queue storage

Le stockage de files d’attente dans l’émulateur ne présente aucune différence spécifique.There are no differences specific to Queue storage in the emulator.

Notes de publication de l’émulateur de stockageStorage emulator release notes

Version 5.10Version 5.10

  • L’émulateur de stockage ne refuse pas la version 2019-07-07 des services de stockage sur les points de terminaison des services Blob, File d’attente et Table.The storage emulator won't reject version 2019-07-07 of the storage services on Blob, Queue, and Table service endpoints.

Version 5.9Version 5.9

  • L’émulateur de stockage ne refuse pas la version 2019-02-02 des services de stockage sur les points de terminaison des services Blob, File d’attente et Table.The storage emulator won't reject version 2019-02-02 of the storage services on Blob, Queue, and Table service endpoints.

Version 5.8Version 5.8

  • L’émulateur de stockage ne refuse pas la version 2018-11-09 des services de stockage sur les points de terminaison des services Blob, File d’attente et Table.The storage emulator won't reject version 2018-11-09 of the storage services on Blob, Queue, and Table service endpoints.

Version 5.7Version 5.7

  • Correction d’un bogue générant une erreur en cas d’activation de la journalisation.Fixed a bug that would cause a crash if logging was enabled.

Version 5.6Version 5.6

  • L’émulateur de stockage prend maintenant en charge la version 2018-03-28 des services de stockage sur les points de terminaison des services BLOB, de File d’attente et de Table.The storage emulator now supports version 2018-03-28 of the storage services on Blob, Queue, and Table service endpoints.

Version 5.5Version 5.5

  • L’émulateur de stockage prend maintenant en charge la version 2017-11-09 des services de stockage sur les points de terminaison des services BLOB, de File d’attente et de Table.The storage emulator now supports version 2017-11-09 of the storage services on Blob, Queue, and Table service endpoints.
  • La prise en charge a été ajoutée pour la propriété Créé de l’objet blob, qui retourne l’heure de création de l’objet blob.Support has been added for the blob Created property, which returns the blob's creation time.

Version 5.4Version 5.4

  • Pour améliorer la stabilité de l’installation, l’émulateur ne tente plus de réserver les ports au moment de l’installation.To improve installation stability, the emulator no longer attempts to reserve ports at install time. Si vous souhaitez des réservations de port, utilisez l’option -reserveports de la commande init pour les spécifier.If you want port reservations, use the -reserveports option of the init command to specify them.

Version 5.3Version 5.3

  • L’émulateur de stockage prend maintenant en charge la version 2017-07-29 des services de stockage sur les points de terminaison des services BLOB, de File d’attente et de Table.The storage emulator now supports version 2017-07-29 of the storage services on Blob, Queue, and Table service endpoints.

Version 5.2Version 5.2

  • L’émulateur de stockage prend maintenant en charge la version 2017-04-17 des services de stockage sur les points de terminaison des services Blob, File d’attente et Table.The storage emulator now supports version 2017-04-17 of the storage services on Blob, Queue, and Table service endpoints.
  • Correction d’un bogue impliquant le mauvais encodage des valeurs de propriété de table.Fixed a bug where table property values weren't being properly encoded.

Version 5.1Version 5.1

  • Correction d’un bogue dans lequel l’émulateur de stockage retournait l’en-tête DataServiceVersion dans certaines réponses où le service ne se trouvait pas.Fixed a bug where the storage emulator was returning the DataServiceVersion header in some responses where the service was not.

Version 5.0Version 5.0

  • Le programme d’installation de l’émulateur de stockage ne vérifie plus s’il existe déjà des installations de MSSQL et de .NET Framework.The storage emulator installer no longer checks for existing MSSQL and .NET Framework installs.
  • Le programme d’installation de l’émulateur de stockage ne crée plus la base de données dans le cadre de l’installation.The storage emulator installer no longer creates the database as part of install. Si nécessaire, la base de données sera toujours créée dans le cadre du démarrage.Database will still be created if needed as part of startup.
  • La création de la base de données ne nécessite plus une élévation de privilèges.Database creation no longer requires elevation.
  • Les réservations de ports ne sont plus nécessaires pour le démarrage.Port reservations are no longer needed for startup.
  • Ajoute les options suivantes pour init : -reserveports (nécessite une élévation), -unreserveports (nécessite une élévation), -skipcreate.Adds the following options to init: -reserveports (requires elevation), -unreserveports (requires elevation), -skipcreate.
  • L’option d’interface utilisateur Émulateur de stockage de la barre d’état système lance maintenant l’interface de ligne de commande.The Storage Emulator UI option on the system tray icon now launches the command-line interface. L’ancienne interface graphique utilisateur (GUI) n’est plus disponible.The old GUI is no longer available.
  • Certaines DLL ont été supprimées ou renommées.Some DLLs have been removed or renamed.

Version 4.6Version 4.6

  • L’émulateur de stockage prend maintenant en charge la version 2016-05-31 des services de stockage sur les points de terminaison des services Blob, File d’attente et Table.The storage emulator now supports version 2016-05-31 of the storage services on Blob, Queue, and Table service endpoints.

Version 4.5Version 4.5

  • Corrige un bogue provoquant l’échec de l’installation et de l’initialisation au moment du renommage de la base de données de sauvegarde.Fixed a bug that caused installation and initialization to fail when the backing database is renamed.

Version 4.4Version 4.4

  • L’émulateur de stockage prend maintenant en charge la version 2015-12-11 des services de stockage sur les points de terminaison des services BLOB, de File d’attente et de Table.The storage emulator now supports version 2015-12-11 of the storage services on Blob, Queue, and Table service endpoints.
  • Le garbage collection par l’émulateur de stockage des données blob est désormais plus efficace quand le nombre d’objets blob est élevé.The storage emulator's garbage collection of blob data is now more efficient when dealing with large numbers of blobs.
  • Correction d’un bogue qui provoquait la validation du XML ACL de conteneur légèrement différemment de la façon dont procède le service de stockage.Fixed a bug that caused container ACL XML to be validated slightly differently from how the storage service does it.
  • Correction d’un bogue qui entraînait parfois le signalement des valeurs de date/heure max et min dans le fuseau horaire incorrect.Fixed a bug that sometimes caused max and min DateTime values to be reported in the incorrect time zone.

Version 4.3Version 4.3

  • L’émulateur de stockage prend maintenant en charge la version 2015-07-08 des services de stockage sur les points de terminaison des services BLOB, de File d’attente et de Table.The storage emulator now supports version 2015-07-08 of the storage services on Blob, Queue, and Table service endpoints.

Version 4.2Version 4.2

  • L’émulateur de stockage prend maintenant en charge la version 2015-04-05 des services de stockage sur les points de terminaison des services BLOB, de File d’attente et de Table.The storage emulator now supports version 2015-04-05 of the storage services on Blob, Queue, and Table service endpoints.

Version 4.1Version 4.1

  • L’émulateur de stockage prend maintenant en charge la version 2015-02-21 des services de stockage sur les points de terminaison des services Blob, File d’attente et Table.The storage emulator now supports version 2015-02-21 of the storage services on Blob, Queue, and Table service endpoints. Il ne prend pas en charge les nouvelles fonctionnalités d’ajout d’objets blob.It doesn't support the new Append Blob features.
  • L’émulateur retourne à présent un message d’erreur significatif pour les versions non prises en charge des services de stockage.The emulator now returns a meaningful error message for unsupported versions of storage services. Nous vous recommandons d’utiliser la dernière version de l’émulateur.We recommend using the latest version of the emulator. Si vous obtenez une erreur VersionNotSupportedByEmulator (code d’état HTTP 400 - demande incorrecte), téléchargez la dernière version de l’émulateur.If you get a VersionNotSupportedByEmulator error (HTTP status code 400 - Bad Request), download the latest version of the emulator.
  • Correction d’un bogue dans lequel une condition de course a généré des données d’entité de table incorrectes lors d’opérations de fusion simultanées.Fixed a bug wherein a race condition caused table entity data to be incorrect during concurrent merge operations.

Version 4.0Version 4.0

  • L’exécutable de l’émulateur de stockage est renommé en AzureStorageEmulator.exe.The storage emulator executable has been renamed to AzureStorageEmulator.exe.

Version 3.2Version 3.2

  • L’émulateur de stockage prend maintenant en charge la version 2014-02-14 des services de stockage sur les points de terminaison des services BLOB, de File d’attente et de Table.The storage emulator now supports version 2014-02-14 of the storage services on Blob, Queue, and Table service endpoints. Les points de terminaison du service de fichiers ne sont pas pris en charge dans l’émulateur de stockage pour le moment.File service endpoints aren't currently supported in the storage emulator. Pour plus d’informations sur la version 2014-02-14, consultez la page Contrôle de version pour les services Azure Storage .See Versioning for the Azure Storage Services for details about version 2014-02-14.

Version 3.1Version 3.1

  • Le stockage géo-redondant avec accès en lecture (RA-GRS) est maintenant pris en charge dans l’émulateur de stockage.Read-access geo-redundant storage (RA-GRS) is now supported in the storage emulator. Les API Get Blob Service Stats, Get Queue Service Stats et Get Table Service Stats sont prises en charge pour le compte secondaire et renvoient la valeur de l’élément de réponse LastSyncTime comme heure actuelle en fonction de la base de données SQL sous-jacente.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. Pour un accès par programmation au stockage secondaire avec l'émulateur de stockage, utilisez la bibliothèque cliente de stockage pour .NET version 3.2 ou ultérieure.For programmatic access to the secondary with the storage emulator, use the Storage Client Library for .NET version 3.2 or later. Pour plus d’informations, consultez Bibliothèque cliente Microsoft Azure Storage pour .NET.See the Microsoft Azure Storage Client Library for .NET Reference for details.

Version 3.0Version 3.0

  • L’émulateur de stockage Azure n’est plus inclus dans le même package que l’émulateur de calcul.The Azure storage emulator is no longer shipped in the same package as the compute emulator.
  • L’interface utilisateur graphique de l’émulateur de stockage est dépréciée.The storage emulator graphical user interface is deprecated. Elle a été remplacée par une interface de ligne de commande scriptable.It has been replaced by a scriptable command-line interface. Pour plus d’informations sur l’interface de ligne de commande, consultez la section Référence de l’outil en ligne de commande de l’émulateur de stockage.For details on the command-line interface, see Storage Emulator Command-Line Tool Reference. L’interface graphique est toujours présente dans la version 3.0, mais elle est uniquement accessible lorsque l’émulateur de calcul est installé en cliquant avec le bouton droit sur l’icône de la zone de notification, puis en sélectionnant Afficher l’IU de l’émulateur de stockage.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.
  • La version 2013-08-15 des services de stockage Azure est maintenant entièrement prise en charge.Version 2013-08-15 of the Azure storage services is now fully supported. (Auparavant, cette version était uniquement prise en charge par la version préliminaire de l’émulateur de stockage version 2.2.1.)(Previously this version was only supported by Storage Emulator version 2.2.1 Preview.)

Étapes suivantesNext steps

  • Évaluez l’émulateur de stockage open source Azurite multiplateforme et géré par la communauté.Evaluate the cross-platform, community-maintained open-source storage emulator Azurite.
  • L’article Exemples de stockage Azure avec .NET contient des liens vers plusieurs exemples de code que vous pouvez utiliser lorsque vous développez votre application.Azure Storage samples using .NET contains links to several code samples you can use when developing your application.
  • Vous pouvez utiliser l’Explorateur Stockage Microsoft Azure pour travailler avec des ressources dans votre compte de stockage cloud et dans l’émulateur de stockage.You can use the Microsoft Azure Storage Explorer to work with resources in your cloud Storage account, and in the storage emulator.