Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tato sada článků vysvětluje, jak ověřovat a odesílat zprávy v reálném čase klientům připojeným ke službě Azure SignalR Service pomocí vazeb služby SignalR ve službě Azure Functions. Modul runtime Azure Functions verze 2.x a vyšší podporuje vstupní a výstupní vazby pro službu SignalR Service.
| Akce | Typ |
|---|---|
| Zpracování zpráv ze služby SignalR | Vazba triggeru |
| Vrácení adresy URL koncového bodu služby a přístupového tokenu | Vstupní vazba |
| Odesílání zpráv služby SignalR a správa skupin | Výstupní vazba |
Instalace rozšíření
Balíček NuGet rozšíření, který nainstalujete, závisí na režimu jazyka C#, který používáte ve své aplikaci funkcí:
Funkce se spouštějí v izolovaném pracovním procesu C#. Další informace najdete v průvodci spuštěním služby Azure Functions v jazyce C# v izolovaném pracovním procesu.
Přidejte rozšíření do projektu instalací tohoto balíčku NuGet.
Instalace sady
Pokud chcete v aplikaci použít toto rozšíření vazeb, ujistěte se, že soubor host.json v kořenovém adresáři projektu obsahuje tento extensionBundle odkaz:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
V tomto příkladu version hodnota [4.0.0, 5.0.0) dává hostiteli Functions pokyn, aby používal verzi sady, která je alespoň 4.0.0 , ale menší než 5.0.0, která zahrnuje všechny potenciální verze 4.x. Tato notace efektivně udržuje vaši aplikaci na nejnovější dostupné podverzi sady rozšíření v4.x.
Pokud je to možné, měli byste použít nejnovější hlavní verzi sady rozšíření a umožnit modulu runtime automaticky udržovat nejnovější podverzi. Obsah nejnovější sady můžete zobrazit na stránce verze sady rozšíření. Další informace najdete v sadách rozšíření Azure Functions.
Přidání závislosti
Pokud chcete používat poznámky služby SignalR ve funkcích Java, musíte do souboru pom.xml přidat závislost do artefaktu azure-functions-java-library-signalr (verze 1.0 nebo vyšší).
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-signalr</artifactId>
<version>1.0.0</version>
</dependency>
Propojení
K připojení ke službě Azure SignalR Service můžete použít připojovací řetězec nebo identitu Microsoft Entra.
Připojovací řetězec
Pokyny k načtení připojovací řetězec pro službu Azure SignalR najdete v tématu Připojovací řetězce ve službě Azure SignalR Service.
Tato připojovací řetězec by měla být uložena v nastavení aplikace s názvem AzureSignalRConnectionString. Název nastavení aplikace můžete přizpůsobit vlastností connectionStringSetting konfigurace vazby.
Připojení založená na identitách
Pokud používáte verzi 1.7.0 nebo vyšší, můžete místo použití připojovací řetězec s tajným kódem použít aplikaci identitu Microsoft Entra.
Nejprve byste se měli ujistit, že vaše identita Microsoft Entra má roli Vlastník služby SignalR.
Pak byste definovali nastavení se společnou předponou AzureSignalRConnectionString. Název předpony můžete přizpůsobit vlastností connectionStringSetting konfigurace vazby.
V tomto režimu nastavení zahrnují následující položky:
| Vlastnost | Šablona proměnné prostředí | Popis | Povinní účastníci | Příklad hodnoty |
|---|---|---|---|---|
| Identifikátor URI služby | AzureSignalRConnectionString__serviceUri |
Identifikátor URI vašeho koncového bodu služby. Pokud nakonfigurujete pouze identifikátor URI služby, rozšíření by se pokusila použít typ DefaultAzureCredential k ověření ve službě. | Ano | https://mysignalrsevice.service.signalr.net |
| Přihlašovací údaje tokenu | AzureSignalRConnectionString__credential |
Definuje způsob získání tokenu pro připojení. Toto nastavení by mělo být nastavené, managedidentity pokud vaše nasazená funkce Azure Functions hodlá používat ověřování spravované identity. Tato hodnota je platná pouze v případě, že je spravovaná identita dostupná v hostitelském prostředí. |
Ne | Spravovaná identita |
| ID klienta | AzureSignalRConnectionString__clientId |
Pokud credential je nastavena managedidentityna hodnotu , lze tuto vlastnost nastavit tak, aby určila identitu přiřazenou uživatelem, která se má použít při získávání tokenu. Vlastnost přijímá ID klienta odpovídající identitě přiřazené uživatelem přiřazené aplikaci. Není platné zadat ID prostředku i ID klienta. Pokud není zadána, použije se identita přiřazená systémem. Tato vlastnost se v místních vývojových scénářích používá odlišně, pokud credential by neměla být nastavena. |
Ne | 00000000-0000-0000-0000-000000000000 |
| ID zdroje | AzureSignalRConnectionString__managedIdentityResourceId |
Pokud credential je nastavena managedidentityna hodnotu , může být tato vlastnost nastavena pro zadání identifikátoru prostředku, který se má použít při získání tokenu. Vlastnost přijímá identifikátor prostředku odpovídající ID prostředku uživatelem definované spravované identity. Není platné zadat ID prostředku i ID klienta. Pokud není zadána žádná, použije se identita přiřazená systémem. Tato vlastnost se v místních vývojových scénářích používá odlišně, pokud credential by neměla být nastavena. |
Ne | /subscriptions/0000000-0000-0000-0000-0000000000/resourceGroups/mygroup/providers/Microsoft.SignalRService/SignalR/mysignalrservice |
Poznámka:
Pokud používáte local.settings.json soubor v místním prostředí, Aplikace Azure Konfigurace nebo Key Vault k poskytování nastavení pro připojení založená na identitě, nahraďte __: v názvu nastavení název nastavení, aby se názvy správně přeložily.
Například AzureSignalRConnectionString:serviceUri.
Nastavení více koncových bodů
Můžete také nakonfigurovat více koncových bodů a zadat nastavení identity pro každý koncový bod.
V tomto případě zadejte předponu nastavení .Azure__SignalR__Endpoints__{endpointName} Jedná se {endpointName} o libovolný název přiřazený k přidružení skupiny nastavení ke koncovému bodu služby. Předponu Azure__SignalR__Endpoints__{endpointName} nelze přizpůsobit podle connectionStringSetting vlastnosti.
| Vlastnost | Šablona proměnné prostředí | Popis | Povinní účastníci | Příklad hodnoty |
|---|---|---|---|---|
| Identifikátor URI služby | Azure__SignalR__Endpoints__{endpointName}__serviceUri |
Identifikátor URI vašeho koncového bodu služby. Pokud nakonfigurujete pouze identifikátor URI služby, rozšíření by se pokusila použít typ DefaultAzureCredential k ověření ve službě. | Ano | https://mysignalrsevice1.service.signalr.net |
| Typ koncového bodu | Azure__SignalR__Endpoints__{endpointName}__type |
Určuje, jestli je koncový bod služby primární nebo sekundární. Pokud není zadáno, výchozí hodnota Primaryje . Platné hodnoty jsou Primary a Secondarynerozlišují malá a velká písmena. |
Ne | Secondary |
| Přihlašovací údaje tokenu | Azure__SignalR__Endpoints__{endpointName}__credential |
Definuje způsob získání tokenu pro připojení. Toto nastavení by mělo být nastavené, managedidentity pokud vaše nasazená funkce Azure Functions hodlá používat ověřování spravované identity. Tato hodnota je platná pouze v případě, že je spravovaná identita dostupná v hostitelském prostředí. |
Ne | Spravovaná identita |
| ID klienta | Azure__SignalR__Endpoints__{endpointName}__clientId |
Pokud credential je nastavena managedidentityna hodnotu , lze tuto vlastnost nastavit tak, aby určila identitu přiřazenou uživatelem, která se má použít při získávání tokenu. Vlastnost přijímá ID klienta odpovídající identitě přiřazené uživatelem přiřazené aplikaci. Není platné zadat ID prostředku i ID klienta. Pokud není zadána, použije se identita přiřazená systémem. Tato vlastnost se v místních vývojových scénářích používá odlišně, pokud credential by neměla být nastavena. |
Ne | 00000000-0000-0000-0000-000000000000 |
| ID zdroje | Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId |
Pokud credential je nastavena managedidentityna hodnotu , může být tato vlastnost nastavena pro zadání identifikátoru prostředku, který se má použít při získání tokenu. Vlastnost přijímá identifikátor prostředku odpovídající ID prostředku uživatelem definované spravované identity. Není platné zadat ID prostředku i ID klienta. Pokud není zadána žádná, použije se identita přiřazená systémem. Tato vlastnost se v místních vývojových scénářích používá odlišně, pokud credential by neměla být nastavena. |
Ne | /subscriptions/0000000-0000-0000-0000-00000000000/resourceGroups/myrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myusermanagedidentity |
Další informace o několika koncových bodech najdete v tématu Škálování služby SignalR s více instancemi.
Pro zajištění optimálního zabezpečení by vaše aplikace funkcí měla používat spravované identity při připojování ke službě Azure SignalR místo připojovacího řetězce, který obsahuje sdílený tajný klíč. Další informace najdete v tématu Autorizace požadavků na prostředky služby Azure SignalR Service s využitím spravovaných identit Microsoft Entra.
Další kroky
Podrobnosti o tom, jak nakonfigurovat a používat službu SignalR a Azure Functions společně, najdete v tématu Vývoj a konfigurace služby Azure Functions pomocí služby Azure SignalR.