使用 Azure SignalR 本地仿真器进行无服务器开发
开发无服务器应用程序时,我们提供了 Azure SignalR 本地仿真器,以更轻松地进行本地开发和集成。 仿真器仅适用于无服务器方案,对于 Azure SignalR 服务充当代理的默认模式,可以直接使用自主机 SignalR 进行本地开发。 另请注意,仿真器仅适用于暂时性传输类型(默认类型),不支持持久传输类型。
可用的功能
- 身份验证
- 最新 Rest API 支持
- 上游
重要
本文中出现的原始连接字符串仅用于演示目的。
连接字符串包括应用程序访问 Azure SignalR 服务所需的授权信息。 连接字符串中的访问密钥类似于服务的根密码。 在生产环境中,请始终保护访问密钥。 使用 Azure 密钥保管库安全地管理和轮换密钥,使用 Microsoft Entra ID 保护连接字符串,并使用 Microsoft Entra ID 授权访问。
避免将访问密钥分发给其他用户、对其进行硬编码或将其以纯文本形式保存在其他人可以访问的任何位置。 如果你认为访问密钥可能已泄露,请轮换密钥。
演练
我们使用此无服务器示例演示如何使用仿真器。
本文中出现的原始连接字符串仅用于演示目的。 在生产环境中,请始终保护访问密钥。 使用 Azure Key Vault 安全地管理和轮换密钥,使用 Microsoft Entra ID 保护连接字符串,并使用 Microsoft Entra ID 授权访问。
将示例存储库克隆到本地
git clone https://github.com/Azure/azure-functions-signalrservice-extension.git cd azure-functions-signalrservice-extension/samples/bidirectional-chat
安装模拟器
dotnet tool install -g Microsoft.Azure.SignalR.Emulator
或者,如果已安装仿真器,请将其更新为最新的预览版本:
dotnet tool update -g Microsoft.Azure.SignalR.Emulator
运行仿真器
asrs-emulator
以列出所有可用命令使用以下内容初始化默认的上游设置:
asrs-emulator upstream init
它将默认的
settings.json
创建到当前文件夹中(默认上游UrlTemplate
作为http://localhost:7071/runtime/webhooks/signalr
),这是 SignalR 的本地函数触发器的 URL:{ "UpstreamSettings": { "Templates": [ { "UrlTemplate": "http://localhost:7071/runtime/webhooks/signalr", "EventPattern": "*", "HubPattern": "*", "CategoryPattern": "*" } ] } }
可以编辑文件以使模式更加受限,例如,将
HubPattern
从*
更改为chat
。 修改文件时,其更改会热加载到仿真器中。启动模拟器
asrs-emulator start
成功启动模拟器后,它会生成稍后要使用的 ConnectionString。
仿真器在启动时还提供高级选项,例如,可以使用
asrs-emulator start -p 8999
自定义仿真器使用的端口。 键入asrs-emulator start --help
以检查可用选项。转到子文件夹
csharp
并将local.settings.sample.json
重命名为local.settings.json
,使用仿真器生成的 ConnectionString 填写local.settings.json中AzureSignalRConnectionString的值。 使用存储仿真器时,请填写AzureWebJobsStorage
存储连接字符串(例如UseDevelopmentStorage=true
)。 保存文件,并使用func start
在csharp
子文件夹中运行函数。在浏览器中,导航到
http://localhost:7071/api/index
以播放演示。
后续步骤
本文介绍如何在应用程序中使用 SignalR 服务。 查看以下文章以了解有关 SignalR 服务的更多信息。