다음을 통해 공유


자습서: Azure Logic Apps를 사용하여 IoT 디바이스 모니터링 및 알림 보내기

Azure Logic Apps를 사용하여 IoT Hub에서 들어오는 디바이스 원격 분석을 모니터링하고 경고가 트리거되면 경고를 보냅니다.

End-to-end diagram

Azure Logic Apps는 온-프레미스 및 클라우드 서비스, 여러 엔터프라이즈, 다양한 프로토콜 전반에서 워크플로를 오케스트레이션하는 데 도움이 될 수 있습니다. 논리 앱은 트리거로 시작하고, 그 뒤에 조건 및 반복기 등과 같은 기본 제공 컨트롤을 사용하여 순차화할 수 있는 하나 이상의 작업이 이어집니다. 이와 같은 유연성 덕분에 Logic Apps는 IoT 모니터링 시나리오를 위한 이상적인 IoT 솔루션입니다. 예를 들어, 디바이스의 데이터가 IoT Hub 엔드포인트에 도착하면 논리 앱 워크플로를 시작하여 Azure Storage Blob에서 데이터를 웨어하우징하고, 데이터 이상을 경고하는 메일 경고를 보내고, 디바이스에서 오류를 보고하는 경우 기술자 방문을 예약하는 등의 작업을 수행할 수 있습니다.

이 자습서에서는 다음 작업을 수행합니다.

Service Bus 큐를 만듭니다. 메시지에 비정상적인 온도 판독값이 포함된 경우 Service Bus 큐에 메시지를 보내는 경로를 IoT 허브에 만듭니다. 큐에 도착하는 메시지를 감시하고 이메일 경고를 보내는 논리 앱을 만듭니다.

디바이스에서 실행되는 클라이언트 코드는 IoT 허브에 보내는 모든 원격 분석 메시지에서 애플리케이션 속성 temperatureAlert를 설정합니다. 클라이언트 코드는 지정된 임계값 이상의 온도를 검색하면 이 속성을 true로 설정합니다. 그렇지 않으면 속성을 false로 설정합니다.

IoT 허브에 도착하는 메시지는 다음과 유사하여, 본문에 원격 분석 데이터가 포함되어 있고 temperatureAlert 속성은 애플리케이션 속성에 포함되어 있습니다(시스템 속성은 표시되지 않음).

{
  "body": {
    "messageId": 18,
    "deviceId": "Raspberry Pi Web Client",
    "temperature": 27.796111770668457,
    "humidity": 66.77637926438427
  },
  "applicationProperties": {
    "temperatureAlert": "false"
  }
}

Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.

필수 조건

이 자습서를 시작하기 전에 다음 필수 조건을 준비합니다.

Service Bus 네임스페이스 및 큐 만들기

Service Bus 네임스페이스 및 큐를 만듭니다. 이 문서의 뒷부분에서는 IoT 허브에서 라우팅 규칙을 만들어 온도 경고가 포함된 메시지를 Service Bus 큐로 전달합니다. 논리 앱은 들어오는 메시지에 대한 큐를 모니터링하고 각 경고에 대한 경고를 보냅니다.

Service Bus 네임스페이스 만들기

  1. Azure Portal에서 검색 창을 사용하여 Service Bus를 검색하고 선택합니다.

  2. 서비스 버스 네임스페이스를 만들려면 만들기를 선택합니다.

  3. 네임스페이스 만들기 창에서 다음 정보를 제공합니다.

    매개 변수
    구독 IoT 허브가 포함된 동일한 구독을 선택합니다.
    리소스 그룹 IoT 허브가 포함된 동일한 리소스 그룹을 선택합니다.
    네임스페이스 이름 서비스 버스 네임스페이스의 이름을 제공합니다. 네임스페이스는 Azure에서 고유해야 합니다.
    위치 IoT 허브가 사용하는 것과 동일한 위치를 선택합니다.
    가격 책정 계층 드롭다운 목록에서 기본을 선택합니다. 이 자습서에서는 기본 계층이면 충분합니다.
  4. 검토 + 만들기를 선택합니다.

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

  6. 배포가 완료될 때까지 기다린 다음 리소스로 이동을 선택합니다.

네임스페이스에 Service Bus 큐 추가

  1. Service Bus 네임스페이스의 개요 페이지에서 를 선택합니다.

    Screenshot of the namespace overview page to add a queue.

  2. 이름 필드에 큐 이름을 입력합니다. 다른 필드는 기본값을 허용하고 만들기를 선택합니다.

  3. Service Bus 네임스페이스의 리소스 메뉴에 있는 설정 섹션에서 공유 액세스 정책을 선택합니다.

  4. RootManageSharedAccessKey 정책을 선택하여 세부 정보를 엽니다.

  5. 기본 연결 문자열의 값을 복사하고 저장하여 나중에 논리 앱을 구성할 때 이 자습서에서 사용할 수 있습니다.

IoT 허브에 사용자 지정 엔드포인트와 라우팅 규칙 추가

Service Bus 큐에 대한 사용자 지정 엔드포인트를 IoT 허브에 추가합니다. 그런 다음 온도 경고가 포함된 메시지를 논리 앱에서 선택하는 해당 엔드포인트로 전달하는 메시지 라우팅 규칙을 만듭니다. 라우팅 규칙은 라우팅 쿼리 temperatureAlert = "true"를 사용하여 디바이스에서 실행 중인 클라이언트 코드로 설정되는 temperatureAlert 애플리케이션 속성의 값에 따라 메시지를 전달합니다. 자세히 알아보려면 메시지 속성에 따른 메시지 라우팅 쿼리를 참조하세요.

사용자 지정 엔드포인트 및 경로 추가

  1. Azure Portal에서 IoT Hub로 이동합니다.

  2. 허브 설정 아래의 리소스 메뉴에서 메시지 라우팅을 선택한 다음 추가를 선택합니다.

    Screenshot that shows location of the Add button, to add a new route in your IoT hub.

  3. 엔드포인트 탭에서 다음 정보를 제공하여 Service Bus 큐에 대한 엔드포인트를 만듭니다.

    매개 변수
    엔드포인트 유형 Service Bus 큐를 선택합니다.
    엔드포인트 이름 Service Bus 큐에 매핑되는 새 엔드포인트의 이름을 제공합니다.
    Service Bus 네임스페이스 드롭다운 메뉴를 사용하여 이전 섹션에서 만든 Service Bus 네임스페이스를 선택합니다.
    Azure Service Bus 큐 드롭다운 메뉴를 사용하여 네임스페이스에서 만든 Service Bus 큐를 선택합니다.

    Screenshot that shows how to create a service bus queue endpoint for your route.

  4. 만들기 + 다음을 선택합니다.

  5. 경로 탭에서 다음 정보를 입력하여 Service Bus 큐 엔드포인트를 가리키는 경로를 만듭니다.

    매개 변수
    이름 경로에 대한 고유한 이름을 제공합니다.
    데이터 원본 기본 디바이스 원격 분석 메시지 데이터 원본을 유지합니다.
    라우팅 쿼리 쿼리 문자열로 temperatureAlert = "true"을 입력합니다.

    Screenshot that shows adding a route with a query.

  6. 만들기 + 보강 건너뛰기를 선택합니다.

알림을 위한 Logic Apps 구성

이전 섹션에서는 온도 경고가 포함된 메시지를 Service Bus 큐로 라우팅하도록 IoT 허브를 설정했습니다. 이제, Service Bus 큐를 모니터링하여 메시지가 큐에 추가될 때마다 메일 알림을 보내도록 논리 앱을 설정합니다.

논리 앱 만들기

  1. Azure Portal에서 Logic Apps를 검색하여 선택합니다.

  2. 추가를 선택하여 새 논리 앱을 만듭니다.

  3. 논리 앱 만들기기본 사항 탭에 다음 정보를 입력합니다.

    매개 변수
    리소스 그룹 IoT hub가 포함된 동일한 리소스 그룹을 선택합니다.
    이름 논리 앱의 이름을 제공합니다.
    지역 가까운 위치를 선택합니다.
    플랜 유형 이 자습서에서는 충분한 사용량을 선택합니다.

    Screenshot that shows creating a logic app in the Azure portal.

  4. 검토 + 만들기를 선택합니다.

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

  6. 배포가 완료되면 리소스로 이동을 선택하여 논리 앱을 엽니다.

논리 앱 트리거 구성

  1. Azure Portal의 논리 앱 리소스 페이지에서 리소스 메뉴의 개발 도구 섹션에 있는 논리 앱 디자이너를 엽니다.

  2. 디자이너에서 템플릿까지 아래로 스크롤하고 빈 논리 앱을 선택합니다.

    Screenshot that shows selecting the Blank Logic App template.

  3. 모두 탭을 선택하여 모든 커넥터와 트리거를 표시한 다음 Service Bus를 선택합니다.

    Select Service Bus to start creating your logic app in the Azure portal.

  4. 트리거에서 큐에 하나 이상의 메시지가 도착하는 경우(자동 완성)을 선택합니다.

    Select the trigger for your logic app in the Azure portal.

  5. Service Bus 연결을 만듭니다.

    1. 연결 이름을 제공한 다음 Service Bus 네임스페이스에서 복사한 연결 문자열을 붙여넣습니다.

    2. 만들기를 실행합니다.

    3. 다음 화면에서 드롭다운 메뉴를 사용하여 Service Bus 네임스페이스에서 만든 큐를 선택합니다. 그런 다음 최대 메시지 수175를 입력합니다.

      Screenshot that shows configuring queue settings in the Logic app designer.

  6. 논리 앱 디자이너 메뉴에서 저장을 선택하여 변경 내용을 저장합니다.

논리 앱 작업 구성

  1. 논리 앱 디자이너에서 새 단계를 선택합니다.

  2. SMTP 서비스 연결을 만듭니다.

    1. SMTP를 검색하고 선택합니다.

      Screenshot that shows selecting an SMTP connection in the logic app designer.

    2. 이 단계의 작업으로 이메일 보내기(V3)를 선택합니다.

    3. 연결 이름을 제공한 다음 알림 메시지를 보내는 데 사용할 이메일 계정의 SMTP 정보로 나머지 필드를 작성합니다.

      메일 공급자에 따라 다음 링크를 사용하여 SMTP 정보를 찾습니다.

      참고 항목

      연결을 설정하려면 TLS/SSL을 사용하지 않도록 설정해야 할 수도 있습니다. 이 경우 연결이 설정된 후 TLS를 다시 사용하도록 설정하려면 이 섹션의 끝에서 선택적으로 수행 가능한 단계를 참조하세요.

      Screenshot that shows configuring the SMTP connection settings in the logic app designer.

    4. 만들기를 실행합니다.

  3. 이메일 보내기 작업을 구성합니다.

    1. 이메일 보내기 단계의 새 매개 변수 추가 드롭다운에서 다음 매개 변수를 선택합니다.

      • From
      • 수행할 작업
      • 주제
      • 본문

      화면에서 아무 곳이나 클릭하거나 탭하여 선택 상자를 닫습니다.

      Choose SMTP connection email fields to include in email.

    2. 이전 단계에서 선택한 이메일 매개 변수에 대해 다음 정보를 입력합니다.

      매개 변수
      From SMTP 연결을 위해 구성한 이메일 주소입니다.
      받는 사람 알림 이메일을 보내려는 이메일 주소입니다.
      주제 High temperature detected;
      본문 High temperature detected;

      동적 콘텐츠 추가 대화 상자가 열리면 숨기기를 선택하여 닫습니다. 이 자습서에서는 동적 콘텐츠를 사용하지 않습니다.

      Provide details for SMTP connection email fields.

  4. 저장을 선택하여 SMTP 연결을 저장합니다.

  5. (선택 사항) 메일 공급자와의 연결을 설정하기 위해 TLS를 사용하지 않도록 설정했는데 다시 사용하도록 설정하려는 경우 다음 단계를 수행하세요.

    1. 논리 앱 창의 개발 도구 아래에서 API 연결을 선택합니다.

    2. API 연결 목록에서 SMTP 연결을 선택합니다.

    3. smtp API 연결 창의 일반에서 API 연결 편집을 선택합니다.

    4. API 연결 편집 창에서 SSL 사용?을 선택하고 메일 계정의 암호를 다시 입력한 다음, 저장을 선택합니다.

      Edit SMTP API connection in your logic app in the Azure portal.

이제 논리 앱이 Service Bus 큐의 온도 경고를 처리하고 메일 계정으로 알림을 보낼 준비가 되었습니다.

논리 앱 테스트

모니터링 및 알림 파이프라인을 테스트하려면 IoT 디바이스에서 온도 메시지 보내기를 시작합니다.

  1. 디바이스에서 클라이언트 애플리케이션을 시작합니다. 클라이언트 코드는 원격 분석 메시지를 임의로 출력하고 온도가 30C를 초과하면 temperatureAlert 속성을 true로 설정합니다.

  2. 논리 앱에서 보낸 메일 알림을 수신하기 시작해야 합니다.

    참고 항목

    전자 메일을 보낸 사람이 본인이라는 것을 확인하기 위해 전자 메일 서비스 공급자가 발신자의 신분을 확인해야 할 수도 있습니다.

리소스 정리

이 자습서에서 만든 리소스가 더 이상 필요하지 않으면 포털에서 해당 리소스와 리소스 그룹을 삭제합니다. 이렇게 하려면 IoT Hub가 포함된 리소스 그룹을 선택하고 삭제를 선택합니다.

또는 CLI를 사용합니다.

# Delete your resource group and its contents
az group delete --name <RESOURCE_GROUP_NAME>

다음 단계

이 자습서에서는 온도 모니터링 및 알림을 위해 IoT 허브와 사서함을 연결하는 논리 앱을 만들었습니다.

Azure IoT Hub를 계속 시작하고 모든 확장 IoT 시나리오를 살펴보려면 다음을 참조하세요.