安装和运行 Azurite 模拟器

使用 Azurite 模拟器,开发人员无需 Internet 连接即可快速跟踪基于云的应用程序和工具开发。

本文提供有关安装和运行 Azurite 的说明,以及为本地开发配置它。 有关使用 Azurite 的详细信息,请参阅使用 Azurite 模拟器进行本地 Azure 存储开发

Azurite 取代 了 Azure 存储模拟器,并继续更新以支持最新版本的 Azure 存储 API。

安装 Azurite

可以使用各种方法安装并运行 Azurite,包括 npm、Docker 和 Visual Studio Code。

Azurite 在 Visual Studio 2022 中自动可用。 Azurite 可执行文件会随着新版本 Visual Studio 的发布而更新。 如果运行的是 Visual Studio 的早期版本,则可以使用 Node 包管理器(npm)、DockerHub 或克隆 Azurite GitHub 存储库来安装 Azurite。

运行 Azurite

选择以下任一选项卡以查看与环境相关的特定说明。

若要在 Visual Studio 中对大多数项目类型使用 Azurite,首先需要运行 Azurite 可执行文件。 可执行文件运行后,Azurite 将侦听来自应用程序的连接请求。 若要了解详细信息,请参阅 从命令行运行 Azurite

对于 Azure Functions 项目和 ASP.NET 项目,可以选择将项目配置为自动启动 Azurite。 此配置是在项目设置期间完成的。 虽然此项目配置自动启动 Azurite,但 Visual Studio 不会公开详细的 Azurite 配置选项。 若要自定义详细的 Azurite 配置选项,请在启动 Visual Studio 之前 运行 Azurite 可执行文件

若要详细了解如何配置 Azure Functions 项目和 ASP.NET 项目以自动启动 Azurite,请参阅以下指南:

Azurite 可执行文件位置

下表显示了在 Windows 计算机上运行的不同版本的 Visual Studio 的 Azurite 可执行文件的位置:

Visual Studio 版本 Azurite 可执行文件位置
Visual Studio Community 2022 C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator
Visual Studio Professional 2022 C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator
Visual Studio Enterprise 2022 C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\Microsoft\Azure Storage Emulator

从命令行运行 Azurite

可以在 Visual Studio 安装的扩展文件夹中找到 Azurite 可执行文件,如 Azurite 可执行文件位置表中所述。

导航到相应的位置并启动 azurite.exe。 运行可执行文件后,Azurite 将侦听连接。

若要了解有关配置 Azurite 的可用命令行选项的详细信息,请参阅 命令行选项

在 Azure Functions 项目中运行 Azurite

在 Visual Studio 2022 中,创建 Azure Functions 项目。 设置项目选项时,将标记为 “使用 Azurite 用于运行时存储帐户”的框进行标记。

显示如何将 Azurite 设置为 Azure Functions 项目的运行时存储帐户的屏幕截图。

创建项目后,Azurite 会自动启动。 Azurite 可执行文件的位置在 Azurite 可执行文件位置表中详细介绍。 输出类似于以下屏幕截图:

显示将 Azurite 设置为 Azure Functions 项目的运行时存储帐户后输出的屏幕截图。

以后可以通过修改项目的 Connected Services 依赖项来更改此配置选项。

在 ASP.NET 项目中运行 Azurite

在 Visual Studio 2022 中,创建 ASP.NET 核心 Web 应用 项目。 然后,打开 “连接服务 ”对话框,选择 “添加服务依赖项”,然后选择“ 存储 Azurite 模拟器”。

显示如何将 Azurite 添加为 ASP.NET 项目的依赖项的屏幕截图。

在“配置存储 Azurite 模拟器”对话框中,将连接字符串名称字段设置为StorageConnectionString,然后选择完成

显示如何将连接字符串配置为将 Azurite 与 ASP.NET 项目配合使用的屏幕截图。

配置完成后,选择“ 关闭”,Azurite 模拟器会自动启动。 Azurite 可执行文件的位置在 Azurite 可执行文件位置表中详细介绍。 输出类似于以下屏幕截图:

显示将 ASP.NET 项目连接到 Azurite 模拟器后输出的屏幕截图。

以后可以通过修改项目的 Connected Services 依赖项来更改此配置选项。

命令行选项

本部分详细介绍了启动 Azurite 时可用的命令行开关。

Help

可选 - 使用 -h--help 开关获取命令行帮助。

azurite -h
azurite --help

侦听主机

可选 - 默认情况下,Azurite 侦听 127.0.0.1 作为本地服务器。 使用 --blobHost 开关根据您的需求设置地址。

仅接受本地计算机上的请求:

azurite --blobHost 127.0.0.1

允许远程请求:

azurite --blobHost 0.0.0.0

注意

允许远程请求可能会使系统容易受到外部攻击。

监听端口配置

可选 - 默认情况下,Azurite 侦听端口 10000 上的 Blob 服务。 使用 --blobPort 开关指定所需的侦听端口。

注释

使用自定义端口后,需要在 Azure 存储工具或 SDK 中更新连接字符串或相应的配置。

自定义 Blob 服务侦听端口:

azurite --blobPort 8888

让系统自动选择可用端口:

azurite --blobPort 0

Azurite 启动时会显示当前使用的端口。

工作区路径

可选 - Azurite 在执行期间将数据存储在本地磁盘。 使用 -l--location 选项将路径指定为工作区位置。 默认情况下,使用当前进程工作目录。 注意小写字母“l”。

azurite -l c:\azurite
azurite --location c:\azurite

访问日志

可选 - 默认情况下,访问日志显示在控制台窗口中。 使用 -s--silent 开关禁用访问日志的显示。

azurite -s
azurite --silent

调试日志

可选 - 调试日志包括有关每个请求和异常堆栈跟踪的详细信息。 通过向 -d--debug 开关提供有效的本地文件路径来启用调试日志。

azurite -d path/debug.log
azurite --debug path/debug.log

松散模式

可选 - 默认情况下,Azurite 应用严格模式来阻止不受支持的请求标头和参数。 使用 -L--loose 开关禁用严格模式。 注意大写字母“L”。

azurite -L
azurite --loose

版本

可选 - 使用 -v--version 开关显示已安装的 Azurite 版本号。

azurite -v
azurite --version

证书配置 (HTTPS)

可选 - 默认情况下,Azurite 使用 HTTP 协议。 可以通过向 --cert 选项提供 Privacy Enhanced Mail (.pem) 或 Personal Information Exchange (.pfx) 证书文件的路径来启用 HTTPS 模式。 使用 OAuth 身份验证连接到 Azurite 时,必须使用 HTTPS。

当为 PEM 文件提供 --cert 时,您必须提供相应的 --key 开关参数。

azurite --cert path/server.pem --key path/key.pem

如果为 PFX 文件提供了 --cert,则必须提供对应的 --pwd 开关。

azurite --cert path/server.pfx --pwd pfxpassword

HTTPS 设置

有关生成 PEM 和 PFX 文件的详细信息,请参阅 HTTPS 安装程序

OAuth 配置

可选 - 使用 --oauth 开关为 Azurite 启用 OAuth 身份验证。

azurite --oauth basic --cert path/server.pem --key path/key.pem

注释

OAuth 需要 HTTPS 终结点。 确保通过同时提供 --cert 开关和 --oauth 开关来启用 HTTPS。

Azurite 通过为 --oauth 开关指定 basic 参数来支持基本身份验证。 Azurite 执行基本身份验证,例如验证传入持有者令牌、检查颁发者、受众和到期时间。 Azurite 不会检查令牌签名或权限。 若要了解有关授权的详细信息,请参阅 使用 SDK 和工具连接到 Azurite

跳过 API 版本检查

可选 - 启动时,Azurite 会检查请求的 API 版本是否有效。 以下命令跳过 API 版本检查:

azurite --skipApiVersionCheck

禁用生产样式 URL

可选。 当您在请求 URI 的主机部分中使用完全限定域名而非 IP 地址时,Azurite 默认会从请求 URI 的主机部分解析存储帐户名称。 可以使用 --disableProductStyleUrl 强制从请求 URI 路径中解析存储帐户名称:

azurite --disableProductStyleUrl

内存持久化

可选。 默认情况下,Blob 和队列元数据会持久保存到磁盘,内容会持久保存到盘区文件中。 表存储会将所有数据持久保存到磁盘。 您可以禁用将任何数据持久保存到磁盘,并仅将数据存储在内存中。 在内存中持久性方案中,如果 Azurite 进程终止,则所有数据都将丢失。 可以使用以下选项覆盖默认持久化行为:

azurite --inMemoryPersistence

启用基于 SQL 的元数据实现(通过 AZURITE_DB)时,或指定 --location 选项时,此设置会被拒绝。

区段内存限制

可选。 默认情况下,用于 blob 和队列内容的内存中的 extent 存储被限制为不超过主机总内存的 50%。 总值使用 os.totalmem() 进行计算。 可以通过以下选项覆盖此限制:

azurite --extentMemoryLimit <megabytes>

对于为此选项指定的值没有限制。 但是,如果限制超出作系统提供的可用物理内存量,则可能使用虚拟内存。 限制值过高最终可能会导致内存不足错误或性能下降。 如果未指定此选项,则拒绝 --inMemoryPersistence 此选项。

若要了解详细信息,请参阅 “使用内存中存储”。

禁用遥测收集

可选。 默认情况下,Azurite 收集遥测数据以帮助改进产品。 使用 --disableTelemetry 选项可禁用当前 Azurite 运行期间的遥测数据收集,例如使用以下命令:

azurite --disableTelemetry

后续步骤