IoT 장치AWS IoT Events 모니터링에 사용 - AWS IoT Events

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

IoT 장치AWS IoT Events 모니터링에 사용

.AWS IoT Events .

입력 생성

AWS IoT Events. 메시지를 입력으로 보내면 이 작업을 수행할 수AWS IoT Events 있습니다. 다음과 같은 여러 가지 방법으로 메시지를 입력으로 보낼 수 있습니다.

  • BatchPutMessage작업을 사용하십시오.

  • AWS IoT Core규칙 엔진에 대한 규칙iotEvents 동작을 정의합니다. 규칙 액션은 입력된 메시지 데이터를 로 전달합니다AWS IoT Events.

  • AWS IoT Analytics에서는 CreateDataset작업을 사용하여 데이터 세트를 만들 수 있습니다contentDeliveryRules. 이러한 규칙은 데이터 세트 콘텐츠가 자동으로 전송되는AWS IoT Events 입력을 지정합니다.

  • AWS IoT Events감지기 모델onExit 또는transitionEvents 이벤트에서 IoTevents 동작을 정의합니다.onInput .

기기에서 이러한 방식으로 데이터를 전송하기 전에 하나 이상의 입력을 정의해야 합니다. 이렇게 하려면 각 입력에 이름을 지정하고 입력이 모니터링하는 수신 메시지 데이터의 필드를 지정하십시오. AWS IoT Events여러 소스에서 JSON 페이로드 형태로 입력을 받습니다. 각 입력은 단독으로 작동하거나 다른 입력과 결합하여 더 복잡한 이벤트를 감지할 수 있습니다.

.

(). 각 상태에 대해 수신되는 입력을 평가하여 중요 이벤트를 탐지하는 조건부(부울) 논리를 정의합니다. AWS. .

이 자습서에서는 모델이 특정 상태로 전환되거나 종료될 때 Amazon SNS 메시지를 작업으로 전송합니다.

장치 또는 프로세스 모니터링

여러 기기 또는 프로세스를 모니터링하는 경우 입력이 들어오는 특정 기기 또는 프로세스를 식별하는 필드를 각 입력에 지정합니다. (의key 필드CreateDetectorModel 참조) 새 디바이스가 식별되면 (로 식별되는 입력 필드에 새 값이key 표시됨) 감지기가 생성됩니다. (). 그런 다음 새 감지기는 감지기 모델이 업데이트되거나 삭제될 때까지 해당 장치에서 오는 입력에 계속 응답합니다.

단일 프로세스를 모니터링하는 경우 (여러 장치 또는 하위 프로세스가 입력을 보내는 경우에도) 고유한 식별key 필드를 지정하지 마십시오. 이 경우 첫 번째 입력이 도착하면 단일 감지기 (인스턴스) 가 생성됩니다.

메시지를 감지기 모델에 입력으로 전송

메시지에 추가 형식 지정을 수행할 필요 없이 여러 가지 방법으로 디바이스에서 메시지를 전송하거나AWS IoT Events 감지기에 입력으로 처리할 수 있습니다. 이 자습서에서는AWS IoT 콘솔을 사용하여 메시지 데이터를 전달하는AWS IoT Core 규칙 엔진에 대한 AWS IoT Events작업 규칙을 작성합니다AWS IoT Events. 이렇게 하려면 입력값을 이름으로 식별해야 합니다. 그런 다음AWS IoT 콘솔을 사용하여 입력으로 전달되는 일부 메시지를 계속 생성합니다AWS IoT Events.

검출기 모델에서 어떤 상태가 필요한지 어떻게 알 수 있습니까?

감지기 모델에 어떤 상태가 있어야 하는지 결정하려면 먼저 어떤 조치를 취할 수 있는지 결정해야 합니다. 예를 들어, 자동차가 휘발유로 운행되는 경우 여행을 시작할 때 연료 게이지를 보고 급유가 필요한지 확인합니다. 여기에 한 가지 조치가 있습니다. 운전자에게 “가스를 가져오러 가세요”라고 말하는 것입니다. 감지기 모델에는 “자동차에는 연료가 필요하지 않음”과 “자동차에는 연료가 필요합니다”라는 두 가지 상태가 필요합니다. 일반적으로 가능한 각 작업에 대해 상태를 하나씩 정의하고 작업이 필요하지 않은 경우 상태를 하나 더 정의하는 것이 좋습니다. 이는 액션 자체가 더 복잡한 경우에도 작동합니다. 예를 들어, 가장 가까운 주유소나 가장 저렴한 주유소를 찾을 수 있는 곳을 찾아보고 싶지만 “go get gas”라고 메시지를 보낼 때 이 정보를 입력하면 됩니다.

다음에 어떤 상태를 입력할지 결정하려면 입력값을 살펴봐야 합니다. 입력에는 어떤 상태에 있어야 하는지 결정하는 데 필요한 정보가 들어 있습니다. 입력을 만들려면 기기 또는 프로세스에서 보낸 메시지에서 결정에 도움이 되는 하나 이상의 필드를 선택합니다. 이 예에서는 현재 연료 수준 (“충전율”) 을 알려주는 하나의 입력이 필요합니다. 자동차가 여러 가지 다른 메시지를 보내고 있을 수 있으며, 각 메시지에는 여러 필드가 있습니다. 이 입력을 생성하려면 현재 가스 게이지 레벨을 보고하는 메시지와 필드를 선택해야 합니다. 가려는 여행 길이 (“목적지까지의 거리”) 를 하드코딩하여 간단하게 작성할 수 있습니다. 평균 여행 길이를 사용할 수 있습니다. 입력값을 기반으로 몇 가지 계산을 해 보겠습니다 (전체 퍼센트는 몇 갤런으로 환산됩니까? 보유한 갤런과 평균 “갤런당 마일”을 고려하면 여행 가능한 마일보다 긴 평균 여행 길이입니다). 이러한 계산을 수행하고 이벤트에서 메시지를 보냅니다.

지금까지는 두 개의 상태와 하나의 입력값이 있습니다. 입력을 기반으로 계산을 수행하고 두 번째 상태로 이동할지 여부를 결정하는 첫 번째 상태의 이벤트가 필요합니다. 이는 전환 이벤트입니다. (transitionEventsonInput 이벤트 목록에 있습니다. 이 첫 번째 상태에서 입력을 받으면 이벤트가 충족되면 이벤트는 두 번째 상태로 전환됩니다.)condition 두 번째 주에 도달하면 해당 주에 들어가자마자 메시지를 보냅니다. (onEnter이벤트를 사용합니다. 두 번째 상태에 들어가면 이 이벤트는 메시지를 전송합니다. 다른 입력이 도착할 때까지 기다릴 필요가 없습니다.) 다른 유형의 이벤트도 있지만 간단한 예제는 여기까지만 있으면 됩니다.

다른 유형의 이벤트는onExit 및 입니다onInput. 입력이 수신되고 조건이 충족되는 즉시onInput 이벤트는 지정된 작업을 수행합니다. 작업이 현재 상태를 종료하고 조건이 충족되면onExit 이벤트는 지정된 작업을 수행합니다.

놓치고 있는 것이 있나요? 네, 어떻게 하면 첫 번째 “자동차는 연료가 필요 없습니다” 상태로 돌아갈 수 있을까요? 가스 탱크를 채우면 입력에 탱크가 가득 찬 것으로 표시됩니다. 두 번째 상태에서는 입력이 수신될 때 발생하는 첫 번째 상태 (두 번째 상태의onInput: 이벤트) 로 돌아가는 전환 이벤트가 필요합니다. 이제 원하는 곳으로 이동하기에 충분한 가스가 있는 것으로 계산되면 첫 번째 상태로 다시 전환될 것입니다.

이것이 기본입니다. 일부 감지기 모델은 가능한 동작뿐만 아니라 중요한 입력을 반영하는 상태를 추가하여 더 복잡해집니다. 예를 들어 온도를 추적하는 감지기 모델의 세 가지 상태, 즉 “정상” 상태, “너무 뜨겁다” 상태 및 “잠재적 문제” 상태가 있을 수 있습니다. 온도가 일정 수준 이상으로 상승했지만 아직 너무 뜨거워지지 않은 경우 잠재적 문제 상태로 전환됩니다. 이 온도를 15분 이상 유지하지 않으면 알람을 보내고 싶지 않습니다. 그 전에 온도가 정상으로 돌아오면 감지기는 정상 상태로 다시 전환됩니다. 타이머가 만료되면 감지기가 너무 뜨거운 상태로 전환되고 주의하기 위해 경보를 보냅니다. 변수와 더 복잡한 이벤트 조건 세트를 사용하여 동일한 작업을 수행할 수 있습니다. 하지만 실제로는 다른 상태를 사용하여 계산 결과를 저장하는 것이 더 쉬운 경우가 많습니다.

검출기 인스턴스가 하나 또는 여러 개 필요한지 어떻게 알 수 있습니까?

필요한 인스턴스 수를 결정하려면 “알고 싶은 것이 무엇입니까?” 라고 자문해 보십시오. 오늘 날씨가 어떤지 알고 싶다고 가정해 봅시다. 비가 오나요 (주)? 우산 (액션) 을 착용해야 하나요? 온도를 보고하는 센서, 습도를 보고하는 센서, 기압, 풍속 및 방향, 강수량을 보고하는 센서를 사용할 수 있습니다. 그러나 이러한 모든 센서를 함께 모니터링하여 날씨 상태 (비, 눈, 흐린 날씨, 햇빛) 와 취해야 할 적절한 조치 (우산 챙기거나 자외선 차단제 바르기) 를 파악해야 합니다. 센서 수가 많더라도 날씨 상태를 모니터링하고 어떤 조치를 취해야 하는지 알려주는 감지기 인스턴스 하나가 필요합니다.

그러나 해당 지역의 일기 예보자라면 지역 전역의 여러 위치에 이러한 센서 어레이의 인스턴스가 여러 개 있을 수 있습니다. 각 장소의 사람들은 해당 지역의 날씨가 어떤지 알아야 합니다. . 각 위치의 각 센서가 보고하는 데이터에는 필드로 지정한key 필드가 포함되어야 합니다. 이 필드를 사용하면AWS IoT Events 해당 영역에 대한 탐지기 인스턴스를 만든 다음 해당 탐지기 인스턴스가 계속 도착하면 이 정보를 해당 감지기 인스턴스로 계속 라우팅할 수 있습니다. 더 이상 망가진 머리카락이나 햇볕에 탄 코는 이제 그만!

기본적으로 모니터링할 상황 (프로세스 하나 또는 위치 하나) 이 있는 경우 감지기 인스턴스 하나가 필요합니다. 모니터링해야 할 상황 (위치, 프로세스) 이 많은 경우 여러 감지기 인스턴스가 필요합니다.