To setup Azure SignalR binding create a component of type bindings.azure.signalr
. See this guide on how to create and apply a binding configuration.
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>"
Field | Required | Binding support | Details | Example |
---|---|---|---|---|
connectionString | Y | Output | The Azure SignalR connection string | "Endpoint=https://<your-azure-signalr>.service.signalr.net;AccessKey=<your-access-key>;Version=1.0;" |
hub | N | Output | Defines the hub in which the message will be send. The hub can be dynamically defined as a metadata value when publishing to an output binding (key is “hub”) | "myhub" |
endpoint | N | Output | Endpoint of Azure SignalR; required if not included in the connectionString or if using Microsoft Entra ID | "https://<your-azure-signalr>.service.signalr.net" |
accessKey | N | Output | Access key | "your-access-key" |
The Azure SignalR binding component supports authentication using all Microsoft Entra ID mechanisms. See the docs for authenticating to Azure to learn more about the relevant component metadata fields based on your choice of Microsoft Entra ID authentication mechanism.
You have two options to authenticate this component with Microsoft Entra ID:
endpoint
for the endpointazureClientId
, azureTenantId
and azureClientSecret
AuthType=aad
specified:Endpoint=https://<servicename>.service.signalr.net;AuthType=aad;Version=1.0;
Endpoint=https://<servicename>.service.signalr.net;AuthType=aad;ClientId=<clientid>;Version=1.0;
Endpoint=https://<servicename>.service.signalr.net;AuthType=aad;ClientId=<clientid>;ClientSecret=<clientsecret>;TenantId=<tenantid>;Version=1.0;
;
character.This component supports output binding with the following operations:
create
By default the Azure SignalR output binding will broadcast messages to all connected users. To narrow the audience there are two options, both configurable in the Metadata property of the message:
Applications publishing to an Azure SignalR output binding should send a message with the following contract:
{
"data": {
"Target": "<enter message name>",
"Arguments": [
{
"sender": "dapr",
"text": "Message from dapr output binding"
}
]
},
"metadata": {
"group": "chat123"
},
"operation": "create"
}
For more information on integration Azure SignalR into a solution check the documentation