Echtzeit-Apps mit Azure SignalR Service und Azure Functions

Mit Azure SignalR Services in Kombination mit Azure Functions können Sie Echtzeit-Messaging-Web-Apps in einer serverlosen Umgebung ausführen. Dieser Artikel enthält eine Übersicht darüber, wie die Dienste zusammenarbeiten.

Azure SignalR Service und Azure Functions sind beide vollständig verwaltete, hochgradig skalierbare Dienste, mit denen Sie sich auf das Erstellen von Anwendungen konzentrieren können, anstatt die Infrastruktur zu verwalten. Es ist üblich, die beiden Dienste zusammen zu verwenden, um Echtzeitkommunikation in einer serverlosen Umgebung bereitzustellen.

Integrieren von Echtzeitkommunikation in Azure-Dienste

Mit dem Azure Functions-Dienst können Sie Code in mehreren Sprachen schreiben, einschließlich JavaScript, Python, C# und Java, die jedes Mal auslösen, wenn Ereignisse in der Cloud auftreten. Beispiele für diese Ereignisse sind:

  • HTTP- und Webhookanforderungen
  • Periodische Timer
  • Ereignisse aus Azure-Diensten, z. B.:
    • Event Grid
    • Event Hubs
    • Service Bus
    • Azure Cosmos DB-Änderungsfeed
    • Speicherblobs und Warteschlangen
    • Logic Apps-Connector wie Salesforce und SQL Server

Indem Sie Azure Functions verwenden, um diese Ereignisse in den Azure SignalR-Dienst zu integrieren, haben Sie die Möglichkeit, Tausende von Clients zu benachrichtigen, wenn Ereignisse auftreten.

Einige gängige Szenarien für serverloses Messaging in Echtzeit, die Sie mit Azure Functions und dem SignalR-Dienst implementieren können, sind unter anderem:

  • Visualisieren Sie die IoT-Gerätetelemetrie auf einem Echtzeit-Dashboard oder einer Karte.
  • Aktualisieren von Daten in einer Anwendung, wenn Dokumente in Azure Cosmos DB aktualisiert werden.
  • Senden Von In-App-Benachrichtigungen, wenn neue Bestellungen in Salesforce erstellt werden.

Bindungen des SignalR-Diensts für Azure Functions

Die Bindungen des SignalR-Diensts für Azure Functions ermöglichen es einer Azure Functions-App, Nachrichten für Clients zu veröffentlichen, die mit dem SignalR-Dienst verbunden sind. Clients können eine Verbindung mit dem Dienst über ein SignalR-Client-SDK herstellen, das in .NET, JavaScript und Java verfügbar ist. Weitere Sprachen folgen in Kürze.

Ein Beispielszenario

Ein Beispiel für die Verwendung der Bindungen in SignalR Service ist die Verwendung von Azure Functions für die Integration in Azure Cosmos DB und SignalR Service, um Echtzeitnachrichten zu senden, wenn neue Ereignisse in einem Azure Cosmos DB-Änderungsfeed auftreten.

Azure Cosmos DB, Azure Functions, SignalR Service

  1. In einer Azure Cosmos DB-Auflistung wird eine Änderung vorgenommen.
  2. Das Änderungsereignis wird an den Azure Cosmos DB-Änderungsfeed weitergegeben.
  3. Eine Azure Functions wird durch das Änderungsereignis mithilfe des Azure Cosmos DB-Triggers ausgelöst.
  4. Die SignalR Service-Ausgabebindung veröffentlicht eine Nachricht an den SignalR-Dienst.
  5. Der SignalR-Dienst veröffentlicht die Nachricht für alle verbundenen Clients.

Authentifizierung und Benutzer

Mit dem SignalR-Dienst können Sie Nachrichten an alle oder eine Teilmenge von Clients übertragen, z. B. solche, die einem einzelnen Benutzer angehören. Sie können die SignalR-Dienstbindungen für Azure-Funktionen mit app Service-Authentifizierung kombinieren, um Benutzer mit Anbietern wie Microsoft Entra ID, Facebook und Twitter zu authentifizieren. Sie können dann Nachrichten direkt an diese authentifizierten Benutzer senden.

Nächste Schritte

Vollständige Details zur kombinierten Verwendung von Azure Functions und SignalR Service finden Sie in den folgenden Ressourcen:

Informationen zum Testen der SignalR-Dienstbindungen für Azure-Funktionen finden Sie unter: