SignalR-servicebindingen voor Azure Functions
In deze reeks artikelen wordt uitgelegd hoe u realtime berichten verifieert en verzendt naar clients die zijn verbonden met Azure SignalR Service met behulp van SignalR Service-bindingen in Azure Functions. Azure Functions-runtimeversie 2.x en hoger ondersteunt invoer- en uitvoerbindingen voor SignalR Service.
Actie | Type |
---|---|
Berichten van SignalR Service verwerken | Triggerbinding |
De URL en het toegangstoken van het service-eindpunt retourneren | Invoerbinding |
SignalR Service-berichten verzenden en groepen beheren | Uitvoerbinding |
De extensie installeren
Het NuGet-extensiepakket dat u installeert, is afhankelijk van de C#-modus die u gebruikt in uw functie-app:
Functies worden uitgevoerd in een geïsoleerd C#-werkproces. Zie De handleiding voor het uitvoeren van C# Azure Functions in een geïsoleerd werkproces voor meer informatie.
Voeg de extensie toe aan uw project door dit NuGet-pakket te installeren.
Bundel installeren
De SignalR Service-extensie maakt deel uit van een extensiebundel, die is opgegeven in uw host.json projectbestand. Wanneer u een project maakt dat is gericht op versie 3.x of hoger, moet deze bundel al zijn geïnstalleerd. Zie uitbreidingsbundel voor meer informatie.
Afhankelijkheid toevoegen
Als u de SignalR Service-aantekeningen in Java-functies wilt gebruiken, moet u een afhankelijkheid toevoegen aan het artefact azure-functions-java-library-signalr (versie 1.0 of hoger) aan uw pom.xml-bestand .
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-signalr</artifactId>
<version>1.0.0</version>
</dependency>
Connecties
U kunt verbindingsreeks of Microsoft Entra-identiteit gebruiken om verbinding te maken met Azure SignalR Service.
Connection string
Zie Verbindingsreeksen in Azure SignalR Service voor instructies voor het ophalen van de verbindingsreeks voor uw Azure SignalR-service
Deze verbindingsreeks moet worden opgeslagen in een toepassingsinstelling met een naamAzureSignalRConnectionString
. U kunt de naam van de toepassingsinstelling aanpassen met de connectionStringSetting
eigenschap van de bindingsconfiguratie.
Op identiteit gebaseerde verbindingen
Als u versie 1.7.0 of hoger gebruikt in plaats van een verbindingsreeks met een geheim te gebruiken, kunt u de app een Microsoft Entra-identiteit laten gebruiken.
Allereerst moet u ervoor zorgen dat uw Microsoft Entra-identiteit de rol SignalR-service-eigenaar heeft.
Vervolgens definieert u instellingen met een gemeenschappelijk voorvoegsel AzureSignalRConnectionString
. U kunt de naam van het voorvoegsel aanpassen met de connectionStringSetting
eigenschap van de bindingsconfiguratie.
In deze modus bevatten de instellingen de volgende items:
Eigenschappen | Sjabloon voor omgevingsvariabele | Beschrijving | Vereist | Voorbeeldwaarde |
---|---|---|---|---|
Service-URI | AzureSignalRConnectionString__serviceUri |
De URI van uw service-eindpunt. Wanneer u alleen 'Service-URI' configureert, proberen de extensies het type DefaultAzureCredential te gebruiken om te verifiëren bij de service. | Ja | https://mysignalrsevice.service.signalr.net |
Tokenreferenties | AzureSignalRConnectionString__credential |
Hiermee definieert u hoe een token moet worden verkregen voor de verbinding. Deze instelling moet worden ingesteld managedidentity op als uw geïmplementeerde Azure-functie van plan is om verificatie van beheerde identiteiten te gebruiken. Deze waarde is alleen geldig wanneer een beheerde identiteit beschikbaar is in de hostingomgeving. |
Nee | managedidentity |
Client ID | AzureSignalRConnectionString__clientId |
Wanneer credential deze eigenschap is ingesteld managedidentity op, kan deze eigenschap worden ingesteld om de door de gebruiker toegewezen identiteit op te geven die moet worden gebruikt bij het verkrijgen van een token. De eigenschap accepteert een client-id die overeenkomt met een door de gebruiker toegewezen identiteit die aan de toepassing is toegewezen. Het is ongeldig om zowel een resource-id als een client-id op te geven. Als dit niet is opgegeven, wordt de door het systeem toegewezen identiteit gebruikt. Deze eigenschap wordt anders gebruikt in lokale ontwikkelscenario's, wanneer credential deze niet moeten worden ingesteld. |
Nee | 00000000-0000-0000-0000-000000000000 |
Resource-id | AzureSignalRConnectionString__managedIdentityResourceId |
Wanneer credential deze eigenschap is ingesteld managedidentity op, kan deze eigenschap worden ingesteld om de resource-id op te geven die moet worden gebruikt bij het verkrijgen van een token. De eigenschap accepteert een resource-id die overeenkomt met de resource-id van de door de gebruiker gedefinieerde beheerde identiteit. Het is ongeldig om zowel een resource-id als een client-id op te geven. Als er geen van beide zijn opgegeven, wordt de door het systeem toegewezen identiteit gebruikt. Deze eigenschap wordt anders gebruikt in lokale ontwikkelscenario's, wanneer credential deze niet moeten worden ingesteld. |
Nee | /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/mygroup/providers/Microsoft.SignalRService/SignalR/mysignalrservice |
Notitie
Wanneer u local.settings.json
het bestand lokaal gebruikt, Azure-app Configuratie of Key Vault om instellingen voor op identiteit gebaseerde verbindingen te bieden, vervangt __
:
u door in de naam van de instelling om ervoor te zorgen dat namen correct worden omgezet.
Bijvoorbeeld: AzureSignalRConnectionString:serviceUri
.
Instelling voor meerdere eindpunten
U kunt ook meerdere eindpunten configureren en identiteitsinstellingen per eindpunt opgeven.
In dit geval moet u uw instellingen vooraf laten gaan door Azure__SignalR__Endpoints__{endpointName}
. Dit {endpointName}
is een willekeurige naam die door u is toegewezen om een groep instellingen te koppelen aan een service-eindpunt. Het voorvoegsel Azure__SignalR__Endpoints__{endpointName}
kan niet worden aangepast per connectionStringSetting
eigenschap.
Eigenschappen | Sjabloon voor omgevingsvariabele | Beschrijving | Vereist | Voorbeeldwaarde |
---|---|---|---|---|
Service-URI | Azure__SignalR__Endpoints__{endpointName}__serviceUri |
De URI van uw service-eindpunt. Wanneer u alleen 'Service-URI' configureert, proberen de extensies het type DefaultAzureCredential te gebruiken om te verifiëren bij de service. | Ja | https://mysignalrsevice1.service.signalr.net |
Eindpunttype | Azure__SignalR__Endpoints__{endpointName}__type |
Geeft aan of het service-eindpunt primair of secundair is. Als dit niet is opgegeven, wordt deze standaard ingesteld op Primary . Geldige waarden zijn Primary en Secondary , hoofdlettergevoelig. |
Nee | Secondary |
Tokenreferenties | Azure__SignalR__Endpoints__{endpointName}__credential |
Hiermee definieert u hoe een token moet worden verkregen voor de verbinding. Deze instelling moet worden ingesteld managedidentity op als uw geïmplementeerde Azure-functie van plan is om verificatie van beheerde identiteiten te gebruiken. Deze waarde is alleen geldig wanneer een beheerde identiteit beschikbaar is in de hostingomgeving. |
Nee | managedidentity |
Client ID | Azure__SignalR__Endpoints__{endpointName}__clientId |
Wanneer credential deze eigenschap is ingesteld managedidentity op, kan deze eigenschap worden ingesteld om de door de gebruiker toegewezen identiteit op te geven die moet worden gebruikt bij het verkrijgen van een token. De eigenschap accepteert een client-id die overeenkomt met een door de gebruiker toegewezen identiteit die aan de toepassing is toegewezen. Het is ongeldig om zowel een resource-id als een client-id op te geven. Als dit niet is opgegeven, wordt de door het systeem toegewezen identiteit gebruikt. Deze eigenschap wordt anders gebruikt in lokale ontwikkelscenario's, wanneer credential deze niet moeten worden ingesteld. |
Nee | 00000000-0000-0000-0000-000000000000 |
Resource-id | Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId |
Wanneer credential deze eigenschap is ingesteld managedidentity op, kan deze eigenschap worden ingesteld om de resource-id op te geven die moet worden gebruikt bij het verkrijgen van een token. De eigenschap accepteert een resource-id die overeenkomt met de resource-id van de door de gebruiker gedefinieerde beheerde identiteit. Het is ongeldig om zowel een resource-id als een client-id op te geven. Als er geen van beide zijn opgegeven, wordt de door het systeem toegewezen identiteit gebruikt. Deze eigenschap wordt anders gebruikt in lokale ontwikkelscenario's, wanneer credential deze niet moeten worden ingesteld. |
Nee | /subscriptions/00000000-0000-0000-000000000000/resourceGroups/myrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myusermanagedidentity |
Zie SignalR-service schalen met meerdere exemplaren voor meer informatie over meerdere eindpunten
Volgende stappen
Raadpleeg azure Functions-ontwikkeling en -configuratie met Azure SignalR Service voor meer informatie over het configureren en gebruiken van SignalR Service en Azure Functions.