Compartir a través de

安装和运行 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 协议。 可以通过向交换机提供隐私增强邮件(.pem)或 个人信息交换(.pfx) 证书文件的路径来 --cert 启用 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 通过指定 basic 开关的参数 --oauth 支持基本身份验证。 Azurite 执行基本身份验证,例如验证传入持有者令牌、检查颁发者、受众和到期时间。 Azurite 不会检查令牌签名或权限。 若要了解有关授权的详细信息,请参阅 使用 SDK 和工具连接到 Azurite

跳过 API 版本检查

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

azurite --skipApiVersionCheck

禁用生产样式 URL

可选。 使用完全限定的域名而不是请求 URI 主机中的 IP 时,Azurite 默认从请求 URI 主机分析存储帐户名称。 可以使用以下命令从请求 URI 路径 --disableProductStyleUrl强制分析存储帐户名称:

azurite --disableProductStyleUrl

内存中持久性

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

azurite --inMemoryPersistence

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

盘区内存限制

可选。 默认情况下,内存中盘区存储(对于 blob 和队列内容)限制为主机总内存的 50%。 总值是使用 os.totalmem(). 可以使用以下选项重写此限制:

azurite --extentMemoryLimit <megabytes>

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

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

禁用遥测收集

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

azurite --disableTelemetry

后续步骤