Dela via


SignalR Service-bindningar för Azure Functions

Den här uppsättningen artiklar beskriver hur du autentiserar och skickar realtidsmeddelanden till klienter som är anslutna till Azure SignalR Service med hjälp av SignalR Service-bindningar i Azure Functions. Azure Functions runtime version 2.x och senare stöder indata- och utdatabindningar för SignalR Service.

Åtgärd Typ
Hantera meddelanden från SignalR Service Utlösarbindning
Returnera tjänstens slutpunkts-URL och åtkomsttoken Indatabindning
Skicka SignalR Service-meddelanden och hantera grupper Utdatabindning

Installera tillägget

Vilket NuGet-tilläggspaket du installerar beror på vilket C#-läge du använder i funktionsappen:

Funktioner körs i en isolerad C#-arbetsprocess. Mer information finns i Guide för att köra C# Azure Functions i en isolerad arbetsprocess.

Lägg till tillägget i projektet genom att installera det här NuGet-paketet.

Installera paket

SignalR Service-tillägget är en del av ett tilläggspaket som anges i din host.json projektfil. När du skapar ett projekt som är avsett för version 3.x eller senare bör du redan ha det här paketet installerat. Mer information finns i tilläggspaketet.

Lägg till beroende

Om du vill använda SignalR Service-anteckningar i Java-funktioner måste du lägga till ett beroende till artefakten azure-functions-java-library-signalr (version 1.0 eller senare) i din pom.xml-fil .

<dependency>
    <groupId>com.microsoft.azure.functions</groupId>
    <artifactId>azure-functions-java-library-signalr</artifactId>
    <version>1.0.0</version>
</dependency>

anslutningar

Du kan använda anslutningssträng eller Microsoft Entra-identitet för att ansluta till Azure SignalR Service.

Connection string

Anvisningar om hur du hämtar anslutningssträng för Azure SignalR Service finns i Anslutningssträngar i Azure SignalR Service

Den här anslutningssträng ska lagras i en programinställning med namnet AzureSignalRConnectionString. Du kan anpassa namnet på programinställningen connectionStringSetting med egenskapen för bindningskonfigurationen.

Identitetsbaserade anslutningar

Om du använder version 1.7.0 eller senare kan du i stället för att använda en anslutningssträng med en hemlighet låta appen använda en Microsoft Entra-identitet.

Först och främst bör du se till att din Microsoft Entra-identitet har rollen SignalR Service-ägare.

Sedan skulle du definiera inställningar med ett vanligt prefix AzureSignalRConnectionString. Du kan anpassa prefixnamnet med connectionStringSetting egenskapen för bindningskonfigurationen.

I det här läget innehåller inställningarna följande objekt:

Property Miljövariabelmall beskrivning Obligatoriskt Exempelvärde
Tjänst-URI AzureSignalRConnectionString__serviceUri URI:n för tjänstslutpunkten. När du bara konfigurerar "Tjänst-URI" försöker tilläggen använda standardtypenAzureCredential för att autentisera med tjänsten. Ja https://mysignalrsevice.service.signalr.net
Tokenautentiseringsuppgifter AzureSignalRConnectionString__credential Definierar hur en token ska hämtas för anslutningen. Den här inställningen ska anges till managedidentity om din distribuerade Azure-funktion avser att använda hanterad identitetsautentisering. Det här värdet är endast giltigt när en hanterad identitet är tillgänglig i värdmiljön. Nej managedIdentity
Client ID AzureSignalRConnectionString__clientId När credential är inställt på managedidentitykan den här egenskapen anges för att ange den användartilldelade identitet som ska användas när du hämtar en token. Egenskapen accepterar ett klient-ID som motsvarar en användartilldelad identitet som tilldelats programmet. Det är ogiltigt att ange både ett resurs-ID och ett klient-ID. Om det inte anges används den systemtilldelade identiteten. Den här egenskapen används på olika sätt i lokala utvecklingsscenarier, när credential bör inte anges. Nej 00000000-0000-0000-0000-000000000000
Resurs-ID AzureSignalRConnectionString__managedIdentityResourceId När credential är inställt på managedidentitykan den här egenskapen anges för att ange den resursidentifierare som ska användas när du hämtar en token. Egenskapen accepterar en resursidentifierare som motsvarar resurs-ID:t för den användardefinierade hanterade identiteten. Det är ogiltigt att ange både ett resurs-ID och ett klient-ID. Om ingen av dem anges används den systemtilldelade identiteten. Den här egenskapen används på olika sätt i lokala utvecklingsscenarier, när credential bör inte anges. Nej /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup/providers/Microsoft.SignalRService/SignalR/mysignalrservice

Kommentar

När du använder local.settings.json filen lokalt, Azure App Configuration eller Key Vault för att ange inställningar för identitetsbaserade anslutningar ersätter __ du med : i inställningsnamnet för att säkerställa att namnen matchas korrekt.

Exempel: AzureSignalRConnectionString:serviceUri

Inställning för flera slutpunkter

Du kan också konfigurera flera slutpunkter och ange identitetsinställningar per slutpunkt.

I det här fallet prefixar du inställningarna med Azure__SignalR__Endpoints__{endpointName}. {endpointName} är ett godtyckligt namn som tilldelats av dig för att associera en grupp med inställningar till en tjänstslutpunkt. Prefixet Azure__SignalR__Endpoints__{endpointName} kan inte anpassas efter connectionStringSetting egenskap.

Property Miljövariabelmall beskrivning Obligatoriskt Exempelvärde
Tjänst-URI Azure__SignalR__Endpoints__{endpointName}__serviceUri URI:n för tjänstslutpunkten. När du bara konfigurerar "Tjänst-URI" försöker tilläggen använda standardtypenAzureCredential för att autentisera med tjänsten. Ja https://mysignalrsevice1.service.signalr.net
Typ av slutpunkt Azure__SignalR__Endpoints__{endpointName}__type Anger om tjänstslutpunkten är primär eller sekundär. Om det inte anges är standardvärdet Primary. Giltiga värden är Primary och Secondary, skiftlägesokänsliga. Nej Secondary
Tokenautentiseringsuppgifter Azure__SignalR__Endpoints__{endpointName}__credential Definierar hur en token ska hämtas för anslutningen. Den här inställningen ska anges till managedidentity om din distribuerade Azure-funktion avser att använda hanterad identitetsautentisering. Det här värdet är endast giltigt när en hanterad identitet är tillgänglig i värdmiljön. Nej managedIdentity
Client ID Azure__SignalR__Endpoints__{endpointName}__clientId När credential är inställt på managedidentitykan den här egenskapen anges för att ange den användartilldelade identitet som ska användas när du hämtar en token. Egenskapen accepterar ett klient-ID som motsvarar en användartilldelad identitet som tilldelats programmet. Det är ogiltigt att ange både ett resurs-ID och ett klient-ID. Om det inte anges används den systemtilldelade identiteten. Den här egenskapen används på olika sätt i lokala utvecklingsscenarier, när credential bör inte anges. Nej 00000000-0000-0000-0000-000000000000
Resurs-ID Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId När credential är inställt på managedidentitykan den här egenskapen anges för att ange den resursidentifierare som ska användas när du hämtar en token. Egenskapen accepterar en resursidentifierare som motsvarar resurs-ID:t för den användardefinierade hanterade identiteten. Det är ogiltigt att ange både ett resurs-ID och ett klient-ID. Om ingen av dem anges används den systemtilldelade identiteten. Den här egenskapen används på olika sätt i lokala utvecklingsscenarier, när credential bör inte anges. Nej /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myusermanagedidentity

Mer information om flera slutpunkter finns i Skala SignalR Service med flera instanser

Nästa steg

Mer information om hur du konfigurerar och använder SignalR Service och Azure Functions tillsammans finns i Azure Functions utveckling och konfiguration med Azure SignalR Service.