Aplicativos em tempo real com o Serviço do Azure SignalR e o Azure Functions

Os Serviços do Azure SignalR combinados com o Azure Functions permitem executar aplicativos Web de mensagens em tempo real em um ambiente sem servidor. Este artigo fornece uma visão geral de como os serviços funcionam juntos.

O Serviço Azure SignalR e o Azure Functions são serviços totalmente gerenciados e altamente escalonáveis que permitem que você se concentre na criação de aplicativos em vez de gerenciar a infraestrutura. É comum usar os dois serviços juntos para fornecer comunicações em tempo real em um ambiente sem servidor.

Integrar a comunicação em tempo real com os serviços do Azure

O serviço Azure Functions permite que você escreva código em várias linguagens, incluindo JavaScript, Python, C# e Java, que é acionado sempre que ocorrem eventos na nuvem. Exemplos desses eventos incluem:

  • Solicitações HTTP e webhook
  • Temporizadores periódicos
  • Eventos de serviços do Azure, como:
    • Grade de Eventos
    • Hubs de Eventos
    • Barramento de Serviço
    • Feed de alterações do Azure Cosmos DB
    • Blobs e filas de armazenamento
    • Conectores de Aplicativos Lógicos, como Salesforce e SQL Server

Usando o Azure Functions para integrar esses eventos ao Azure SignalR Service, você tem a capacidade de notificar milhares de clientes, sempre que ocorrem eventos.

Alguns cenários comuns para mensagens sem servidor em tempo real que você pode implementar com o Azure Functions e o SignalR Service incluem:

  • Visualize a telemetria do dispositivo IoT em um painel ou mapa em tempo real.
  • Atualizar dados em um aplicativo quando os documentos são atualizados no Azure Cosmos DB.
  • Envie notificações no aplicativo quando novos pedidos forem criados no Salesforce.

Associações do Serviço SignalR para o Azure Functions

As associações do SignalR Service ao Azure Functions permitem que um aplicativo de funções do Azure publique mensagens em clientes conectados ao SignalR Service. Os clientes podem se conectar ao serviço usando um SDK cliente do SignalR que está disponível em .NET, JavaScript e Java, com mais linguagens em breve.

Um cenário de exemplo

Um exemplo de como usar as associações do Serviço do SignalR é usar o Azure Functions para integrar ao Azure Cosmos DB e ao Serviço do SignalR para enviar mensagens em tempo real quando novos eventos forem exibidos em um feed de alterações do Azure Cosmos DB.

Azure Cosmos DB, Azure Functions, SignalR Service

  1. Uma alteração é feita em uma coleção do Azure Cosmos DB.
  2. O evento change é propagado para o feed de alterações do Azure Cosmos DB.
  3. Um Azure Functions é acionado pelo evento change usando o gatilho do Azure Cosmos DB.
  4. A associação de saída do Serviço SignalR publica uma mensagem no Serviço SignalR.
  5. O Serviço SignalR publica a mensagem para todos os clientes conectados.

Autenticação e os usuários

O Serviço SignalR permite que você transmita mensagens para todos ou um subconjunto de clientes, como aqueles pertencentes a um único usuário. Você pode combinar as ligações do Serviço SignalR para o Azure Functions com a autenticação do Serviço de Aplicativo para autenticar usuários com provedores como Microsoft Entra ID, Facebook e Twitter. Em seguida, você pode enviar mensagens diretamente para esses usuários autenticados.

Próximas etapas

Para obter detalhes completos sobre como usar o Azure Functions e o Serviço do SignalR juntos, acesse estes recursos:

Para experimentar as ligações do Serviço SignalR para o Azure Functions, consulte: