Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
Aby móc używać tego rozszerzenia powiązania w aplikacji, upewnij się, że plik host.json w katalogu głównym projektu zawiera następujące extensionBundle odwołanie:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
W tym przykładzie version[4.0.0, 5.0.0) wartość polecenia nakazuje hostowi usługi Functions użycie wersji pakietu, która jest co najmniej 4.0.0 mniejsza niż 5.0.0, która zawiera wszystkie potencjalne wersje 4.x. Ta notacja skutecznie utrzymuje aplikację w najnowszej dostępnej wersji pomocniczej pakietu rozszerzenia v4.x.
Jeśli to możliwe, należy użyć najnowszej wersji głównej pakietu rozszerzeń i zezwolić środowisku uruchomieniowemu na automatyczne utrzymywanie najnowszej wersji pomocniczej. Zawartość najnowszego pakietu można wyświetlić na stronie wydania pakietów rozszerzeń. Aby uzyskać więcej informacji, zobacz Pakiety rozszerzeń usługi Azure Functions.
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.
Łańcuch połączenia
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. | zarządzany identyfikator |
| ID klienta | 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. | zarządzany identyfikator |
| ID klienta | 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)
Aby zapewnić optymalne zabezpieczenia, aplikacja funkcji powinna używać tożsamości zarządzanych podczas nawiązywania połączenia z usługą Azure SignalR, zamiast używać parametrów połączenia, które zawierają wspólny klucz tajny. Aby uzyskać więcej informacji, zobacz Autoryzowanie żądań do zasobów usługi Azure SignalR Service za pomocą tożsamości zarządzanych firmy Microsoft Entra.
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.