클라이언트 그룹

클라이언트 그룹을 사용하면 공통점에 따라 클라이언트 집합을 함께 그룹화할 수 있습니다. 클라이언트 그룹의 기본 목적은 권한 부여를 쉽게 구성하는 것입니다. 토픽 공간을 게시하거나 구독하도록 클라이언트 그룹에 권한을 부여할 수 있습니다. 클라이언트 그룹의 모든 클라이언트는 토픽 공간에서 게시 또는 구독 작업을 수행할 권한이 있습니다.

네임스페이스에서 "$all"이라는 기본 클라이언트 그룹을 제공합니다. 클라이언트 그룹에는 네임스페이스의 모든 클라이언트가 포함됩니다. 쉽게 테스트할 수 있도록 $all을 사용하여 권한을 구성할 수 있습니다.

참고 항목

  • 클라이언트 그룹 이름은 3~50자일 수 있습니다.
  • 클라이언트 그룹 이름에는 영숫자, 하이픈(-) 및 공백 없음이 포함될 수 있습니다.
  • 클라이언트 그룹 이름은 네임스페이스별로 고유해야 합니다.
  • $all은(는) 네임스페이스의 모든 클라이언트를 포함하는 기본 클라이언트 그룹입니다. 이 그룹은 편집하거나 삭제할 수 없습니다.

클라이언트 그룹 고려 사항

권한을 관리할 수 있도록 클라이언트 그룹의 수량을 작게 유지해야 합니다.

현재 지원되는 네임스페이스당 최대 10개의 클라이언트 그룹이 있습니다.

클라이언트를 그룹화할 때 그룹을 다시 사용하여 여러 토픽 공간에서 게시하고 구독하는 것이 더 쉬운지 확인합니다. 이를 위해 엔드투엔드 시나리오를 통해 모든 클라이언트가 게시하거나 구독하는 토픽을 식별하는 것이 중요합니다.

클라이언트 그룹 및 토픽 공간의 조각화를 방지하려면 시나리오 전반에 걸쳐 공통점을 식별하는 것이 좋습니다. 간단한 그룹화가 가능하고 매우 복잡한 그룹 쿼리를 방지할 수 있을 만큼 클라이언트 특성을 제네릭으로 설정합니다.

클라이언트 그룹 쿼리를 만드는 방법

클라이언트 그룹을 설정하려면 해당 특성 값에 따라 클라이언트 집합을 필터링하는 쿼리를 빌드해야 합니다.

다음은 몇 가지 샘플 쿼리입니다.

  • (attributes.sensors = "motion" 또는 attributes.sensors = "humidity") 또는 attributes.type = "home-sensors"
  • attributes.sensors IN ["motion", "humidity", "temperature"] 및 attributes.floor <= 5
  • authenticationName IN ['client1', 'client2']

그룹 쿼리에서는 다음 피연산자가 허용됩니다.

  • 같음 연산자 "="
  • 식을 그룹화하여 연산 순서를 제어하는 괄호 "()"
  • 논리 연산자 "and", "or" , "and"가 "or"보다 우선 순위가 높습니다.
  • "<>" 및 "!=" 두 가지 형식의 같지 않은 연산자
  • "<"보다 작음, ">"보다 큼, "<="보다 작음, 정수(Long) 값의 경우 ">="보다 큼
  • 값 집합과 비교할 "IN"

샘플 클라이언트 그룹 스키마

{
  "properties": {
    "description": "Description of client group",
    "query": "attributes.b IN ['a', 'b', 'c']"
  }
}

Azure Portal 구성

사용자 그룹을 만들려면 다음 단계를 사용합니다.

  1. Azure Portal에서 네임스페이스로 이동합니다.

  2. 클라이언트 그룹에서 + 클라이언트 그룹을 선택합니다.

    클라이언트 그룹을 추가하는 스크린샷.

  3. 클라이언트 그룹 쿼리를 추가합니다.

    클라이언트 그룹 구성의 스크린샷.

  4. 만들기를 선택합니다.

Azure CLI 구성

다음 명령을 사용하여 클라이언트 그룹을 생성/표시/삭제합니다.

클라이언트 그룹 만들기

az eventgrid namespace client-group create -g myRG --namespace-name myNS -n myCG 

클라이언트 그룹 가져오기

az eventgrid namespace client-group show -g myRG --namespace-name myNS -n myCG

클라이언트 그룹 삭제하기

az eventgrid namespace client-group delete -g myRG --namespace-name myNS -n myCG

다음 단계