다음을 통해 공유


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 credentialmanagedidentity로 설정된 경우 이 속성은 토큰을 가져올 때 사용할 사용자가 할당한 ID를 지정하도록 설정할 수 있습니다. 속성은 애플리케이션에 할당된 사용자가 할당한 ID에 해당하는 클라이언트 ID를 허용합니다. 리소스 ID와 클라이언트 ID를 모두 지정하는 것은 유효하지 않습니다. 지정하지 않으면 시스템 할당 ID가 사용됩니다. 이 속성은 이 설정되지 않아야 하는 로컬 개발 시나리오credential에서 다르게 사용됩니다. 아니요 00000000-0000-0000-0000-000000000000
리소스 ID AzureSignalRConnectionString__managedIdentityResourceId credentialmanagedidentity로 설정된 경우 이 속성은 토큰을 가져올 때 사용할 리소스 식별자를 지정하도록 설정할 수 있습니다. 속성은 사용자 정의 관리 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로 설정됩니다. 유효한 값은 PrimarySecondary이며 대/소문자를 구분하지 않습니다. 아니요 Secondary
토큰 자격 증명 Azure__SignalR__Endpoints__{endpointName}__credential 연결을 위해 토큰을 가져오는 방법을 정의합니다. 배포된 Azure Function이 관리 ID 인증을 사용하려는 경우 이 설정을 managedidentity로 설정해야 합니다. 이 값은 호스팅 환경에서 관리 ID를 사용할 수 있는 경우에만 유효합니다. 아니요 managedidentity
클라이언트 ID Azure__SignalR__Endpoints__{endpointName}__clientId credentialmanagedidentity로 설정된 경우 이 속성은 토큰을 가져올 때 사용할 사용자가 할당한 ID를 지정하도록 설정할 수 있습니다. 속성은 애플리케이션에 할당된 사용자가 할당한 ID에 해당하는 클라이언트 ID를 허용합니다. 리소스 ID와 클라이언트 ID를 모두 지정하는 것은 유효하지 않습니다. 지정하지 않으면 시스템 할당 ID가 사용됩니다. 이 속성은 이 설정되지 않아야 하는 로컬 개발 시나리오credential에서 다르게 사용됩니다. 아니요 00000000-0000-0000-0000-000000000000
리소스 ID Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId credentialmanagedidentity로 설정된 경우 이 속성은 토큰을 가져올 때 사용할 리소스 식별자를 지정하도록 설정할 수 있습니다. 속성은 사용자 정의 관리 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 개발 및 구성을 참조하세요.