Freigeben über


Bindungen des SignalR-Diensts für Azure Functions

In dieser Gruppe von Artikeln wird erläutert, wie Sie SignalR-Bindungen in Azure Functions verwenden, um mit Azure SignalR Service verbundene Clients zu authentifizieren und Nachrichten in Echtzeit an sie zu senden. Die Azure Functions Runtimeversion 2.x oder höher unterstützt Eingabe- und Ausgabebindungen für SignalR Service.

Aktion type
Verarbeiten von Nachrichten von SignalR Service Triggerbindung
Zurückgeben der Dienstendpunkt-URL und des Zugriffstokens Eingabebindung
Senden von SignalR-Dienstnachrichten und Verwalten von Gruppen Ausgabebindung

Installieren der Erweiterung

Das NuGet-Erweiterungspaket, das Sie installieren, hängt vom C#-Modus ab, den Sie in Ihrer Funktions-App verwenden:

Funktionen werden in einem isolierten C#-Workerprozess ausgeführt. Weitere Informationen finden Sie im Leitfaden zum Ausführen von Azure Functions (C#) in einem isolierten Workerprozess.

Fügen Sie ihrem Projekt die Erweiterung hinzu, indem Sie dieses NuGet-Paket installieren.

Installieren des Pakets

Die SignalR Service-Erweiterung ist Teil eines Erweiterungspakets, das in Ihrer Projektdatei „host.json“ angegeben wird. Wenn Sie ein Projekt für Version 3.x oder höher erstellen, sollte dieses Paket bereits installiert sein. Weitere Informationen finden Sie unter Erweiterungspakete.

Hinzufügen der Abhängigkeit

Um die SignalR Service-Anmerkungen in Java-Funktionen verwenden zu können, müssen Sie in pom.xml dem Artefakt azure-functions-java-library-signalr (Version 1.0 oder höher) eine Abhängigkeit hinzufügen.

<dependency>
    <groupId>com.microsoft.azure.functions</groupId>
    <artifactId>azure-functions-java-library-signalr</artifactId>
    <version>1.0.0</version>
</dependency>

Verbindungen

Sie können Verbindungszeichenfolge oder Microsoft Entra Identity verwenden, um eine Verbindung mit dem Azure SignalR-Dienst herzustellen.

Connection string

Anweisungen zum Abrufen der Verbindungszeichenfolge für Ihren Azure SignalR-Dienst finden Sie unter Verbindungszeichenfolgen im Azure SignalR-Dienst

Diese Verbindungszeichenfolge sollte in einer Anwendungseinstellung mit einem Namen AzureSignalRConnectionStringgespeichert werden. Sie können den Namen der Anwendungseinstellung mit der connectionStringSetting Eigenschaft der Bindungskonfiguration anpassen.

Identitätsbasierte Verbindungen

Wenn Sie Version 1.7.0 oder höher verwenden, anstatt eine Verbindungszeichenfolge mit einem geheimen Schlüssel zu verwenden, können Sie die App über eine Microsoft Entra-Identität verfügen.

Zunächst sollten Sie sicherstellen, dass Ihre Microsoft Entra-Identität über die Rolle "SignalR-Dienstbesitzer" verfügt.

Anschließend würden Sie Einstellungen mit einem allgemeinen Präfix AzureSignalRConnectionStringdefinieren. Sie können den Präfixnamen mit der connectionStringSetting Eigenschaft der Bindungskonfiguration anpassen.

In diesem Modus enthalten die Einstellungen die folgenden Elemente:

Eigenschaft Vorlage für Umgebungsvariable Beschreibung Erforderlich Beispielwert
Dienst-URI AzureSignalRConnectionString__serviceUri Der URI Ihres Dienstendpunkts. Wenn Sie nur "Dienst-URI" konfigurieren, würden die Erweiterungen versuchen, den DefaultAzureCredential-Typ für die Authentifizierung beim Dienst zu verwenden. Ja https://mysignalrsevice.service.signalr.net
Token-Anmeldeinformationen AzureSignalRConnectionString__credential Damit wird festgelegt, wie für die Verbindung ein Token abgerufen werden soll. Diese Einstellung sollte auf managedidentity festgelegt werden, wenn Ihre bereitgestellte Azure-Funktion die Authentifizierung mit verwalteter Identität verwenden soll. Dieser Wert ist nur gültig, wenn eine verwaltete Identität in der Hostingumgebung verfügbar ist. No managedidentity
Client-ID AzureSignalRConnectionString__clientId Wenn credential auf managedidentity festgelegt ist, kann mit dieser Eigenschaft die benutzerseitig zugewiesene Identität angegeben werden, die beim Abrufen eines Tokens verwendet werden soll. Die Eigenschaft akzeptiert eine Client-ID, die einer vom Benutzer zugewiesenen Identität entspricht, die der Anwendung zugeordnet ist. Es ist nicht möglich, sowohl eine Ressourcen-ID als auch eine Client-ID anzugeben. Wenn nichts angegeben wird, wird die vom System zugewiesene Identität verwendet. Diese Eigenschaft wird in Szenarien für die lokale Entwicklung anders verwendet, in denen credential nicht festgelegt werden darf. No 00000000-0000-0000-0000-000000000000
Ressourcen-ID AzureSignalRConnectionString__managedIdentityResourceId Wenn credential auf managedidentity festgelegt ist, kann mit dieser Eigenschaft der Ressourcenbezeichner angegeben werden, der beim Abrufen eines Tokens verwendet werden soll. Die Eigenschaft akzeptiert einen Ressourcenbezeichner, der der Ressourcen-ID der benutzerdefinierten verwalteten Identität entspricht. Es ist nicht möglich, sowohl eine Ressourcen-ID als auch eine Client-ID anzugeben. Wenn nichts angegeben wird, wird die vom System zugewiesene Identität verwendet. Diese Eigenschaft wird in Szenarien für die lokale Entwicklung anders verwendet, in denen credential nicht festgelegt werden darf. No /subscriptions/00000000-0000-0000-00000-0000000000/resourceGroups/mygroup/providers/Microsoft.SignalRService/SignalR/mysignalrservice

Hinweis

local.settings.json Wenn Sie die Datei lokal, Azure-App Konfiguration oder Key Vault verwenden, um Einstellungen für identitätsbasierte Verbindungen bereitzustellen, ersetzen Sie diese durch : __ den Einstellungsnamen, um sicherzustellen, dass Namen ordnungsgemäß aufgelöst werden.

Beispiel: AzureSignalRConnectionString:serviceUri.

Einstellung für mehrere Endpunkte

Sie können auch mehrere Endpunkte konfigurieren und Identitätseinstellungen pro Endpunkt angeben.

In diesem Fall präfixieren Sie Ihre Einstellungen mit Azure__SignalR__Endpoints__{endpointName}. Dies {endpointName} ist ein beliebiger Name, der Ihnen zugewiesen wird, um eine Gruppe von Einstellungen einem Dienstendpunkt zuzuordnen. Das Präfix Azure__SignalR__Endpoints__{endpointName} kann nicht nach connectionStringSetting Eigenschaft angepasst werden.

Eigenschaft Vorlage für Umgebungsvariable Beschreibung Erforderlich Beispielwert
Dienst-URI Azure__SignalR__Endpoints__{endpointName}__serviceUri Der URI Ihres Dienstendpunkts. Wenn Sie nur "Dienst-URI" konfigurieren, würden die Erweiterungen versuchen, den DefaultAzureCredential-Typ für die Authentifizierung beim Dienst zu verwenden. Ja https://mysignalrsevice1.service.signalr.net
Endpunkttyp Azure__SignalR__Endpoints__{endpointName}__type Gibt an, ob der Dienstendpunkt primär oder sekundär ist. Wenn dieser Wert nicht angegeben ist, wird standardmäßig Primary verwendet. Gültige Werte sind Primary und Secondary, wobei die Groß-/Kleinschreibung nicht beachtet wird. No Secondary
Token-Anmeldeinformationen Azure__SignalR__Endpoints__{endpointName}__credential Damit wird festgelegt, wie für die Verbindung ein Token abgerufen werden soll. Diese Einstellung sollte auf managedidentity festgelegt werden, wenn Ihre bereitgestellte Azure-Funktion die Authentifizierung mit verwalteter Identität verwenden soll. Dieser Wert ist nur gültig, wenn eine verwaltete Identität in der Hostingumgebung verfügbar ist. No managedidentity
Client-ID Azure__SignalR__Endpoints__{endpointName}__clientId Wenn credential auf managedidentity festgelegt ist, kann mit dieser Eigenschaft die benutzerseitig zugewiesene Identität angegeben werden, die beim Abrufen eines Tokens verwendet werden soll. Die Eigenschaft akzeptiert eine Client-ID, die einer vom Benutzer zugewiesenen Identität entspricht, die der Anwendung zugeordnet ist. Es ist nicht möglich, sowohl eine Ressourcen-ID als auch eine Client-ID anzugeben. Wenn nichts angegeben wird, wird die vom System zugewiesene Identität verwendet. Diese Eigenschaft wird in Szenarien für die lokale Entwicklung anders verwendet, in denen credential nicht festgelegt werden darf. No 00000000-0000-0000-0000-000000000000
Ressourcen-ID Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId Wenn credential auf managedidentity festgelegt ist, kann mit dieser Eigenschaft der Ressourcenbezeichner angegeben werden, der beim Abrufen eines Tokens verwendet werden soll. Die Eigenschaft akzeptiert einen Ressourcenbezeichner, der der Ressourcen-ID der benutzerdefinierten verwalteten Identität entspricht. Es ist nicht möglich, sowohl eine Ressourcen-ID als auch eine Client-ID anzugeben. Wenn nichts angegeben wird, wird die vom System zugewiesene Identität verwendet. Diese Eigenschaft wird in Szenarien für die lokale Entwicklung anders verwendet, in denen credential nicht festgelegt werden darf. No /subscriptions/00000000-0000-0000-00000-0000000000/resourceGroups/myrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myusermanagedidentity

Weitere Informationen zu mehreren Endpunkten finden Sie unter Scale SignalR Service mit mehreren Instanzen

Nächste Schritte

Ausführliche Informationen zum Konfigurieren und Verwenden von SignalR Service und Azure Functions finden Sie unter Azure Functions-Entwicklung und -Konfiguration mit Azure SignalR Service.