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 AzureSignalRConnectionString
commun. 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.