기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
필터 규칙을 사용하여 메시지 필터링
Amazon Chime SDK는 앱 인스턴스 사용자의 채널 멤버십에 대한 필터 규칙을 설정하여 수신할 메시지를 제한할 수 있도록 지원합니다. 필터 규칙은 채널 멤버십에 설정되며 메시지 속성 맵에서 실행됩니다. 메시지 속성 맵은 문자열 키와 문자열 값의 맵이어야 합니다. 필터 규칙은 정확한 문자열 매칭을 통해 포함 및 제외를 지원합니다.
중요
Amazon Chime SDK는 이스케이프된 JSON 문자열만 필터 규칙으로 지원합니다.
채널 멤버십에 필터 규칙을 설정하려면 PutChannelMembershipPreferencesAPI를 사용하세요. SendChannelMessageAPI 호출의 일부로 채널 메시지에 메시지 속성을 포함할 수 있습니다.
필터 규칙 일치
Amazon Chime SDK는 다음과 같은 유형의 필터 규칙을 지원합니다.
포괄적이고 정확한 문자열 매칭
독점적이고 정확한 문자열 매칭
AND 또는 OR을 사용하는 다중 필터 규칙
필터 규칙 일치
Amazon Chime SDK는 필터 규칙에 다음과 같은 제한을 적용합니다.
정확한 문자열 일치만 지원합니다.
총 필터 규칙 크기는 2KB입니다.
총 메시지 속성 크기는 1KB입니다.
OR 필터 규칙 내에는 최대 5개의 개별 제약 조건이 있습니다.
-
전체 필터 규칙의 최대 복잡도는 20입니다. 복잡도는 필터 규칙의 키 및 값 개수의 합계로 계산됩니다.
예를 들어, 이 필터 규칙의 복잡도는 4입니다.
"FilterRule": "{\"type\":[{\"anything-but\": [\"Room\"]}],\"mention\":[\"Bob\"]}
이 값은 다음과 같이 계산합니다.
Keys = “type” and “mention” - Complexity 2 Values = "Room" and "Bob" - Complexity 2 Total complexity = 4
필터 규칙이 포함된 채널 멤버십 환경설정 예시
다음 예시는 채널 멤버십 환경설정 및 필터 규칙을 사용하는 여러 가지 방법을 보여줍니다.
포괄적인 문자열 일치
이 필터 규칙은 메시지 속성 키가 “mention”이고 값이 “Bob”인 모든 메시지를 허용합니다.
{ "Preferences": { "PushNotifications": { "FilterRule": "{\"mention\":[\"Bob\"]}", "AllowNotifications": "FILTERED" } } }
위와 같은 환경설정을 가진 앱 인스턴스 사용자는 다음 메시지 속성이 포함된 채널 메시지를 수신합니다.
"MessageAttributes": { "mention": { "StringValues": ["Bob", "Alice"] } }
하지만 앱 인스턴스 사용자에게는 다음과 같은 속성이 포함된 채널 메시지가 전송되지 않습니다.
"MessageAttributes": { "mention": { "StringValues": ["Tom"] } }
독점 문자열 일치
이 필터 규칙은 속성 키 “type”과 값 “Room”을 포함하는 메시지를 제외한 모든 메시지를 허용합니다.
{ "Preferences": { "PushNotifications": { "FilterRule": "{\"type\":[{\"anything-but\": [\"Room\"]}]}", "AllowNotifications": "FILTERED" } } }
이러한 환경설정을 가진 앱 인스턴스 사용자는 다음 메시지 속성이 포함된 채널 메시지를 수신합니다.
"MessageAttributes": { "type": { "StringValues": ["Conversation"] } }
하지만 앱 인스턴스 사용자에게는 다음 속성이 포함된 채널 메시지가 표시되지 않습니다.
"MessageAttributes": { "type": { "StringValues": ["Room"] } }
AND 로직이 포함된 다중 필터 규칙
필터 규칙을 AND 로직과 결합하는 경우 메시지가 필터를 적용하기 위한 모든 필터 기준을 충족해야 합니다.
{ "Preferences": { "PushNotifications": { "FilterRule": "{\"type\":[{\"anything-but\": [\"Room\"]}],\"mention\":[\"Bob\"]}", "AllowNotifications": "FILTERED" } } }
위와 같은 환경설정을 가진 앱 인스턴스 사용자는 다음 메시지 속성이 포함된 채널 메시지를 수신합니다.
"MessageAttributes": { "mention": { "StringValues": ["Bob"] }, "type": { "StringValues": ["Conversation"] } }
OR 로직이 포함된 다중 필터 규칙
필터 규칙을 OR 로직과 결합하는$or
데 사용합니다. OR 로직을 사용하는 경우 메시지가 필터 적용 기준 중 하나를 충족해야 합니다.
{ "Preferences": { "PushNotifications": { "FilterRule": "{\"$or\":[{\"mention\":[\"Bob\"]},{\"type\":[{\"anything-but\": [\"Room\"]}]}]}", "AllowNotifications": "FILTERED" } } }
위와 같은 환경설정을 가진 앱 인스턴스 사용자는 다음 메시지 속성이 포함된 채널 메시지를 수신합니다.
"MessageAttributes": { "mention": { "StringValues": ["Bob"] } }
위와 같은 환경설정을 가진 앱 인스턴스 사용자는 다음 메시지 속성이 포함된 채널 메시지를 수신합니다.
"MessageAttributes": { "type": { "StringValues": ["Conversation"] } }