Azure SignalR Service 및 Azure Functions를 사용한 실시간 앱

Azure Functions와 결합된 Azure SignalR Services를 사용하면 서버리스 환경에서 실시간 메시징 웹앱을 실행할 수 있습니다. 이 문서에서는 서비스가 함께 작동하는 방식에 대한 개요를 제공합니다.

Azure SignalR Service와 Azure Functions는 둘 다 완전 관리형 서비스이며 인프라를 관리하는 대신 애플리케이션 빌드에 집중이 가능한 확장성이 높은 서비스입니다. 서버리스 환경에서 두 가지 서비스를 함께 사용하여 실시간 통신을 제공하는 것이 일반적입니다.

Azure 서비스를 통해 실시간 통신 통합

Azure Functions 서비스를 사용하면 JavaScript, C #, Python, Java를 비롯한 여러 가지 언어로 코드를 작성하여 클라우드에서 이벤트가 발생할 때마다 트리거 할 수 있습니다. 이러한 이벤트의 예는 다음과 같습니다.

  • HTTP 및 웹후크 요청
  • 주기적 타이머
  • 다음과 같은 Azure 서비스의 이벤트:
    • Event Grid
    • Event Hubs
    • Service Bus
    • Azure Cosmos DB 변경 피드
    • Storage - Blob 및 큐
    • Salesforce 및 SQL Server와 같은 Logic Apps 커넥터

Azure Functions를 사용하여 이러한 이벤트를 Azure SignalR Service와 통합하면, 이벤트가 발생할 때마다 수천 명의 고객에게 알릴 수 있습니다.

Azure Functions 및 SignalR Service로 구현할 수 있는 실시간 서버리스 메시징의 일반적인 시나리오는 다음과 같습니다.

  • 실시간 대시보드 또는 지도에 IoT 디바이스 원격 분석 데이터 시각화
  • Azure Cosmos DB에서 문서가 업데이트되면 애플리케이션의 데이터 업데이트
  • Salesforce에서 새 주문이 생성되면 앱 내 알림 보내기

Azure Functions의 SignalR Service 바인딩

Azure Functions용 SignalR Service 바인딩을 통해 Azure 함수 앱이 SignalR Service에 연결된 클라이언트에 메시지를 게시할 수 있습니다. 클라이언트는 .NET, JavaScript 및 Java에서 사용할 수 있는 SignalR 클라이언트 SDK를 사용하여 서비스에 연결할 수 있으며 더 많은 언어에서 곧 제공 될 예정입니다.

예제 시나리오

SignalR Service 바인딩을 사용하는 방법의 예에는 Azure Functions를 사용하여 Azure Cosmos DB 및 SignalR Service와 통합하여 Azure Cosmos DB 변경 피드에 새로운 이벤트가 나타날 때 실시간 메시지를 전송하는 것입니다.

Azure Cosmos DB, Azure Functions, SignalR Service

  1. Azure Cosmos DB 컬렉션에서 변경 발생
  2. 변경 이벤트가 Azure Cosmos DB 변경 피드로 전파
  3. Azure Cosmos DB 트리거를 사용하여 변경 이벤트에 의해 Azure Functions 트리거
  4. SignalR Service 출력 바인딩이 SignalR Service에 메시지 게시
  5. SignalR Service에서 연결된 모든 클라이언트에 메시지 게시

인증 및 사용자

SignalR Service를 사용하면 모든 클라이언트 또는 일부 클라이언트(예: 단일 사용자에 속하는 하위 집합)에 메시지를 브로드캐스트할 수 있습니다. Azure Functions에 대한 SignalR Service 바인딩을 App Service 인증과 바인딩하여 Microsoft Entra ID, Facebook 및 Twitter와 같은 공급자를 통해 사용자를 인증할 수 있습니다. 그런 다음 이렇게 인증된 사용자에게 메시지를 직접 보낼 수 있습니다.

다음 단계

Azure Functions 및 SignalR Service를 함께 사용하는 방법에 대한 자세한 내용은 다음 리소스를 참조하세요.

Azure Functions에 대해 SignalR Service 바인딩을 사용해 보려면 다음을 참조하세요.