Udostępnij za pośrednictwem


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:
  • połączenia: zdarzenia okresu istnienia Połączenie ionów. Jest uruchamiany, gdy połączenie klienta jest połączone lub rozłączone. Obejmuje on zdarzenia połączone i rozłączone.
  • komunikaty: wyzwalane, gdy klienci wywołują metodę centrum. Obejmuje wszystkie inne zdarzenia, z wyjątkiem zdarzeń w kategorii połączeń .
{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. 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ę broadcastcentrum, 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:

  1. Dodaj tożsamość przypisaną przez system lub tożsamość przypisaną przez użytkownika. Zobacz Jak dodać tożsamość zarządzaną w witrynie Azure Portal.

  2. 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

  3. 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/ec96f02080254f109c51a1f14cdb1931

    Na 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 ManagedIdentitynależ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.

  1. Przejdź do usługi Azure SignalR Service.
  2. Wybierz Ustawienia.
  3. Przełącz tryb usługi na bezserwerowy.
  4. Dodaj adresy URL w obszarze Wzorzec nadrzędnego adresu URL. Screenshot of AzureSignalR Service Upstream settings.
  5. Wybierz pozycję Reguły centrum, aby otworzyć Ustawienia nadrzędnej. Screenshot of Azure SignalR Upstream setting details.
  6. Zmień reguły centrum, reguły zdarzeń i reguły kategorii, wprowadzając wartość reguły w odpowiednim polu.
  7. W obszarze Uwierzytelnianie nadrzędne wybierz pozycję
  8. Użyj tożsamości zarządzanej. (Upewnij się, że włączono tożsamość zarządzaną)
  9. 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-Połączenie ion-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

Imię i nazwisko/nazwa 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

Imię i nazwisko/nazwa Pisz Opis
Identyfikator wywołania string Opcjonalny ciąg reprezentujący komunikat wywołania. Znajdź szczegóły w wywołaniach.
Cel 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 Targetpliku .

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))

Następne kroki