Azure Functions의 SignalR Service 바인딩
이 문서 집합에서는 Azure Functions에서 SignalR Service 바인딩을 사용하여 Azure SignalR Service에 연결된 클라이언트에 실시간 메시지를 인증하고 보내는 방법을 설명합니다. Azure Functions 런타임 버전 2.x 이상은 SignalR Service에 대한 입출력 바인딩을 지원합니다.
작업 | Type |
---|---|
SignalR Service의 메시지 처리 | 트리거 바인딩 |
서비스 엔드포인트 URL 및 액세스 토큰 반환 | 입력 바인딩 |
SignalR Service 메시지 보내기 및 그룹 관리 | 출력 바인딩 |
확장 설치
설치하는 확장 NuGet 패키지는 함수 앱에서 사용 중인 C# 모드에 따라 다릅니다.
Functions는 격리된 C# 작업자 프로세스에서 실행됩니다. 자세한 내용은 격리된 작업자 프로세스에서 C# Azure Functions 실행 가이드를 참조하세요.
이 NuGet 패키지를 설치하여 프로젝트에 확장을 추가합니다.
번들 설치
SignalR Service 확장은 host.json 프로젝트 파일에 지정된 확장 번들의 일부입니다. 버전 3.x 이상을 대상으로 하는 프로젝트를 만들 때 이 번들이 이미 설치되어 있어야 합니다. 자세한 내용은 확장 번들을 참조하세요.
종속성 추가
Java 함수에서 SignalR Service 주석을 사용하려면 azure-functions-java-library-signalr 아티팩트(버전 1.0 이상)에 종속성을 pom.xml 파일에 추가해야 합니다.
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-signalr</artifactId>
<version>1.0.0</version>
</dependency>
연결
연결 문자열 또는 Microsoft Entra ID를 사용하여 Azure SignalR Service에 연결할 수 있습니다.
Connection string
Azure SignalR Service에 대한 연결 문자열 검색하는 방법에 대한 지침은 Azure SignalR Service의 연결 문자열을 참조하세요.
이 연결 문자열 이름을 AzureSignalRConnectionString
가진 애플리케이션 설정에 저장해야 합니다. 바인딩 구성의 속성을 사용하여 애플리케이션 설정 이름을 connectionStringSetting
사용자 지정할 수 있습니다.
ID 기반 연결
버전 1.7.0 이상을 사용하는 경우 비밀과 함께 연결 문자열 사용하는 대신 앱에서 Microsoft Entra ID를 사용하도록 할 수 있습니다.
우선 Microsoft Entra ID에 SignalR 서비스 소유자 역할이 있는지 확인해야 합니다.
그런 다음, 공통 접두사를 사용하여 설정을 정의합니다 AzureSignalRConnectionString
. 바인딩 구성의 속성을 사용하여 connectionStringSetting
접두사 이름을 사용자 지정할 수 있습니다.
이 모드에서는 설정에 다음 항목이 포함됩니다.
속성 | 환경 변수 템플릿 | 설명 | 필수 | 예제 값 |
---|---|---|---|---|
서비스 URI | AzureSignalRConnectionString__serviceUri |
서비스 엔드포인트의 URI입니다. "서비스 URI"만 구성하는 경우 확장은 DefaultAzureCredential 형식을 사용하여 서비스를 인증하려고 합니다. | 예 | https://mysignalrsevice.service.signalr.net |
토큰 자격 증명 | AzureSignalRConnectionString__credential |
연결을 위해 토큰을 가져오는 방법을 정의합니다. 배포된 Azure Function이 관리 ID 인증을 사용하려는 경우 이 설정을 managedidentity 로 설정해야 합니다. 이 값은 호스팅 환경에서 관리 ID를 사용할 수 있는 경우에만 유효합니다. |
아니요 | managedidentity |
클라이언트 ID | AzureSignalRConnectionString__clientId |
credential 이 managedidentity 로 설정된 경우 이 속성은 토큰을 가져올 때 사용할 사용자가 할당한 ID를 지정하도록 설정할 수 있습니다. 속성은 애플리케이션에 할당된 사용자가 할당한 ID에 해당하는 클라이언트 ID를 허용합니다. 리소스 ID와 클라이언트 ID를 모두 지정하는 것은 유효하지 않습니다. 지정하지 않으면 시스템 할당 ID가 사용됩니다. 이 속성은 이 설정되지 않아야 하는 로컬 개발 시나리오credential 에서 다르게 사용됩니다. |
아니요 | 00000000-0000-0000-0000-000000000000 |
리소스 ID | AzureSignalRConnectionString__managedIdentityResourceId |
credential 이 managedidentity 로 설정된 경우 이 속성은 토큰을 가져올 때 사용할 리소스 식별자를 지정하도록 설정할 수 있습니다. 속성은 사용자 정의 관리 ID의 리소스 ID에 해당하는 리소스 식별자를 허용합니다. 리소스 ID와 클라이언트 ID를 모두 지정하는 것은 유효하지 않습니다. 둘 다 지정하지 않으면 시스템 할당 ID가 사용됩니다. 이 속성은 이 설정되지 않아야 하는 로컬 개발 시나리오credential 에서 다르게 사용됩니다. |
아니요 | /subscriptions/000000000-0000-0000-0000000000000/resourceGroups/mygroup/providers/Microsoft.SignalRService/SignalR/mysignalrservice |
참고 항목
로컬, Azure 앱 구성 또는 Key Vault에서 파일을 사용하여 local.settings.json
ID 기반 연결에 대한 설정을 제공하는 경우 이름이 올바르게 확인되도록 설정 이름으로 바꿉 __
:
니다.
예들 들어 AzureSignalRConnectionString:serviceUri
입니다.
여러 엔드포인트 설정
여러 엔드포인트를 구성하고 엔드포인트당 ID 설정을 지정할 수도 있습니다.
이 경우 설정을 접두사로 Azure__SignalR__Endpoints__{endpointName}
하십시오. 설정 {endpointName}
그룹을 서비스 엔드포인트에 연결하기 위해 사용자가 할당한 임의의 이름입니다. 속성으로는 접두사를 Azure__SignalR__Endpoints__{endpointName}
사용자 지정할 connectionStringSetting
수 없습니다.
속성 | 환경 변수 템플릿 | 설명 | 필수 | 예제 값 |
---|---|---|---|---|
서비스 URI | Azure__SignalR__Endpoints__{endpointName}__serviceUri |
서비스 엔드포인트의 URI입니다. "서비스 URI"만 구성하는 경우 확장은 DefaultAzureCredential 형식을 사용하여 서비스를 인증하려고 합니다. | 예 | https://mysignalrsevice1.service.signalr.net |
엔드포인트 유형 | Azure__SignalR__Endpoints__{endpointName}__type |
서비스 엔드포인트가 기본 또는 보조 엔드포인트인지 여부를 나타냅니다. 지정하지 않으면 기본값인 Primary 로 설정됩니다. 유효한 값은 Primary 및 Secondary 이며 대/소문자를 구분하지 않습니다. |
아니요 | Secondary |
토큰 자격 증명 | Azure__SignalR__Endpoints__{endpointName}__credential |
연결을 위해 토큰을 가져오는 방법을 정의합니다. 배포된 Azure Function이 관리 ID 인증을 사용하려는 경우 이 설정을 managedidentity 로 설정해야 합니다. 이 값은 호스팅 환경에서 관리 ID를 사용할 수 있는 경우에만 유효합니다. |
아니요 | managedidentity |
클라이언트 ID | Azure__SignalR__Endpoints__{endpointName}__clientId |
credential 이 managedidentity 로 설정된 경우 이 속성은 토큰을 가져올 때 사용할 사용자가 할당한 ID를 지정하도록 설정할 수 있습니다. 속성은 애플리케이션에 할당된 사용자가 할당한 ID에 해당하는 클라이언트 ID를 허용합니다. 리소스 ID와 클라이언트 ID를 모두 지정하는 것은 유효하지 않습니다. 지정하지 않으면 시스템 할당 ID가 사용됩니다. 이 속성은 이 설정되지 않아야 하는 로컬 개발 시나리오credential 에서 다르게 사용됩니다. |
아니요 | 00000000-0000-0000-0000-000000000000 |
리소스 ID | Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId |
credential 이 managedidentity 로 설정된 경우 이 속성은 토큰을 가져올 때 사용할 리소스 식별자를 지정하도록 설정할 수 있습니다. 속성은 사용자 정의 관리 ID의 리소스 ID에 해당하는 리소스 식별자를 허용합니다. 리소스 ID와 클라이언트 ID를 모두 지정하는 것은 유효하지 않습니다. 둘 다 지정하지 않으면 시스템 할당 ID가 사용됩니다. 이 속성은 이 설정되지 않아야 하는 로컬 개발 시나리오credential 에서 다르게 사용됩니다. |
아니요 | /subscriptions/00000000-0000-0000-00000000000000/resourceGroups/myrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myusermanagedidentity |
여러 엔드포인트에 대한 자세한 내용은 여러 인스턴스를 사용하여 SignalR Service 크기 조정을 참조 하세요.
다음 단계
SignalR Service와 Azure Functions를 함께 구성하고 사용하는 방법에 대한 자세한 내용은 Azure SignalR Service를 사용하여 Azure Functions 개발 및 구성을 참조하세요.