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 AzureSignalRConnectionString
gespeichert 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 AzureSignalRConnectionString
definieren. 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.