Partager via


Liaisons de service SignalR pour Azure Functions

Cet ensemble d’articles explique comment authentifier et envoyer des messages en temps réel aux clients connectés à Azure SignalR Service à l’aide des liaisons SignalR Service dans Azure Functions. Le runtime Azure Functions version 2.x et ultérieures prend en charge les liaisons d’entrée et de sortie pour le service SignalR.

Action Type
Prendre en charge les messages de SignalR Service Liaison de déclencheur
Retourner l’URL du point de terminaison de service et le jeton d’accès Liaison d’entrée
Envoyer des messages signalR Service et gérer des groupes Liaison de sortie

Installer l’extension

Le package NuGet de l’extension que vous installez dépend du mode C# que vous utilisez dans votre application de fonction :

Les fonctions s’exécutent dans un processus de travail C# isolé. Pour en savoir plus, consultez Guide pour l’exécution d’Azure Functions C# dans un processus Worker isolé.

Ajoutez l’extension à votre projet en installant ce package NuGet.

Installer le bundle

L’extension de service SignalR fait partie d’un pack d’extensions, qui est spécifié dans votre fichier projet host.json. Lorsque vous créez un projet qui cible la version 3.x ou une version ultérieure, ce pack doit déjà être installé. Pour plus d’informations, consultez le bundle d’extensions.

Ajouter une dépendance

Pour utiliser les annotations SignalR Service dans les fonctions Java, vous devez ajouter une dépendance à l’artefact azure-fonctions-java-bibliothèque-signalr (version 1.0 ou version ultérieure) à votre fichier pom.xml.

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

Connexions

Vous pouvez utiliser chaîne de connexion ou l’identité Microsoft Entra pour vous connecter à Azure SignalR Service.

Chaîne de connexion

Pour obtenir des instructions sur la récupération des chaîne de connexion pour votre service Azure SignalR, consultez les chaînes de connexion dans Azure SignalR Service

Cette chaîne de connexion doit être stockée dans un paramètre d’application portant un nomAzureSignalRConnectionString. Vous pouvez personnaliser le nom du paramètre d’application avec la connectionStringSetting propriété de la configuration de liaison.

Connexions basées sur l’identité

Si vous utilisez la version 1.7.0 ou ultérieure, au lieu d’utiliser un chaîne de connexion avec un secret, vous pouvez faire en sorte que l’application utilise une identité Microsoft Entra.

Tout d’abord, vous devez vous assurer que votre identité Microsoft Entra a le rôle Propriétaire du service SignalR.

Ensuite, vous définissez des paramètres avec un préfixe AzureSignalRConnectionStringcommun. Vous pouvez personnaliser le nom du préfixe avec la connectionStringSetting propriété de la configuration de liaison.

Dans ce mode, les paramètres incluent les éléments suivants :

Propriété Modèle de variable d’environnement Description Obligatoire Exemple de valeur
URI de service AzureSignalRConnectionString__serviceUri URI de votre point de terminaison de service. Lorsque vous configurez uniquement « URI de service », les extensions tentent d’utiliser le type DefaultAzureCredential pour s’authentifier auprès du service. Oui https://mysignalrsevice.service.signalr.net
Informations d’identification du jeton AzureSignalRConnectionString__credential Définit la façon dont un jeton doit être obtenu pour la connexion. Ce paramètre doit être défini sur managedidentity si votre fonction Azure déployée utilise l’authentification de l’identité managée. Cette valeur n’est valide que lorsqu’une identité managée est disponible dans l’environnement d’hébergement. Non managedidentity
ID client AzureSignalRConnectionString__clientId Lorsque credential a pour valeur managedidentity, cette propriété permet de spécifier l’identité attribuée par l’utilisateur qui doit être utilisée pour obtenir un jeton. La propriété accepte un ID client correspondant à une identité attribuée par l’utilisateur affectée à l’application. Il incorrect de spécifier à la fois un ID de la ressource et un ID client. Par défaut, l’identité affectée par le système est utilisée. Cette propriété est utilisée différemment dans des scénarios de développement local lorsque credential ne doit pas être défini. Non 00000000-0000-0000-0000-000000000000
ID de ressource AzureSignalRConnectionString__managedIdentityResourceId Lorsque credential a pour valeur managedidentity, cette propriété permet de spécifier l’identifiant de la ressource à utiliser lors de l’obtention d’un jeton. La propriété accepte un identifiant de ressource correspondant à l’ID de la ressource de l’identité managée définie par l’utilisateur. Il n’est pas correct de spécifier à la fois un ID de la ressource et un ID client. Si aucun des deux n’est spécifié, l’identifiant attribué par le système est utilisé. Cette propriété est utilisée différemment dans des scénarios de développement local lorsque credential ne doit pas être défini. Non /subscriptions/00000000-0000-0000-0000-00000000000/resourceGroups/mygroup/providers/Microsoft.SignalRService/SignalR/mysignalrservice

Remarque

Lorsque vous utilisez local.settings.json un fichier local, Azure App Configuration ou Key Vault pour fournir des paramètres pour les connexions basées sur l’identité, remplacez-le __ : dans le nom du paramètre pour vous assurer que les noms sont résolus correctement.

Par exemple : AzureSignalRConnectionString:serviceUri.

Paramètre de plusieurs points de terminaison

Vous pouvez également configurer plusieurs points de terminaison et spécifier les paramètres d’identité par point de terminaison.

Dans ce cas, préfixez vos paramètres avec Azure__SignalR__Endpoints__{endpointName}. Il {endpointName} s’agit d’un nom arbitraire attribué par vous pour associer un groupe de paramètres à un point de terminaison de service. Le préfixe Azure__SignalR__Endpoints__{endpointName} ne peut pas être personnalisé par connectionStringSetting propriété.

Propriété Modèle de variable d’environnement Description Obligatoire Exemple de valeur
URI de service Azure__SignalR__Endpoints__{endpointName}__serviceUri URI de votre point de terminaison de service. Lorsque vous configurez uniquement « URI de service », les extensions tentent d’utiliser le type DefaultAzureCredential pour s’authentifier auprès du service. Oui https://mysignalrsevice1.service.signalr.net
Type de point de terminaison Azure__SignalR__Endpoints__{endpointName}__type Indique si le point de terminaison de service est principal ou secondaire. S’il n’est pas spécifié, il est défini par défaut sur Primary. Les valeurs valides sont Primary et Secondary, indépendamment de la casse. Non Secondary
Informations d’identification du jeton Azure__SignalR__Endpoints__{endpointName}__credential Définit la façon dont un jeton doit être obtenu pour la connexion. Ce paramètre doit être défini sur managedidentity si votre fonction Azure déployée utilise l’authentification de l’identité managée. Cette valeur n’est valide que lorsqu’une identité managée est disponible dans l’environnement d’hébergement. Non managedidentity
ID client Azure__SignalR__Endpoints__{endpointName}__clientId Lorsque credential a pour valeur managedidentity, cette propriété permet de spécifier l’identité attribuée par l’utilisateur qui doit être utilisée pour obtenir un jeton. La propriété accepte un ID client correspondant à une identité attribuée par l’utilisateur affectée à l’application. Il incorrect de spécifier à la fois un ID de la ressource et un ID client. Par défaut, l’identité affectée par le système est utilisée. Cette propriété est utilisée différemment dans des scénarios de développement local lorsque credential ne doit pas être défini. Non 00000000-0000-0000-0000-000000000000
ID de ressource Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId Lorsque credential a pour valeur managedidentity, cette propriété permet de spécifier l’identifiant de la ressource à utiliser lors de l’obtention d’un jeton. La propriété accepte un identifiant de ressource correspondant à l’ID de la ressource de l’identité managée définie par l’utilisateur. Il n’est pas correct de spécifier à la fois un ID de la ressource et un ID client. Si aucun des deux n’est spécifié, l’identifiant attribué par le système est utilisé. Cette propriété est utilisée différemment dans des scénarios de développement local lorsque credential ne doit pas être défini. Non /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myusermanagedidentity

Pour plus d’informations sur plusieurs points de terminaison, consultez Scale SignalR Service avec plusieurs instances

Étapes suivantes

Pour plus d’informations sur la configuration et l’utilisation de SignalR Service et Azure Functions ensemble, reportez-vous à Développement et configuration Azure Functions avec Azure SignalR Service.