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å managedidentity kan 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å managedidentity kan 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å managedidentity kan 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å managedidentity kan 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.