Upstreamové koncové body

Funkce upstreamových koncových bodů umožňuje službě Azure SignalR odesílat zprávy a události připojení do sady koncových bodů v bezserverovém režimu. Upstreamové koncové body můžete použít k vyvolání metody rozbočovače z klientů v bezserverovém režimu k upozorňovat koncové body při připojení nebo odpojení připojení klienta.

Poznámka:

Upstreamové koncové body je možné konfigurovat pouze v bezserverovém režimu.

Nastavení upstreamových koncových bodů

Nastavení upstreamového koncového bodu se skládá ze seznamu položek citlivých na pořadí:

  • Šablona adresy URL, která určuje, kam se zprávy odesílají.
  • Sada pravidel.
  • Konfigurace ověřování.

Když se aktivuje událost, pravidla položky se kontrolují po jedné po druhé v pořadí. Zprávy se odešlou na adresu URL prvního nadřazeného koncového bodu odpovídající položky.

Nastavení šablony adresy URL

Pokud chcete podporovat různé vzory, můžete parametrizovat adresu URL upstreamového koncového bodu. Existují tři předdefinované parametry:

Předdefinovaný parametr Popis
{hub} Centrum je koncept služby Azure SignalR Service. Centrum je jednotka izolace. Rozsah uživatelů a doručování zpráv je omezený na centrum.
{category} Kategorie může být jedna z následujících hodnot:
  • připojení: události životnosti Připojení. Aktivuje se, když je připojení klienta připojené nebo odpojené. Zahrnuje připojené a odpojené události.
  • zprávy: Aktivuje se při vyvolání metody centra klienty. Zahrnuje všechny ostatní události s výjimkou událostí v kategorii připojení .
{event} Pro kategorii zpráv je událost cílem ve zprávě vyvolání, kterou klienti odesílají. Pro kategorii připojení se používají pouze připojené a odpojené.

Tyto předdefinované parametry lze použít ve vzoru adresy URL. Parametry budou při vyhodnocování adresy URL nadřazeného koncového bodu nahrazeny zadanou hodnotou. Příklad:

http://host.com/{hub}/api/{category}/{event}

Když je připojení klienta v centru chatu, odešle se na tuto adresu URL zpráva:

http://host.com/chat/api/connections/connected

Když klient v centru chatu vyvolá metodu broadcastcentra, odešle se na tuto adresu URL zpráva:

http://host.com/chat/api/messages/broadcast

Referenční informace ke tajným kódům služby Key Vault v nastavení šablony adresy URL

Adresa URL nadřazeného koncového bodu není šifrovaná. Citlivé upstreamové koncové body můžete zabezpečit pomocí služby Key Vault a přistupovat k nim pomocí spravované identity.

Povolení spravované identity v instanci služby SignalR a udělení přístupu ke službě Key Vault:

  1. Přidejte identitu přiřazenou systémem nebo identitu přiřazenou uživatelem. Přečtěte si, jak přidat spravovanou identitu na webu Azure Portal.

  2. Udělte oprávnění ke čtení tajných kódů pro spravovanou identitu v zásadách přístupu ve službě Key Vault. Viz Přiřazení zásad přístupu ke službě Key Vault pomocí webu Azure Portal

  3. V vzoru adresy URL upstreamového koncového bodu nahraďte citlivý text následující syntaxí:

    {@Microsoft.KeyVault(SecretUri=<secret-identity>)}
    

    <secret-identity> je úplný identifikátor URI roviny dat tajného kódu ve službě Key Vault, volitelně včetně verze, https://myvault.vault.azure.net/secrets/mysecret/ např. https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931

    Například úplný odkaz by vypadal takto:

    {@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)}
    

    Adresa URL upstreamového koncového bodu do funkce Azure Functions by vypadala takto:

    https://contoso.azurewebsites.net/runtime/webhooks/signalr?code={@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)}
    

Poznámka:

Každých 30 minut nebo pokaždé, když se změní nastavení nadřazeného koncového bodu nebo spravovaná identita, služba přečte obsah tajného kódu. Aktualizaci můžete okamžitě aktivovat změnou nastavení upstreamového koncového bodu.

Nastavení pravidel

Pravidla centra, pravidla kategorií a pravidla událostí můžete nastavit samostatně. Odpovídající pravidlo podporuje tři formáty:

  • Použijte hvězdičku (*) ke shodě s libovolnou událostí.
  • K připojení více událostí použijte čárku (,). connected, disconnected Například odpovídá připojeným a odpojeným událostem.
  • Použijte úplný název události, aby se shodovaly s událostí. Například connected odpovídá připojené události.

Poznámka:

Pokud používáte Azure Functions s triggerem SignalR, trigger SignalR zveřejní jeden koncový bod v následujícím formátu: <Function_App_URL>/runtime/webhooks/signalr?code=<API_KEY> Stačí nakonfigurovat nastavení šablony adresy URL pro tuto adresu URL a ponechat výchozí nastavení pravidla. Podrobnosti o tom, jak najít a najít<Function_App_URL>, <API_KEY>najdete v tématu Integrace služby SignalR Service.

Nastavení ověřování

Ověřování pro každé nastavení nadřazeného koncového bodu můžete nakonfigurovat samostatně. Při konfiguraci ověřování se v hlavičce nadřazené zprávy nastaví Authentication token. Služba Azure SignalR v současné době podporuje následující typy ověřování:

  • None
  • ManagedIdentity

Když vyberete ManagedIdentitymožnost , musíte nejprve povolit spravovanou identitu ve službě Azure SignalR a volitelně zadat prostředek. Podrobnosti najdete v tématu Spravované identity pro službu Azure SignalR Service .

Konfigurace nastavení upstreamového koncového bodu prostřednictvím webu Azure Portal

Poznámka:

Integrace se službou App Service Environment se v současné době nepodporuje.

  1. Přejděte do služby Azure SignalR.
  2. Vyberte Nastavení.
  3. Přepněte režim služby na bezserverovou verzi.
  4. Přidejte adresy URL pod vzor upstreamové adresy URL. Screenshot of AzureSignalR Service Upstream settings.
  5. Výběrem pravidel centra otevřete upstreamový Nastavení. Screenshot of Azure SignalR Upstream setting details.
  6. Změňte pravidla centra, pravidla událostí a pravidla kategorií zadáním hodnoty pravidla do odpovídajícího pole.
  7. V části Upstream Authentication select
  8. Použijte spravovanou identitu. (Ujistěte se, že jste povolili spravovanou identitu.
  9. Zvolte všechny možnosti v části Cílová skupina v vydaném tokenu. Podrobnosti najdete v tématu Spravované identity pro službu Azure SignalR Service .

Konfigurace nastavení upstreamového koncového bodu prostřednictvím šablony Resource Manageru

Pokud chcete nakonfigurovat upstreamová nastavení koncového bodu pomocí šablony Azure Resource Manageru, nastavte upstream vlastnost ve properties vlastnosti. Následující fragment kódu ukazuje, jak nastavit upstream vlastnost pro vytváření a aktualizaci nastavení nadřazeného koncového bodu.

{
  "properties": {
    "upstream": {
      "templates": [
        {
          "UrlTemplate": "http://host.com/{hub}/api/{category}/{event}",
          "EventPattern": "*",
          "HubPattern": "*",
          "CategoryPattern": "*",
          "Auth": {
            "Type": "ManagedIdentity",
            "ManagedIdentity": {
              "Resource": "<resource>"
            }
          }
        }
      ]
    }
  }
}

Bezserverové protokoly

Služba Azure SignalR odesílá zprávy do koncových bodů, které se řídí následujícími protokoly. Můžete použít vazbu triggeru služby SignalR Service s aplikací funkcí, která tyto protokoly zpracovává za vás.

metoda

POST

Hlavička požadavku

Název Popis
X-ASRS-Připojení ion-ID ID připojení pro připojení klienta.
X-ASRS-Hub Centrum, ke kterému patří připojení klienta.
Kategorie X-ASRS Kategorie, do které zpráva patří.
Událost X-ASRS Událost, do které zpráva patří.
Podpis X-ASRS Ověřovací kód (HMAC) založený na hodnotě hash, který se používá k ověřování. Podrobnosti najdete v části Podpis .
X-ASRS-User-Claims Skupina deklarací identity připojení klienta.
X-ASRS-User-ID Identita uživatele klienta, který zprávu odešle.
X-ASRS-Client-Query Dotaz požadavku, když se klienti připojují ke službě.
Authentication Volitelný token, když používáte ManagedIdentity.

Text požadavku

Připojeno

Typ obsahu: application/json

Odpojeno

Typ obsahu: application/json

Name Typ Popis
Chyba řetězec Chybová zpráva uzavřeného připojení. Prázdné, když se připojení zavřou bez chyby.

Vyvolání zprávy

Typ obsahu: application/json nebo application/x-msgpack

Name Typ Popis
InvocationId řetězec Volitelný řetězec, který představuje vyvolání zprávy. Podrobnosti najdete v vyvolání.
Cíl řetězec Stejná jako událost a stejná jako cíl ve zprávě vyvolání.
Argumenty Pole objektu Matice obsahující argumenty, které se mají použít na metodu uvedenou v Target.

Podpis

Služba vypočítá kód SHA256 pro X-ASRS-Connection-Id hodnotu pomocí primárního přístupového klíče i sekundárního přístupového HMAC klíče jako klíče. Služba ji nastaví v X-ASRS-Signature hlavičce při provádění požadavků HTTP na upstreamový koncový bod:

Hex_encoded(HMAC_SHA256(accessKey, connection-id))

Další kroky