azurite
Simulate Azure Storage services locally
TLDR
Use an existing location as workspace path
Disable access log displayed in console
Enable debug log by providing a file path as log destination
Customize the listening address of Blob/Queue/Table service
Customize the listening port of Blob/Queue/Table service
SYNOPSIS
azurite [options]
PARAMETERS
--blobHost <host>
Sets the host address for the Blob service. Default is 0.0.0.0.
--queueHost <host>
Sets the host address for the Queue service. Default is 0.0.0.0.
--tableHost <host>
Sets the host address for the Table service. Default is 0.0.0.0.
--host <host>
Sets the host address for all services if not specified individually. Default is 0.0.0.0.
--blobPort <port>
Sets the port for the Blob service. Default is 10000.
--queuePort <port>
Sets the port for the Queue service. Default is 10001.
--tablePort <port>
Sets the port for the Table service. Default is 10002.
--port <port>
Sets the port for all services if not specified individually.
--location <path>
Specifies the workspace path for data persistence. If not set, data is ephemeral.
--debug <path>
Enables debug logging to a specified file path.
--silent
Disables startup and request logs, showing only error logs.
--loose
Enables loose mode, handling unsupported headers or parameters more leniently.
--cert <path>
Path to a PEM-encoded TLS certificate file for HTTPS.
--key <path>
Path to a PEM-encoded TLS private key file for HTTPS.
--oauth <level>
Sets OAuth authentication level (basic, proxy, or metadata).
--skipApiVersionCheck
Skips the API version compatibility check, allowing older client SDKs to connect.
--disableProductStyleUrl
Disables product style URL for blob service.
--connectionString <string>
Provides a full connection string to configure Azurite.
--version
Displays the Azurite version number.
--help
Displays help information and usage details.
DESCRIPTION
Azurite is an open-source, cross-platform storage emulator that mimics the Azure Blob, Queue, and Table storage services. It allows developers to test their applications locally without incurring Azure costs or requiring an internet connection.
Built with Node.js, Azurite is a crucial tool for development workflows involving Azure storage, providing a consistent environment for testing various storage operations like uploading blobs, sending queue messages, or managing table entities. It supports features such as CORS (Cross-Origin Resource Sharing), Shared Access Signatures (SAS), and various authentication methods, making it highly versatile for modern application development.
CAVEATS
Azurite is not a standard, pre-installed Linux command; it requires Node.js and npm (or Docker) for installation. As an emulator, it does not support all advanced features or edge cases of the actual Azure Storage services. It is intended for local development and testing, not for production deployments. Data stored by Azurite is local and ephemeral by default, requiring the --location option for persistence.
INSTALLATION
The most common way to install Azurite on Linux is via Node Package Manager (npm):
npm install -g azurite
Alternatively, it can be run using Docker:
docker run -p 10000:10000 -p 10001:10001 -p 10002:10002 mcr.microsoft.com/azure-storage/azurite
DATA PERSISTENCE
By default, Azurite stores data in memory or a temporary directory, meaning data is lost when the command exits. To persist data across sessions, use the --location option to specify a local directory where Azurite will store its data files.
HISTORY
Prior to Azurite, Microsoft offered the Azure Storage Emulator, which was primarily a Windows-only .NET-based application. With the increasing adoption of cross-platform development, Azurite was developed as its open-source, Node.js-based successor to provide a consistent storage emulation experience across Windows, macOS, and Linux. Its development has focused on mimicking Azure storage APIs accurately to streamline local testing workflows.