규칙 생성 및 관리
    • PDF

    규칙 생성 및 관리

    • PDF

    Article Summary

    Classic/VPC 환경에서 이용 가능합니다.

    IoT 기기와 Cloud IoT Core를 연결할 준비가 되었다면 IoT 기기로부터 수신한 데이터의 처리 방법을 정의하는 규칙을 생성해야 합니다.
    규칙 생성 시 IoT 기기에서 Cloud IoT Core로 보낸 메시지 내용 중 사전 설정된 조건과 일치하는지를 검사하는 '규칙 쿼리'와 조건에 부합되면 미리 정의한 동작을 수행하는 '액션'을 지정해야 합니다. 예를 들어, '메시지로 전달된 온도 값이 80도 이상인 경우(조건), 사용자에게 Push 알림을 전송(액션)'과 같은 규칙을 생성할 수 있습니다. 규칙 생성 시 규칙 쿼리와 액션을 반드시 지정해야 합니다.

    Rules 화면

    cloudiotcore-rules_01_ko.png

    항목설명
    ① 규칙 생성규칙을 생성할 수 있는 버튼
    ② Rule Engine Status규칙을 처리하는 엔진의 동작 상태
  • 정상: 규칙 엔진 정상 작동 중
  • 작동중지: 규칙 엔진 작동 중지됨. 고객 센터로 문의
  • ③ 기능 버튼
  • 수정: 규칙 수정
  • 삭제: 규칙 삭제
  • 활성: 비활성화한 규칙을 활성화
  • 비활성화: 규칙 사용을 일시 중단
  • ④ 규칙 목록생성한 규칙 목록
    ⑤ 검색규칙 이름, 규칙 설명, 규칙 쿼리로 검색 가능

    규칙 생성

    규칙을 생성하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Internet of Things > Cloud IoT Core > Rules를 클릭해 주십시오.
    2. [규칙 생성] 버튼을 클릭해 주십시오.
    3. Rule 생성 화면이 나타나면 규칙 이름과 규칙 설명을 입력해 주십시오.
    4. 규칙 쿼리를 입력해 주십시오.
      • 규칙 쿼리는 메시지를 검사할 수 있는 조건을 의미합니다.
      • 규칙 쿼리를 작성하는 방법은 규칙 쿼리 작성을 참조해 주십시오.
    5. 규칙 쿼리에 대한 문법 검사를 수행하기 위해 [쿼리검증] 버튼을 클릭해 주십시오.
      • 쿼리 검증이 완료되면 화면 하단에 액션 생성 화면이 나타납니다.
    6. 액션 종류를 선택하고 [추가] 버튼을 클릭해 주십시오.
      • 액션에 대한 설명은 액션 생성을 참조해 주십시오.
    7. 에러 액션을 생성해 주십시오.
    8. [생성] 버튼을 클릭해 주십시오.
    참고
    • 규칙 이름은 영문자, 숫자, -(하이픈), _(밑줄)을 허용하며, 128자까지 입력할 수 있습니다.
    • 규칙 설명은 255자까지 입력할 수 있습니다.
    • 규칙 이름은 중복으로 등록할 수 없습니다.
    • 규칙 쿼리는 10,000자까지 입력할 수 있습니다.
    참고
    • 규칙에 인입되는 메시지는 5 Kbyte(UTF-8 인코딩)를 넘을 수 없으며 반드시 JSON 객체여야 합니다. JSON List는 지원하지 않습니다.
    • 규칙 처리로 인입되는 메시지는 초당 10,000개를 넘을 수 없습니다. 더 많은 메시지가 인입될 경우, 처리가 지연될 수 있습니다.
    • 메시지의 규칙 처리, 액션 실행 순서는 1초 이내에서 순서를 보장하지 않습니다.
    • 처리 지연 시간은 평균 1초이며 규칙의 개수, 쿼리의 종류, 액션의 종류에 따라 지연될 수 있습니다.

    규칙 쿼리 작성

    IoT 기기에서 송신되는 메시지 내용에 대해 특정한 규칙 쿼리를 작성합니다. 규칙 쿼리를 작성하려면 기본적인 SQL 구문을 이해하고 있어야 합니다. 또한 SELECT 구문만 지원하므로 SELECT - FROM - WHERE 순서로 작성해야 합니다.

    규칙 쿼리 작성 규칙은 다음과 같습니다.

    SELECT [<토픽 Alias>.<메시지 JSON Key1>, <토픽 Alias>.<메시지 JSON Key2>, ...] FROM "[토픽]" AS [토픽 Alias] WHERE [조건]
    
    참고

    액션 생성

    액션은 메시지가 규칙 쿼리에 부합되는 경우 실행할 동작을 의미합니다. 액션은 규칙 쿼리 검증이 완료된 후에 생성할 수 있으,며, 각 규칙에는 최소 1개, 최대 5개의 액션을 설정할 수 있습니다. Cloud IoT Core에서는 '지정한 토픽으로 재발행', 'Cloud Functions로 데이터 전송' 기능을 지원합니다.

    지정한 토픽으로 재발행

    '지정한 토픽으로 재발행' 액션은 IoT 기기에서 발행되는 MQTT 메시지를 다른 이름의 토픽으로 재발행할 때 사용합니다. 예를 들어 IoT 기기가 발행하는 메시지 중 사용자가 사전에 정의한 규칙 쿼리에 매칭된 데이터가 감지된 경우, 'alert'라는 토픽으로 메시지를 재발행하고 'alert' 재발행 메시지를 수신한 기기에서는 경고음이 울리도록 설정할 수 있습니다.

    1. 규칙 생성을 참조하여 규칙 쿼리를 작성해 주십시오.

    2. 액션 종류를 '지정한 토픽으로 재발행'으로 선택한 후 [추가] 버튼을 클릭해 주십시오.

    3. 팝업 창이 나타나면 '재발행 토픽'에 메시지를 발행할 새로운 토픽 이름을 입력해 주십시오.

    4. [완료] 버튼을 클릭해 주십시오.

    5. 액션이 추가되었는지 확인한 후 [생성] 버튼을 클릭해 주십시오.

    참고
    • 토픽명에는 영문자, 숫자, 공백, !@$%^&()_-={[}]?></`'를 입력할 수 있습니다.
    • 토픽 이름은 255자까지 입력할 수 있습니다.
    • 액션 이름은 중복으로 등록할 수 없습니다.
    참고
    • 메시지가 무제한으로 재발행되는 것을 방지하기 위해 재발행 토픽 이름은 수신된 메시지와 동일한 토픽 이름으로 생성할 수 없습니다. 따라서 MQTT 재발행 액션의 토픽은 규칙 쿼리의 FROM 절의 토픽에 포함되는 토픽 이름일 수 없습니다.

    Cloud Functions로 데이터 전송

    Cloud Functions로 데이터를 전송하여 추가 액션을 수행하려면 Cloud Functions 이용 신청을 완료한 후, 트리거를 생성해야 합니다. IoT 기기에서 Cloud IoT Core로 전송한 메시지를 분석하여 앞서 정의한 규칙 쿼리에 일치하는 경우 Cloud Functions에 정의한 액션을 실행하는 구조입니다.

    1. 규칙 생성을 참조하여 규칙 쿼리를 작성해 주십시오.
    2. 액션 종류를 'Cloud Functions로 데이터 전송'으로 선택한 후 [추가] 버튼을 클릭해 주십시오.
    3. 팝업 창이 나타나면 Cloud Functions에 생성된 트리거를 선택해 주십시오.
    4. 트리거를 생성하려면 [Cloud Functions 트리거 생성] 버튼을 클릭하여 트리거를 생성해 주십시오.
    5. 연동할 트리거를 선택해 주십시오.
    6. 선택사항으로 일정 시간 동안(5초~600초) 데이터를 병합하여 Cloud Functions 트리거를 실행하려면 배치 시간을 설정해 주십시오.
      • 배치 시간 동안에는 Cloud Functions 트리거 실행 횟수를 줄이고 메시지를 대량으로 처리할 수 있습니다.
      • 배치 설정 시 Cloud Functions 트리거 파라미터로 전달되는 데이터 포맷은 다음과 같습니다.
        • "messages" JSON Array 필드를 갖는 JSON Object
        • Cloud IoT Core에 수집된 데이터를 JSON Array 형태로 병합
          <예시>
        {
          "messages": [
            {
              "deviceId": "1",
              "temperature": 12.6,
              "eventTime": 1606286653000
            },
            {
              "deviceId": "1",
              "temperature": 12.5,
              "eventTime": 1606286658000
            },
            {
              "deviceId": "1",
              "temperature": 12.3,
              "eventTime": 1606286693000
            }
          ]
        }
        
    7. [추가] 버튼을 클릭해 주십시오.
    주의

    배치로 설정할 경우 Cloud Functions의 실행은 1회로 1회 호출 과금이 되지만, Cloud IoT 액션 실행 요금은 실제 병합된 메시지 수를 기준으로 과금됩니다. 예를 들어, 1분의 배치 시간 동안 100개의 메시지가 병합된 경우에는 Cloud IoT Core 액션 실행 요금이 100건으로 과금됩니다.

    참고
    • Cloud Functions에 등록된 트리거만 사용할 수 있습니다. 실제 로직을 수행하는 Cloud Functions 액션을 만든 후 Cloud Functions 트리거에 반드시 연결해야 Cloud Functions 액션을 실행할 수 있습니다.
    • Cloud Functions의 트리거 중 Cloud IoT 트리거 타입의 트리거만 등록할 수 있습니다.
    • Cloud Functions의 실행 오류 발생 시 Cloud IoT Core에서 메시지 처리가 지연될 수 있습니다.
    • 배치 시간은 최소 5초에서 최대 600초(10분) 이내로로 설정할 수 있습니다.
    • Cloud Functions 액션에 전달되는 파라미터 크기는 1 MB로 제한됩니다. 배치 시간 내에 해당 크기를 초과할 경우, Cloud Functions 액션을 즉시 실행합니다.
    • Cloud IoT Core의 업데이트 시 연결이 끊길 수 있습니다. 연결이 끊기는 경우 다시 접속해야 합니다.
    • MQTT 연결의 특성상 네트워크 연결이 안정적이지 않아 연결이 끊길 수 있습니다. 연결이 끊기는 경우 다시 접속해야 합니다.

    에러 액션 생성

    에러 액션은 사용자가 정의한 규칙 쿼리가 실패하거나, 액션 실행이 실패하는 경우 실행되는 액션입니다. 규칙당 최대 1개의 에러 액션을 생성할 수 있습니다. 예를 들어 'Cloud Functions로 데이터 전송' 액션을 요청하는 과정에서 Cloud Functions로의 요청이 실패한 경우, 액션 실패를 인지하고 '에러 액션'으로 설정된 액션을 수행합니다. 단, 다른 서비스로의 요청하는 과정에서 발생하는 에러가 아닌, 다른 서비스의 실행 결과에 대한 에러 처리는 지원하지 않습니다.

    에러 액션을 생성하는 방법은 다음과 같습니다.

    1. 규칙 생성을 참조하여 규칙 쿼리를 작성해 주십시오.
    2. 액션 생성을 참조하여 액션 정보를 설정해 주십시오.
    3. 에러 액션 수정의 설정 펼치기를 선택해 주십시오.
    4. 지정한 토픽으로 재발행 또는 Cloud Functions로 데이터 전송을 선택하고 [추가] 버튼을 클릭해 주십시오.
      • 에러 액션 생성 방법은 액션 생성 방법과 동일합니다.

    에러 액션 응답

    에러 액션은 JSON 타입으로 제공됩니다. errorsList는 메시지 하나가 다수의 액션을 실행하므로 여러 개의 액션 중 에러가 발생한 모든 액션의 에러에 대한 목록입니다. 쿼리에서 에러 발생 시 errorType은 RULE_QUERY로 표시되며, actionName 필드는 없습니다.

    <예시>

    {
      "ruleName":"TriggerSensor",
      "payload":{ 
           "temp":50,
           "high":"top"
       },
       "topic" : "myhome/room1",
       "errorsList":[
           { "errorType" : "CLOUD_FUNCTIONS",  
             "actionName" : "aggregate",
             "message":"Function id invalid",
             "returnCode":621
           }, ...
       ]
    }
    
    참고
    • Cloud IoT Core에서는 Cloud Functions 실행 여부만 확인하며, Cloud Function에서 액션을 실행한 결과는 Cloud Functions 콘솔에서 확인할 수 있습니다.
    • 에러 액션에서 오류가 발생하는 경우에는 다른 에러 액션을 호출할 수 없습니다.

    규칙 활성 및 비활성

    규칙의 사용을 잠시 중단할 수 있습니다. 규칙을 비활성화하면 해당 규칙 쿼리와 액션이 동작하지 않습니다. 규칙을 비활성화하거나 활성화하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Internet of Things > Cloud IoT Core > Rules를 클릭해 주십시오.
    2. 규칙 목록에서 비활성화할 규칙을 클릭한 후 [비활성] 버튼을 클릭해 주십시오.
      • 비활성화한 규칙을 다시 활성화하려면 [활성] 버튼을 클릭해 주십시오.

    규칙 삭제

    사용자가 지정한 규칙이 더 이상 필요 없는 경우, 규칙을 삭제할 수 있습니다. 규칙을 삭제하는 방법은 다음과 같습니다.

    1. 네이버 클라우드 플랫폼 콘솔에서 Services > Internet of Things > Cloud IoT Core > Rules를 클릭해 주십시오.
    2. 삭제할 규칙을 선택한 후 [삭제] 버튼을 클릭해 주십시오.

    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.