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:
|
{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 broadcast
aanroept, 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:
Voeg een door het systeem toegewezen identiteit of door de gebruiker toegewezen identiteit toe. Zie Hoe u beheerde identiteit toevoegt in Azure Portal.
Verdeel geheime leesmachtigingen voor de beheerde identiteit in het toegangsbeleid in de Sleutelkluis. Zie Toegangsbeleid voor Key Vault toewijzen met behulp van Azure Portal
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/ec96f02080254f109c51a1f14cdb1931Een 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.
- Ga naar Azure SignalR Service.
- Selecteer Instellingen.
- Schakel de servicemodus over naar serverloos.
- Voeg URL's toe onder upstream-URL-patroon.
- Selecteer Hubregels om Upstream-instellingen te openen.
- Wijzig Hub-regels, gebeurtenisregels en categorieregels door regelwaarde in te voeren in het bijbehorende veld.
- Selecteer onder Upstream-verificatie
- Beheerde identiteit gebruiken. (Zorg ervoor dat u beheerde identiteit hebt ingeschakeld)
- 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 Target verwezen. |
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))