Udostępnij za pośrednictwem


Powiązania usługi SignalR Service dla usługi Azure Functions

W tym zestawie artykułów wyjaśniono, jak uwierzytelniać i wysyłać komunikaty w czasie rzeczywistym do klientów połączonych z usługą Azure SignalR Service przy użyciu powiązań usługi SignalR Service w usłudze Azure Functions. Środowisko uruchomieniowe usługi Azure Functions w wersji 2.x i nowszej obsługuje powiązania wejściowe i wyjściowe dla usługi SignalR Service.

Akcja Typ
Obsługa komunikatów z usługi SignalR Service Powiązanie wyzwalacza
Zwracanie adresu URL punktu końcowego usługi i tokenu dostępu Powiązanie wejściowe
Wysyłanie komunikatów usługi SignalR Service i zarządzanie grupami Powiązanie wyjściowe

Instalowanie rozszerzenia

Instalowany pakiet NuGet rozszerzenia zależy od trybu języka C#, którego używasz w aplikacji funkcji:

Funkcje są wykonywane w izolowanym procesie roboczym języka C#. Aby dowiedzieć się więcej, zobacz Przewodnik dotyczący uruchamiania usługi Azure Functions w języku C# w izolowanym procesie roboczym.

Dodaj rozszerzenie do projektu, instalując ten pakiet NuGet.

Instalowanie pakietu

Rozszerzenie usługi SignalR Service jest częścią pakietu rozszerzenia określonego w pliku projektu host.json. Podczas tworzenia projektu, który jest przeznaczony dla wersji 3.x lub nowszej, powinien być już zainstalowany ten pakiet. Aby dowiedzieć się więcej, zobacz pakiet rozszerzeń.

Dodawanie zależności

Aby użyć adnotacji usługi SignalR Service w funkcjach języka Java, należy dodać zależność do artefaktu azure-functions-java-library-signalr (wersja 1.0 lub nowsza) do pliku pom.xml .

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

Połączenia

Aby nawiązać połączenie z usługą Azure SignalR Service, możesz użyć parametry połączenia lub tożsamości firmy Microsoft Entra.

Connection string

Aby uzyskać instrukcje dotyczące pobierania parametry połączenia dla usługi Azure SignalR Service, zobacz Parametry połączenia w usłudze Azure SignalR Service

Ten parametry połączenia powinien być przechowywany w ustawieniu aplikacji o nazwie AzureSignalRConnectionString. Nazwę ustawienia aplikacji można dostosować za pomocą connectionStringSetting właściwości konfiguracji powiązania.

Połączenia oparte na tożsamościach

Jeśli używasz wersji 1.7.0 lub nowszej, zamiast używać parametry połączenia z wpisem tajnym, możesz mieć aplikację korzystającą z tożsamości Microsoft Entra.

Przede wszystkim należy upewnić się, że tożsamość firmy Microsoft Entra ma rolę Właściciel usługi SignalR Service.

Następnie należy zdefiniować ustawienia z typowym prefiksem AzureSignalRConnectionString. Możesz dostosować nazwę prefiksu connectionStringSetting z właściwością konfiguracji powiązania.

W tym trybie ustawienia obejmują następujące elementy:

Właściwości Szablon zmiennej środowiskowej opis Wymagania Przykładowa wartość
Identyfikator URI usługi AzureSignalRConnectionString__serviceUri Identyfikator URI punktu końcowego usługi. Podczas konfigurowania tylko identyfikatora URI usługi rozszerzenia będą próbowały użyć domyślnego typu DefaultAzureCredential do uwierzytelniania w usłudze. Tak https://mysignalrsevice.service.signalr.net
Poświadczenia tokenu AzureSignalRConnectionString__credential Definiuje sposób uzyskiwania tokenu dla połączenia. To ustawienie powinno być ustawione na managedidentity wartość , jeśli wdrożona funkcja platformy Azure zamierza używać uwierzytelniania tożsamości zarządzanej. Ta wartość jest prawidłowa tylko wtedy, gdy tożsamość zarządzana jest dostępna w środowisku hostingu. Nie. managedidentity
Client ID AzureSignalRConnectionString__clientId Gdy credential jest ustawiona managedidentitywartość , tę właściwość można ustawić, aby określić tożsamość przypisaną przez użytkownika do użycia podczas uzyskiwania tokenu. Właściwość akceptuje identyfikator klienta odpowiadający tożsamości przypisanej przez użytkownika do aplikacji. Jest to nieprawidłowe określenie zarówno identyfikatora zasobu, jak i identyfikatora klienta. Jeśli nie zostanie określona, zostanie użyta tożsamość przypisana przez system. Ta właściwość jest używana inaczej w lokalnych scenariuszach programowania, gdy credential nie należy ich ustawiać. Nie. 00000000-0000-0000-0000-000000000000
Identyfikator zasobu AzureSignalRConnectionString__managedIdentityResourceId Gdy credential jest ustawiona managedidentitywartość , tę właściwość można ustawić, aby określić identyfikator zasobu, który ma być używany podczas uzyskiwania tokenu. Właściwość akceptuje identyfikator zasobu odpowiadający identyfikatorowi zasobu tożsamości zarządzanej zdefiniowanej przez użytkownika. Nie można określić zarówno identyfikatora zasobu, jak i identyfikatora klienta. Jeśli żadna z nich nie zostanie określona, zostanie użyta tożsamość przypisana przez system. Ta właściwość jest używana inaczej w lokalnych scenariuszach programowania, gdy credential nie należy ich ustawiać. Nie. /subscriptions/000000000-0000-0000-0000-00000000000000/resourceGroups/mygroup/providers/Microsoft.SignalRService/SignalR/mysignalrservice

Uwaga

W przypadku używania local.settings.json pliku w lokalizacji lokalnej, konfiguracji aplikacja systemu Azure lub usługi Key Vault w celu zapewnienia ustawień połączeń opartych na tożsamościach zastąp element __ w : nazwie ustawienia, aby upewnić się, że nazwy są rozpoznawane poprawnie.

Na przykład AzureSignalRConnectionString:serviceUri.

Ustawienie wiele punktów końcowych

Można również skonfigurować wiele punktów końcowych i określić ustawienia tożsamości na punkt końcowy.

W takim przypadku prefiks ustawień ma Azure__SignalR__Endpoints__{endpointName}wartość . Jest {endpointName} to dowolna nazwa przypisana przez Użytkownika, aby skojarzyć grupę ustawień z punktem końcowym usługi. Prefiks Azure__SignalR__Endpoints__{endpointName} nie może być dostosowany przez connectionStringSetting właściwość.

Właściwości Szablon zmiennej środowiskowej opis Wymagania Przykładowa wartość
Identyfikator URI usługi Azure__SignalR__Endpoints__{endpointName}__serviceUri Identyfikator URI punktu końcowego usługi. Podczas konfigurowania tylko identyfikatora URI usługi rozszerzenia będą próbowały użyć domyślnego typu DefaultAzureCredential do uwierzytelniania w usłudze. Tak https://mysignalrsevice1.service.signalr.net
Typ punktu końcowego Azure__SignalR__Endpoints__{endpointName}__type Wskazuje, czy punkt końcowy usługi jest podstawowy, czy pomocniczy. Jeśli nie zostanie określony, wartość domyślna to Primary. Prawidłowe wartości to Primary i Secondary, bez uwzględniania wielkości liter. Nie. Secondary
Poświadczenia tokenu Azure__SignalR__Endpoints__{endpointName}__credential Definiuje sposób uzyskiwania tokenu dla połączenia. To ustawienie powinno być ustawione na managedidentity wartość , jeśli wdrożona funkcja platformy Azure zamierza używać uwierzytelniania tożsamości zarządzanej. Ta wartość jest prawidłowa tylko wtedy, gdy tożsamość zarządzana jest dostępna w środowisku hostingu. Nie. managedidentity
Client ID Azure__SignalR__Endpoints__{endpointName}__clientId Gdy credential jest ustawiona managedidentitywartość , tę właściwość można ustawić, aby określić tożsamość przypisaną przez użytkownika do użycia podczas uzyskiwania tokenu. Właściwość akceptuje identyfikator klienta odpowiadający tożsamości przypisanej przez użytkownika do aplikacji. Jest to nieprawidłowe określenie zarówno identyfikatora zasobu, jak i identyfikatora klienta. Jeśli nie zostanie określona, zostanie użyta tożsamość przypisana przez system. Ta właściwość jest używana inaczej w lokalnych scenariuszach programowania, gdy credential nie należy ich ustawiać. Nie. 00000000-0000-0000-0000-000000000000
Identyfikator zasobu Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId Gdy credential jest ustawiona managedidentitywartość , tę właściwość można ustawić, aby określić identyfikator zasobu, który ma być używany podczas uzyskiwania tokenu. Właściwość akceptuje identyfikator zasobu odpowiadający identyfikatorowi zasobu tożsamości zarządzanej zdefiniowanej przez użytkownika. Nie można określić zarówno identyfikatora zasobu, jak i identyfikatora klienta. Jeśli żadna z nich nie zostanie określona, zostanie użyta tożsamość przypisana przez system. Ta właściwość jest używana inaczej w lokalnych scenariuszach programowania, gdy credential nie należy ich ustawiać. Nie. /subscriptions/000000000-0000-0000-0000-0000000000000/resourceGroups/myrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myusermanagedidentity

Aby uzyskać więcej informacji na temat wielu punktów końcowych, zobacz Scale SignalR Service with multiple instances (Skalowanie usługi SignalR Service z wieloma wystąpieniami)

Następne kroki

Aby uzyskać szczegółowe informacje na temat konfigurowania i używania usług SignalR Service i Azure Functions razem, zapoznaj się z tematem Tworzenie i konfigurowanie usługi Azure Functions za pomocą usługi Azure SignalR Service.