Applications en temps réel avec Azure SignalR Service et Azure Functions

Azure SignalR Services combiné à Azure Functions vous permet d’exécuter des applications web de messagerie en temps réel dans un environnement serverless. Cet article fournit une vue d’ensemble de la façon dont les services fonctionnent ensemble.

Azure SignalR Service et Azure Functions sont tous deux des services entièrement managés et hautement évolutifs qui vous permettent de vous concentrer sur la création d’applications au lieu de gérer l’infrastructure. Il est courant d’utiliser les deux services ensemble pour fournir des communications en temps réel dans un environnement serverless .

Intégrer des communications en temps réel avec les services Azure

Le service Azure Functions vous permet d’écrire du code dans plusieurs langages, notamment JavaScript, Python, C# et Java qui se déclenche chaque fois que des événements se produisent dans le cloud. Voici des exemples d’événements :

  • Requêtes HTTP et de webhook
  • Minuteurs périodiques
  • Événements provenant de services Azure, tels que :
    • Event Grid
    • Event Hubs
    • Service Bus
    • Azure Cosmos DB - Flux de modification
    • Stockage des objets blob et des files d’attente
    • Connecteurs d’applications logiques, tels que Salesforce et SQL Server

En utilisant Azure Functions pour intégrer ces événements avec le service Azure SignalR, vous pouvez avertir des milliers de clients chaque fois que des événements se produisent.

Voici quelques scénarios courants pour la messagerie serverless en temps réel que vous pouvez implémenter avec Azure Functions et SignalR :

  • Visualisez les données de télémétrie des appareils IoT sur un tableau de bord ou une carte en temps réel.
  • Mettez à jour les données dans une application lorsque des documents sont mis à jour dans Azure Cosmos DB.
  • Envoyez des notifications dans l’application lorsque de nouvelles commandes sont créées dans Salesforce.

Liaisons de service SignalR pour Azure Functions

Les liaisons de service SignalR pour Azure Functions permettent à une application Azure Functions de publier des messages destinés aux clients connectés au service SignalR. Les clients peuvent se connecter au service à l’aide d’un kit de développement logiciel (SDK) client SignalR disponible en .NET, JavaScript et Java (d’autres langages seront bientôt disponibles).

Exemple de scénario

L’utilisation des liaisons de service SignalR consiste, par exemple, en une intégration d’Azure Functions avec Azure Cosmos DB et SignalR pour envoyer des messages en temps réel lorsque de nouveaux événements apparaissent dans un flux de modification Azure Cosmos DB.

Azure Cosmos DB, Azure Functions, SignalR Service

  1. Une modification est apportée dans une collection Azure Cosmos DB.
  2. L’événement de modification est propagé au flux de modification Azure Cosmos DB.
  3. Azure Functions est déclenché par l’événement de modification à l’aide du déclencheur Azure Cosmos DB.
  4. La liaison de sortie SignalR Service publie un message sur SignalR Service.
  5. SignalR Service publie le message sur tous les clients connectés.

Authentification et utilisateurs

SignalR Service vous permet de diffuser des messages vers tous ou un sous-ensemble de clients, tels que ceux appartenant à un seul utilisateur. Vous pouvez combiner les liaisons SignalR Service pour Azure Functions avec l’authentification App Service pour authentifier les utilisateurs avec des fournisseurs tels que Microsoft Entra ID, Facebook et Twitter. Vous pouvez alors envoyer des messages directement aux utilisateurs authentifiés.

Étapes suivantes

Pour plus d’informations sur l’utilisation d’Azure Functions et de SignalR Service ensemble, consultez les ressources suivantes :

Pour tester les liaisons SignalR Service pour Azure Functions, consultez :