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  # Optional
    value: "<hub name>"

规范元数据字段

字段必填绑定支持详情示例
connectionStringYOutputAzure SignalR 连接字符串"Endpoint=https://<your-azure-signalr>.service.signalr.net;AccessKey=<your-access-key>;Version=1.0;"
hubNOutput定义消息发送到的 Hub。Hub 可以在发布到输出绑定时作为元数据值(键为 “hub”)动态定义"myhub"
endpointNOutputAzure SignalR 的终结点;如果 connectionString 中未包含或使用 Microsoft Entra ID 时必需"https://<your-azure-signalr>.service.signalr.net"
accessKeyNOutput访问密钥"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 集成到解决方案中的更多信息,请查看文档

相关链接