Azure SignalR 绑定规范

关于 Azure SignalR 绑定组件的详细文档

组件格式

要配置 Azure SignalR 绑定,请创建一个类型为 bindings.azure.signalr 的组件。请参考本指南了解如何创建和应用绑定配置。

apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: <NAME>
spec:
  type: bindings.azure.signalr
  version: v1
  metadata:
  - name: connectionString
    value: "Endpoint=https://<your-azure-signalr>.service.signalr.net;AccessKey=<your-access-key>;Version=1.0;"
  - name: hub  # 可选
    value: "<hub name>"

规范元数据字段

字段 必需 绑定支持 详情 示例
connectionString Y 输出 Azure SignalR 连接字符串 "Endpoint=https://<your-azure-signalr>.service.signalr.net;AccessKey=<your-access-key>;Version=1.0;"
hub N 输出 定义消息将发送到的 hub。hub 可以在发布到输出绑定时动态定义为元数据值(键为 “hub”) "myhub"
endpoint N 输出 Azure SignalR 的端点;如果未包含在 connectionString 中或使用 Microsoft Entra ID,则必需 "https://<your-azure-signalr>.service.signalr.net"
accessKey N 输出 访问密钥 "your-access-key"

Microsoft Entra ID 认证

Azure SignalR 绑定组件支持所有 Microsoft Entra ID 认证机制。请参考认证到 Azure 的文档以了解更多关于根据您选择的 Microsoft Entra ID 认证机制的相关组件元数据字段。

您可以通过以下两种方式使用 Microsoft Entra ID 认证此组件:

  • 提供单独的元数据键:
    • endpoint 用于端点
    • 如有需要:azureClientIdazureTenantIdazureClientSecret
  • 提供带有 AuthType=aad 指定的连接字符串:
    • 系统分配的托管身份:Endpoint=https://<servicename>.service.signalr.net;AuthType=aad;Version=1.0;
    • 用户分配的托管身份:Endpoint=https://<servicename>.service.signalr.net;AuthType=aad;ClientId=<clientid>;Version=1.0;
    • Microsoft Entra ID 应用程序:Endpoint=https://<servicename>.service.signalr.net;AuthType=aad;ClientId=<clientid>;ClientSecret=<clientsecret>;TenantId=<tenantid>;Version=1.0;
      请注意,如果您的应用程序的 ClientSecret 包含 ; 字符,则无法使用连接字符串。

绑定支持

此组件支持具有以下操作的输出绑定

  • create

附加信息

默认情况下,Azure SignalR 输出绑定会向所有连接的用户广播消息。要缩小消息的接收范围,可以在消息的 Metadata 属性中配置以下选项:

  • group:将消息发送到特定的 Azure SignalR 组
  • user:将消息发送到特定的 Azure SignalR 用户

发布到 Azure SignalR 输出绑定的应用程序应发送具有以下格式的消息:

{
    "data": {
        "Target": "<enter message name>",
        "Arguments": [
            {
                "sender": "dapr",
                "text": "Message from dapr output binding"
            }
        ]
    },
    "metadata": {
        "group": "chat123"
    },
    "operation": "create"
}

有关将 Azure SignalR 集成到解决方案中的更多信息,请查看文档

相关链接