Share via


Upstream-eindpunten

Met de functie upstream-eindpunten kan Azure SignalR Service berichten en verbindings gebeurtenissen verzenden naar een set eindpunten in de serverloze modus. U kunt upstream-eindpunten gebruiken om een hubmethode aan te roepen van clients in de serverloze modus om eindpunten op de hoogte te stellen wanneer clientverbindingen zijn verbonden of verbroken.

Notitie

Upstream-eindpunten kunnen alleen worden geconfigureerd in de serverloze modus.

Upstream-eindpuntinstellingen

De instellingen van een upstream-eindpunt bestaan uit een lijst met ordergevoelige items:

  • Een URL-sjabloon, die aangeeft waar berichten naartoe worden verzonden.
  • Een set regels.
  • Verificatieconfiguraties.

Wanneer een gebeurtenis wordt geactiveerd, worden de regels van een item één voor één gecontroleerd in volgorde. Berichten worden verzonden naar de upstream-eindpunt-URL van het eerste overeenkomende item.

URL-sjablooninstellingen

U kunt de upstream-eindpunt-URL parameteriseren om verschillende patronen te ondersteunen. Er zijn drie vooraf gedefinieerde parameters:

Vooraf gedefinieerde parameter Beschrijving
{hub} Een hub is een concept van Azure SignalR Service. Een hub is een isolatie-eenheid. Het bereik van gebruikers en berichtbezorging is beperkt tot een hub.
{category} Een categorie kan een van de volgende waarden zijn:
  • verbindingen: gebeurtenissen voor de levensduur van de verbinding. Deze wordt geactiveerd wanneer een clientverbinding is verbonden of de verbinding is verbroken. Het omvat verbonden en niet-verbonden gebeurtenissen.
  • berichten: Geactiveerd wanneer clients een hubmethode aanroepen. Het omvat alle andere gebeurtenissen, met uitzondering van gebeurtenissen in de categorie verbindingen .
{event} Voor de berichtencategorie is een gebeurtenis het doel in een aanroepbericht dat clients verzenden. Voor de categorie Verbindingen worden alleen verbonden en verbroken gebruikt.

Deze vooraf gedefinieerde parameters kunnen worden gebruikt in het URL-patroon. Parameters worden vervangen door een opgegeven waarde wanneer u de upstream-eindpunt-URL evalueert. Voorbeeld:

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

Wanneer een clientverbinding in de chathub is verbonden, wordt er een bericht verzonden naar deze URL:

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

Wanneer een client in de chathub de hubmethode broadcastaanroept, wordt er een bericht verzonden naar deze URL:

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

Sleutelkluisgeheimverwijzing in URL-sjablooninstellingen

De upstream-eindpunt-URL is niet versleuteld. U kunt gevoelige upstream-eindpunten beveiligen met Key Vault en deze openen met een beheerde identiteit.

Als u een beheerde identiteit wilt inschakelen in uw SignalR-service-exemplaar en deze Key Vault toegang wilt verlenen:

  1. Voeg een door het systeem toegewezen identiteit of door de gebruiker toegewezen identiteit toe. Zie Hoe u beheerde identiteit toevoegt in Azure Portal.

  2. Verdeel geheime leesmachtigingen voor de beheerde identiteit in het toegangsbeleid in de Sleutelkluis. Zie Toegangsbeleid voor Key Vault toewijzen met behulp van Azure Portal

  3. Vervang uw gevoelige tekst door de onderstaande syntaxis in het url-patroon van het upstream-eindpunt:

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

    <secret-identity>is de volledige gegevensvlak-URI van een geheim in Key Vault, optioneel inclusief een versie, bijvoorbeeld of https://myvault.vault.azure.net/secrets/mysecret/https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931

    Een volledige verwijzing ziet er bijvoorbeeld als volgt uit:

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

    Een upstream-eindpunt-URL naar Azure Function ziet er als volgt uit:

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

Notitie

Elke 30 minuten, of wanneer de upstream-eindpuntinstellingen of beheerde identiteit worden gewijzigd, hergelezen de service de geheime inhoud. U kunt direct een update activeren door de upstream-eindpuntinstellingen te wijzigen.

Regelinstellingen

U kunt hubregels, categorieregels en gebeurtenisregels afzonderlijk instellen. De overeenkomende regel ondersteunt drie indelingen:

  • Gebruik een sterretje (*) om een gebeurtenis te vinden.
  • Gebruik een komma (,) om meerdere gebeurtenissen te koppelen. Komt bijvoorbeeld connected, disconnected overeen met de verbonden en niet-verbonden gebeurtenissen.
  • Gebruik de volledige gebeurtenisnaam om overeen te komen met de gebeurtenis. Komt bijvoorbeeld connected overeen met de verbonden gebeurtenis.

Notitie

Als u Azure Functions gebruikt met SignalR-trigger, wordt één eindpunt weergegeven in de volgende indeling: <Function_App_URL>/runtime/webhooks/signalr?code=<API_KEY> U kunt alleen URL-sjablooninstellingen voor deze URL configureren en de standaardregelinstellingen behouden. Zie SignalR Service-integratie voor meer informatie over het zoeken <Function_App_URL> en <API_KEY>.

Verificatie-instellingen

U kunt verificatie configureren voor elke upstream-eindpuntinstelling afzonderlijk. Wanneer u verificatie configureert, wordt een token ingesteld in de Authentication koptekst van het upstream-bericht. Momenteel ondersteunt Azure SignalR Service de volgende verificatietypen:

  • None
  • ManagedIdentity

Wanneer u selecteert ManagedIdentity, moet u eerst een beheerde identiteit inSchakelen in Azure SignalR Service en eventueel een resource opgeven. Zie Beheerde identiteiten voor Azure SignalR Service voor meer informatie.

Upstream-eindpuntinstellingen configureren via Azure Portal

Notitie

Integratie met App Service Environment wordt momenteel niet ondersteund.

  1. Ga naar Azure SignalR Service.
  2. Selecteer Instellingen.
  3. Schakel de servicemodus over naar serverloos.
  4. Voeg URL's toe onder upstream-URL-patroon. Schermopname van upstream-instellingen voor AzureSignalR-service.
  5. Selecteer Hubregels om Upstream-instellingen te openen. Schermopname van de instellingsdetails van Azure SignalR Upstream.
  6. Wijzig Hub-regels, gebeurtenisregels en categorieregels door regelwaarde in te voeren in het bijbehorende veld.
  7. Selecteer onder Upstream-verificatie
  8. Beheerde identiteit gebruiken. (Zorg ervoor dat u beheerde identiteit hebt ingeschakeld)
  9. Kies opties onder Doelgroep in het uitgegeven token. Zie Beheerde identiteiten voor Azure SignalR Service voor meer informatie.

Upstream-eindpuntinstellingen configureren via Resource Manager-sjabloon

Als u upstream-eindpuntinstellingen wilt configureren met behulp van een Azure Resource Manager-sjabloon, stelt u de upstream eigenschap in de properties eigenschap in. In het volgende fragment ziet u hoe u de eigenschap instelt voor het upstream maken en bijwerken van upstream-eindpuntinstellingen.

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

Serverloze protocollen

Azure SignalR Service verzendt berichten naar eindpunten die voldoen aan de volgende protocollen. U kunt signalR Service-triggerbinding gebruiken met functie-app, die deze protocollen voor u afhandelt.

Wijze

POSTEN

Aanvraagheader

Name Beschrijving
X-ASRS-Connection-Id De verbindings-id voor de clientverbinding.
X-ASRS-Hub De hub waartoe de clientverbinding behoort.
X-ASRS-categorie De categorie waartoe het bericht behoort.
X-ASRS-Event De gebeurtenis waartoe het bericht behoort.
X-ASRS-Handtekening Een HMAC (hash-based message authentication code) die wordt gebruikt voor validatie. Zie Handtekening voor meer informatie.
X-ASRS-User-Claims Een groep claims van de clientverbinding.
X-ASRS-User-Id De gebruikersidentiteit van de client die het bericht verzendt.
X-ASRS-Client-Query De query van de aanvraag wanneer clients verbinding maken met de service.
Verificatie Een optioneel token wanneer u gebruikt ManagedIdentity.

Aanvraagtekst

Connected

Inhoudstype: application/json

Ontkoppeld

Inhoudstype: application/json

Name Type Description
Error tekenreeks Het foutbericht van een gesloten verbinding. Leeg wanneer verbindingen zonder fout worden gesloten.

Aanroepbericht

Inhoudstype: application/json of application/x-msgpack

Name Type Description
InvocationId tekenreeks Een optionele tekenreeks die een aanroepbericht vertegenwoordigt. Zoek details in aanroepen.
Doel tekenreeks Hetzelfde als de gebeurtenis en hetzelfde als het doel in een aanroepbericht.
Argumenten Matrix van object Een matrix die argumenten bevat die moeten worden toegepast op de methode waarnaar wordt Targetverwezen.

Handtekening

De service berekent SHA256-code voor de X-ASRS-Connection-Id waarde met behulp van zowel de primaire toegangssleutel als de secundaire toegangssleutel als de HMAC sleutel. De service stelt deze in de X-ASRS-Signature header in bij het maken van HTTP-aanvragen naar een upstream-eindpunt:

Hex_encoded(HMAC_SHA256(accessKey, connection-id))

Volgende stappen