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를 사용하여 서비스에 연결할 수 있으며 더 많은 언어에서 곧 제공 될 예정입니다.
예제 시나리오
Azure Functions를 사용하여 Azure Cosmos DB와 통합하는 것은 Azure Cosmos DB 변경 피드에 새 이벤트가 나타날 때 SignalR Service 바인딩을 활용하여 실시간 메시지를 보내는 예입니다.
- Azure Cosmos DB 컬렉션에서 변경 발생
- 변경 이벤트가 Azure Cosmos DB 변경 피드로 전파
- Azure Cosmos DB 트리거는 변경 이벤트에 대한 응답으로 Azure 함수를 활성화합니다.
- SignalR Service 출력 바인딩이 SignalR Service에 메시지 게시
- SignalR Service에서 연결된 모든 클라이언트에 메시지 게시
인증 및 사용자
SignalR Service를 사용하면 모든 클라이언트 또는 일부 클라이언트(예: 단일 사용자에 속하는 하위 집합)에 메시지를 브로드캐스트할 수 있습니다. Azure Functions의 SignalR Service 바인딩을 App Service 인증과 결합함으로써 Microsoft Entra ID, Facebook 및 X와 같은 공급자를 통해 사용자를 인증할 수 있습니다. 그런 다음, 이렇게 인증된 사용자에게 메시지를 직접 보낼 수 있습니다.
다음 단계
Azure Functions 및 SignalR Service를 함께 사용하는 방법에 대한 자세한 내용은 다음 리소스를 참조하세요.
- SignalR Service를 사용하여 Azure Functions 개발 및 구성
- Azure Functions 및 SignalR Service를 사용하여 웹 애플리케이션에서 자동 업데이트 사용
Azure Functions에 대해 SignalR Service 바인딩을 사용해 보려면 다음을 참조하세요.