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 managedidentity wartość , 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 managedidentity wartość , 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 managedidentity wartość , 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 managedidentity wartość , 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.