Nadrzędne punkty końcowe
Funkcja nadrzędnych punktów końcowych umożliwia usłudze Azure SignalR Service wysyłanie komunikatów i zdarzeń połączenia do zestawu punktów końcowych w trybie bezserwerowym. Za pomocą nadrzędnych punktów końcowych można wywołać metodę centrum od klientów w trybie bezserwerowym w celu powiadamiania punktów końcowych, gdy połączenia klienta są połączone lub rozłączone.
Uwaga
Nadrzędne punkty końcowe można skonfigurować tylko w trybie bezserwerowym.
Ustawienia nadrzędnego punktu końcowego
Ustawienia nadrzędnego punktu końcowego składają się z listy elementów wrażliwych na kolejność:
- Szablon adresu URL określający miejsce wysyłania komunikatów.
- Zestaw reguł.
- Konfiguracje uwierzytelniania.
Po wyzwoleniu zdarzenia reguły elementu są sprawdzane według jednej kolejności. Komunikaty zostaną wysłane do pierwszego adresu URL nadrzędnego punktu końcowego pasującego elementu.
Ustawienia szablonu adresu URL
Aby obsługiwać różne wzorce, można sparametryzować nadrzędny adres URL punktu końcowego. Istnieją trzy wstępnie zdefiniowane parametry:
Wstępnie zdefiniowany parametr | opis |
---|---|
{hub} | Koncentrator to koncepcja usługi Azure SignalR Service. Koncentrator jest jednostką izolacji. Zakres użytkowników i dostarczania komunikatów jest ograniczony do centrum. |
{category} | Kategoria może być jedną z następujących wartości:
|
{event} | W kategorii wiadomości zdarzenie jest elementem docelowym w komunikacie wywołania wysyłanym przez klientów. W przypadku kategorii połączeń używane są tylko połączenia i rozłączenia. |
Te wstępnie zdefiniowane parametry mogą być używane we wzorcu adresu URL. Parametry zostaną zastąpione określoną wartością podczas oceniania nadrzędnego adresu URL punktu końcowego. Na przykład:
http://host.com/{hub}/api/{category}/{event}
Po nawiązaniu połączenia klienta w centrum "czat" zostanie wysłana wiadomość do tego adresu URL:
http://host.com/chat/api/connections/connected
Gdy klient w centrum "czat" wywołuje metodę broadcast
centrum, do tego adresu URL zostanie wysłana wiadomość:
http://host.com/chat/api/messages/broadcast
Dokumentacja wpisu tajnego usługi Key Vault w ustawieniach szablonu adresu URL
Nadrzędny adres URL punktu końcowego nie jest szyfrowany. Poufne punkty końcowe można zabezpieczyć przy użyciu usługi Key Vault i uzyskać do nich dostęp za pomocą tożsamości zarządzanej.
Aby włączyć tożsamość zarządzaną w wystąpieniu usługi SignalR i przyznać mu dostęp do usługi Key Vault:
Dodaj tożsamość przypisaną przez system lub tożsamość przypisaną przez użytkownika. Zobacz Jak dodać tożsamość zarządzaną w witrynie Azure Portal.
Przyznaj uprawnienie do odczytu wpisu tajnego dla tożsamości zarządzanej w zasadach dostępu w usłudze Key Vault. Zobacz Przypisywanie zasad dostępu usługi Key Vault przy użyciu witryny Azure Portal
Zastąp tekst poufny poniższą składnią w nadrzędnym wzorcu adresu URL punktu końcowego:
{@Microsoft.KeyVault(SecretUri=<secret-identity>)}
<secret-identity>
to pełny identyfikator URI płaszczyzny danych wpisu tajnego w usłudze Key Vault, opcjonalnie zawierający wersję, np. https://myvault.vault.azure.net/secrets/mysecret/ lub https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931Na przykład kompletna dokumentacja wygląda następująco:
{@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)}
Nadrzędny adres URL punktu końcowego do funkcji platformy Azure wygląda następująco:
https://contoso.azurewebsites.net/runtime/webhooks/signalr?code={@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)}
Uwaga
Co 30 minut lub za każdym razem, gdy ustawienia nadrzędnego punktu końcowego lub tożsamość zarządzana zmieniają się, usługa ponownie odczytuje zawartość wpisu tajnego. Możesz natychmiast wyzwolić aktualizację, zmieniając ustawienia nadrzędnego punktu końcowego.
Ustawienia reguły
Reguły centrum, reguły kategorii i reguły zdarzeń można ustawić oddzielnie. Reguła dopasowania obsługuje trzy formaty:
- Użyj gwiazdki (*), aby dopasować dowolne zdarzenie.
- Użyj przecinka (,), aby dołączyć do wielu zdarzeń. Na przykład pasuje
connected, disconnected
do zdarzeń połączonych i rozłączonych. - Użyj pełnej nazwy zdarzenia, aby dopasować je do zdarzenia. Na przykład pasuje
connected
do połączonego zdarzenia.
Uwaga
Jeśli używasz usługi Azure Functions z wyzwalaczem usługi SignalR, wyzwalacz usługi SignalR uwidoczni pojedynczy punkt końcowy w następującym formacie: <Function_App_URL>/runtime/webhooks/signalr?code=<API_KEY>
.
Możesz po prostu skonfigurować ustawienia szablonu adresu URL do tego adresu URL i zachować domyślne ustawienia reguły. Zobacz Integracja usługi SignalR Service, aby uzyskać szczegółowe informacje na temat znajdowania <Function_App_URL>
i <API_KEY>
.
Ustawienia uwierzytelniania
Uwierzytelnianie dla każdego nadrzędnego punktu końcowego można skonfigurować osobno. Podczas konfigurowania uwierzytelniania token jest ustawiany w Authentication
nagłówku komunikatu nadrzędnego. Obecnie usługa Azure SignalR Service obsługuje następujące typy uwierzytelniania:
None
ManagedIdentity
Po wybraniu opcji ManagedIdentity
należy najpierw włączyć tożsamość zarządzaną w usłudze Azure SignalR Service i opcjonalnie określić zasób. Aby uzyskać szczegółowe informacje, zobacz Tożsamości zarządzane dla usługi Azure SignalR Service .
Konfigurowanie ustawień nadrzędnego punktu końcowego za pośrednictwem witryny Azure Portal
Uwaga
Integracja ze środowiskiem App Service Environment nie jest obecnie obsługiwana.
- Przejdź do usługi Azure SignalR Service.
- Wybierz Ustawienia.
- Przełącz tryb usługi na bezserwerowy.
- Dodaj adresy URL w obszarze Wzorzec nadrzędnego adresu URL.
- Wybierz pozycję Reguły centrum, aby otworzyć ustawienia nadrzędne.
- Zmień reguły centrum, reguły zdarzeń i reguły kategorii, wprowadzając wartość reguły w odpowiednim polu.
- W obszarze Uwierzytelnianie nadrzędne wybierz pozycję
- Użyj tożsamości zarządzanej. (Upewnij się, że włączono tożsamość zarządzaną)
- Wybierz dowolne opcje w obszarze Odbiorcy w wystawionym tokenie. Aby uzyskać szczegółowe informacje, zobacz Tożsamości zarządzane dla usługi Azure SignalR Service .
Konfigurowanie ustawień nadrzędnych punktów końcowych za pomocą szablonu usługi Resource Manager
Aby skonfigurować nadrzędne ustawienia punktu końcowego przy użyciu szablonu usługi Azure Resource Manager, ustaw upstream
właściwość we properties
właściwości . Poniższy fragment kodu przedstawia sposób ustawiania upstream
właściwości tworzenia i aktualizowania nadrzędnych ustawień punktu końcowego.
{
"properties": {
"upstream": {
"templates": [
{
"UrlTemplate": "http://host.com/{hub}/api/{category}/{event}",
"EventPattern": "*",
"HubPattern": "*",
"CategoryPattern": "*",
"Auth": {
"Type": "ManagedIdentity",
"ManagedIdentity": {
"Resource": "<resource>"
}
}
}
]
}
}
}
Protokoły bezserwerowe
Usługa Azure SignalR Service wysyła komunikaty do punktów końcowych, które są zgodne z następującymi protokołami. Możesz użyć powiązania wyzwalacza usługi SignalR Service z aplikacją funkcji, która obsługuje te protokoły.
Method
POST
Nagłówek żądania
Nazwa/nazwisko | opis |
---|---|
X-ASRS-Connection-Id | Identyfikator połączenia dla połączenia klienta. |
X-ASRS-Hub | Koncentrator, do którego należy połączenie klienta. |
X-ASRS-Category | Kategoria, do którego należy komunikat. |
X-ASRS-Event | Zdarzenie, do którego należy komunikat. |
X-ASRS-Signature | Kod uwierzytelniania komunikatów oparty na skrótach (HMAC), który jest używany do walidacji. Aby uzyskać szczegółowe informacje, zobacz Podpis . |
X-ASRS-User-Claims | Grupa oświadczeń połączenia klienta. |
X-ASRS-User-Id | Tożsamość użytkownika klienta, który wysyła komunikat. |
X-ASRS-Client-Query | Zapytanie żądania, gdy klienci nawiązują połączenie z usługą. |
Uwierzytelnianie | Opcjonalny token podczas korzystania z usługi ManagedIdentity . |
Treść żądania
Połączono
Typ zawartości: application/json
Odłączony
Typ zawartości: application/json
Nazwisko | Pisz | Opis |
---|---|---|
Błąd | string | Komunikat o błędzie zamkniętego połączenia. Puste, gdy połączenia zamykają się bez błędu. |
Komunikat wywołania
Typ zawartości: application/json
lub application/x-msgpack
Nazwisko | Pisz | Opis |
---|---|---|
Identyfikator wywołania | string | Opcjonalny ciąg reprezentujący komunikat wywołania. Znajdź szczegóły w wywołaniach. |
Obiekt docelowy | string | To samo co zdarzenie i to samo co element docelowy w komunikacie wywołania. |
Argumenty | Tablica obiektu | Tablica zawierająca argumenty, które mają być stosowane do metody, o której mowa w Target pliku . |
Podpis
Usługa obliczy kod SHA256 dla X-ASRS-Connection-Id
wartości przy użyciu zarówno podstawowego klucza dostępu, jak i pomocniczego HMAC
klucza dostępu jako klucza. Usługa ustawi ją w nagłówku X-ASRS-Signature
podczas wysyłania żądań HTTP do nadrzędnego punktu końcowego:
Hex_encoded(HMAC_SHA256(accessKey, connection-id))