적용 대상: IoT Edge 1.5
중요합니다
IoT Edge 1.5 LTS는 지원되는 릴리스입니다. IoT Edge 1.4 LTS는 2024년 11월 12일부터 수명이 종료됩니다. 이전 릴리스에 있는 경우 IoT Edge 업데이트를 참조하세요.
이 자습서에서는 Azure Portal에서 Azure Stream Analytics 작업을 만들고 추가 코드 없이 IoT Edge 모듈로 배포합니다.
이 튜토리얼에서는 다음을 배우게 됩니다:
- 에지에서 데이터를 처리하는 Azure Stream Analytics 작업을 만듭니다.
- 새 Azure Stream Analytics 작업을 다른 IoT Edge 모듈에 연결합니다.
- Azure Portal에서 Azure Stream Analytics 작업을 IoT Edge 디바이스에 배포합니다.
이 자습서의 Stream Analytics 모듈은 순환하는 30초 시간 범위에 걸친 평균 온도를 계산합니다. 평균이 70에 도달하면 모듈은 조치를 취할 디바이스에 대한 경고를 보냅니다. 이 경우 시뮬레이션된 온도 센서를 다시 설정하는 작업이 수행됩니다. 프로덕션 환경에서는 이 기능을 사용하여 컴퓨터를 차단하거나 온도가 위험한 수준에 도달하면 예방 조치를 취할 수 있습니다.
IoT Edge에서 Azure Stream Analytics를 사용하는 이유는?
많은 IoT 솔루션에서 분석 서비스를 사용하여 IoT 디바이스에서 클라우드에 도착하는 대로 데이터에 대한 인사이트를 가져옵니다. Azure IoT Edge를 사용하면 Azure Stream Analytics 논리를 디바이스 자체로 이동합니다. 에지에서 원격 분석 스트림을 처리하면 업로드되는 데이터의 양이 줄어들고 실행 가능한 인사이트에 대응하는 시간이 단축됩니다. Azure IoT Edge와 Azure Stream Analytics는 통합되어 워크로드 개발을 간소화합니다.
Azure Stream Analytics는 클라우드 및 IoT Edge 디바이스에서 데이터 분석을 위해 구조화된 쿼리 구문을 사용합니다. 자세한 내용은 Azure Stream Analytics 설명서를 참조하세요.
필수 조건
Azure 계정이 없는 경우 시작하기 전에 체험 계정을 만듭니다.
Azure IoT Edge 디바이스
Linux 또는 Windows 디바이스에 대한 빠른 시작의 단계에 따라 Azure 가상 머신을 IoT Edge 디바이스로 사용합니다.
Azure의 무료 또는 표준 계층 IoT Hub.
Azure Stream Analytics 작업 만들기
이 섹션에서는 다음과 같은 Azure Stream Analytics 작업을 만듭니다.
- IoT Edge 디바이스에서 데이터를 받습니다.
- 설정된 범위를 벗어난 값에 대한 원격 분석 데이터를 쿼리합니다.
- 쿼리 결과에 따라 IoT Edge 디바이스에서 작업을 수행합니다.
저장소 계정 만들기
IoT Edge 디바이스에서 실행할 Azure Stream Analytics 작업을 만들 때 디바이스에서 액세스할 수 있도록 저장해야 합니다. 기존 Azure Storage 계정을 사용하거나 새 계정을 만들 수 있습니다.
Azure Portal에서 리소스 만들기>스토리지>스토리지 계정을 차례로 클릭합니다.
다음 값을 입력하여 스토리지 계정을 만듭니다.
필드 값 구독 IoT Hub와 동일한 구독을 선택합니다. 리소스 그룹 IoT Edge 빠른 시작 및 자습서에 대한 모든 테스트 리소스에 동일한 리소스 그룹을 사용합니다. 예를 들어 IoTEdgeResources를 사용합니다. 이름 스토리지 계정의 고유한 이름을 입력합니다. 위치 가까운 위치를 선택합니다. 다른 필드의 기본값을 유지하고 검토 + 만들기를 선택합니다.
설정을 검토한 다음 만들기를 선택합니다.
새 작업 만들기
Azure Portal에서 다음을 선택합니다.
- 리소스 만들기
- 왼쪽 메뉴의 사물 인터넷
- 검색 창에 Stream Analytics 를 입력하여 Azure Marketplace에서 찾습니다.
- 만들기를 선택한 다음, 드롭다운 메뉴에서 Stream Analytics 작업을 선택합니다.
다음 값을 제공하여 새 Stream Analytics 작업을 만듭니다.
필드 값 이름 작업의 이름을 입력합니다. 예: IoTEdgeJob 구독 IoT Hub와 동일한 구독을 선택합니다. 리소스 그룹 IoT Edge 빠른 시작 및 자습서 중에 만드는 모든 테스트 리소스에 대해 동일한 리소스 그룹을 사용합니다. 예를 들어 IoTEdgeResources라는 리소스입니다. 지역 가까운 위치를 선택합니다. 호스팅 환경 Edge를 선택합니다. 이 옵션을 사용하면 클라우드 대신 IoT Edge 디바이스에 배포할 수 있습니다. 검토 + 만들기를 선택합니다.
옵션을 확인한 다음, 만들기를 선택합니다.
작업 구성
Azure Portal에서 Stream Analytics 작업을 만든 후 전달되는 데이터에서 실행할 입력, 출력 및 쿼리 를 사용하여 구성합니다.
이 섹션에서는 IoT Edge 디바이스에서 온도 데이터를 수신하는 작업을 만드는 방법을 보여 줍니다. 롤링 30초 창에서 데이터를 분석합니다. 해당 창의 평균 온도가 70도를 초과하면 작업이 IoT Edge 디바이스에 경고를 보냅니다.
참고 항목
작업을 배포할 때 다음 섹션인 IoT Edge 설정 구성에서 데이터의 원본 및 이동 위치를 지정합니다.
입력 및 출력 설정
Azure Portal에서 Stream Analytics 작업으로 이동합니다.
작업 토폴로지에서 입력을 선택한 다음 입력 추가를 선택합니다.
드롭다운 목록에서 Edge Hub 를 선택합니다.
목록에 Edge Hub 옵션이 표시되지 않으면 Stream Analytics 작업을 클라우드 호스팅 작업으로 만들었을 수 있습니다. 새 작업을 만들고 Edge 를 호스팅 환경으로 선택해야 합니다.
새 입력 창에서 입력 별칭으로 온도를 입력합니다.
다른 필드의 기본값을 그대로 두고 저장을 선택합니다.
작업 토폴로지에서 출력을 선택한 다음, 추가를 선택합니다.
드롭다운 목록에서 Edge Hub를 선택합니다.
새 출력 창에서 출력 별칭으로 경고를 입력합니다.
다른 필드의 기본값을 그대로 두고 저장을 선택합니다.
쿼리 만들기
작업 토폴로지에서 쿼리를 선택합니다.
기본 텍스트를 다음 쿼리로 바꿉다.
SELECT 'reset' AS command INTO alert FROM temperature TIMESTAMP BY timeCreated GROUP BY TumblingWindow(second,30) HAVING Avg(machine.temperature) > 70
이 쿼리에서 30초 기간의 평균 컴퓨터 온도가 70도에 도달하면 SQL 코드에서 reset 명령을 경고 출력에 보냅니다. reset 명령은 동작으로 센서에 미리 프로그래밍됩니다.
쿼리 저장을 선택합니다.
IoT Edge 설정 구성
IoT Edge 디바이스에 Stream Analytics 작업을 배포하려면 Azure Stream Analytics 작업을 스토리지 계정과 연결합니다. 작업을 배포하면 작업 정의가 컨테이너 형태로 스토리지 계정에 내보내집니다.
Stream Analytics 서비스의 설정 메뉴에서 스토리지 계정 설정을 선택합니다.
구독에서 Blob 스토리지/ADLS Gen 2 선택 옵션을 선택합니다.
Azure 스토리지 계정이 페이지에 자동으로 표시됩니다. 스토리지 계정이 표시되지 않으면 스토리지를 만들어야 합니다. 스토리지 계정 필드에 나열된 스토리지와 다른 스토리지를 선택해야 하는 경우 드롭다운 메뉴에서 선택합니다.
변경한 경우 저장 을 선택합니다.
작업 배포
이제 Azure Stream Analytics 작업을 IoT Edge 디바이스에 배포할 준비가 되었습니다.
이 섹션에서는 Azure Portal의 모듈 설정 마법사를 사용하여 배포 매니페스트를 만듭니다. 배포 매니페스트는 디바이스에 배포되는 모든 모듈을 설명하는 JSON 파일입니다. 또한 매니페스트는 모듈 이미지를 저장하는 컨테이너 레지스트리, 모듈을 관리하는 방법 및 모듈이 서로 통신할 수 있는 방법을 보여줍니다. IoT Edge 디바이스는 IoT Hub에서 배포 매니페스트를 수신한 다음, 그 안에 들어 있는 정보를 사용하여 할당된 모든 모듈을 배포하고 구성합니다.
이 자습서에서는 두 개의 모듈을 배포합니다. 첫 번째는 온도 및 습도 센서를 시뮬레이션하는 SimulatedTemperatureSensor 모듈입니다. 두 번째는 Stream Analytics 작업입니다. 센서 모듈은 작업 쿼리에서 분석하는 데이터 스트림을 제공합니다.
Azure Portal에서 IoT Hub로 이동합니다.
장치 관리 메뉴 아래에서 디바이스를 선택한 다음, IoT Edge 디바이스를 선택하여 엽니다.
모듈 설정을 선택합니다.
이전에 SimulatedTemperatureSensor 모듈을 이 디바이스에 배포한 경우 자동으로 채워질 수 있습니다. 그렇지 않은 경우 다음 단계에 따라 모듈을 추가합니다.
- + 추가, IoT Edge 모듈을 차례로 선택합니다.
- 이름에 대해 SimulatedTemperatureSensor를 입력합니다.
- 이미지 URI에 대해 mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5를 입력합니다.
- 다른 기본 설정은 그대로 둔 다음, 추가를 선택합니다.
다음 단계에 따라 Azure Stream Analytics Edge 작업을 추가합니다.
- + 추가, Azure Stream Analytics 모듈을 차례로 선택합니다.
- 구독 및 사용자가 만든 Azure Stream Analytics Edge 작업을 선택합니다.
- 저장을 선택합니다.
변경 내용이 저장되면 Stream Analytics 작업의 세부 정보가 생성된 스토리지 컨테이너에 게시됩니다.
Stream Analytics 추가 배포가 완료되면 두 개의 새 모듈이 모듈 설정 페이지에 표시되는지 확인합니다.
검토 + 만들기를 선택합니다. 배포 매니페스트가 표시됩니다.
만들기를 실행합니다.
디바이스의 모듈 설정 페이지에서 몇 분 후에 모듈이 나열되고 실행되는 것을 확인할 수 있습니다. 모듈이 표시되지 않으면 페이지를 새로 고치거나 몇 분 더 기다린 후 다시 새로 고칩니다.
두 개의 새 모듈 이해
디바이스의 모듈 설정 탭에서 Stream Analytics 모듈 이름을 선택하여 IoT Edge 모듈 업데이트 페이지로 이동합니다. 여기서 설정을 업데이트할 수 있습니다.
설정 탭에는 표준 Azure Stream Analytics 이미지를 가리키는 이미지 URI가 있습니다. 이 단일 이미지는 IoT Edge 디바이스에 배포되는 모든 Stream Analytics 모듈에 사용됩니다.
모듈 쌍 설정 탭에서는 ASAJobInfo라는 ASA(Azure Stream Analytics) 속성을 정의하는 JSON을 보여 줍니다. 이 속성의 값은 스토리지 컨테이너의 작업 정의를 가리킵니다. 이 속성은 특정 작업 세부 정보를 사용하여 Stream Analytics 이미지가 구성되는 방법입니다.
기본적으로 Stream Analytics 모듈은 기반이 되는 작업과 동일한 이름을 사용합니다. 원하는 경우 이 페이지에서 모듈 이름을 변경할 수 있지만 반드시 필요한 것은 아닙니다.
변경한 경우 적용을 선택하고, 변경하지 않은 경우 취소를 선택합니다.
모듈에 경로 할당
디바이스에서 모듈 설정: <your-device-name> 페이지에서 다음: 경로를 선택합니다.
경로 탭에서 모듈과 IoT Hub 사이에서 메시지가 전달되는 방식을 정의합니다. 메시지는 이름 및 값 쌍을 사용하여 생성됩니다.
다음 표에 표시된 쌍을 사용하여 경로 이름과 값을 추가합니다.
{moduleName}
의 인스턴스를 Azure Stream Analytics 모듈의 이름으로 바꿉니다. 이 모듈은 Azure Portal에 표시된 대로 모듈 설정 페이지에서 디바이스의 모듈 목록에 표시되는 이름과 동일해야 합니다.이름 값 클라우드로의 텔레메트리 FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
클라우드로 알림 전송 FROM /messages/modules/{moduleName}/* INTO $upstream
알림_리셋_대상 FROM /messages/modules/{moduleName}/* INTO BrokeredEndpoint("/modules/SimulatedTemperatureSensor/inputs/control")
텔레메트리ToAsa FROM /messages/modules/SimulatedTemperatureSensor/* INTO BrokeredEndpoint("/modules/{moduleName}/inputs/temperature")
여기서 선언하는 경로는 IoT Edge 디바이스를 통과하는 데이터 흐름을 정의합니다. SimulatedTemperatureSensor의 원격 분석 데이터는 IoT Hub 및 Stream Analytics 작업에서 구성된 온도 입력으로 보내집니다. 경고 출력 메시지는 IoT Hub 및 SimulatedTemperatureSensor 모듈로 보내져 reset(다시 설정) 명령을 트리거합니다.
완료되면 다음: 검토 + 만들기를 선택합니다.
검토 + 만들기 탭에서 마법사에서 제공한 정보가 JSON 배포 매니페스트로 변환되는 방법을 확인할 수 있습니다.
매니페스트 검토를 완료되면 만들기를 선택하여 모듈 설정을 완료합니다.
데이터 보기
IoT Edge 디바이스로 이동하여 Azure Stream Analytics 모듈과 SimulatedTemperatureSensor 모듈 간의 상호 작용을 확인합니다.
참고 항목
디바이스에 가상 머신을 사용하는 경우 Azure Cloud Shell 을 사용하여 모든 Azure 인증 서비스에 직접 액세스합니다.
Docker에서 모든 모듈이 실행되는지 확인합니다.
iotedge list
모든 시스템 로그 및 메트릭 데이터를 봅니다. {moduleName}을 Azure Stream Analytics 모듈의 이름으로 바꿉니다.
iotedge logs -f {moduleName}
센서 로그를 확인하여 reset 명령이 SimulatedTemperatureSensor에 미치는 영향을 확인합니다.
iotedge logs SimulatedTemperatureSensor
머신의 온도가 30초 동안 70도에 도달할 때까지 점차적으로 상승하는 것을 볼 수 있습니다. 그러면 Stream Analytics 모듈이 재설정을 트리거하고 컴퓨터 온도가 21도로 떨어집니다.
리소스 정리
다음 권장 문서를 계속 진행하려면 만든 리소스 및 구성을 유지하고 다시 사용합니다. 테스트 디바이스와 동일한 IoT Edge 디바이스를 계속 사용해도 됩니다.
그렇지 않은 경우 요금이 부과되지 않도록 이 문서에서 사용한 로컬 구성 및 Azure 리소스를 삭제합니다.
Azure 리소스 삭제
Azure 리소스와 리소스 그룹을 삭제하면 되돌릴 수 없습니다. 잘못된 리소스 그룹 또는 리소스를 자동으로 삭제하지 않도록 해야 합니다. 유지하려는 리소스가 있는 기존 리소스 그룹 내에 IoT Hub를 만든 경우 리소스 그룹이 아닌 IoT Hub 리소스 자체만 삭제합니다.
리소스를 삭제하려면:
Azure Portal에 로그인한 다음, 리소스 그룹을 선택합니다.
IoT Hub 테스트 리소스가 포함된 리소스 그룹 이름을 선택합니다.
리소스 그룹에 포함된 리소스 목록을 검토합니다. 모든 항목을 삭제하려는 경우리소스 그룹 삭제를 선택할 수 있습니다. 일부만 삭제하려는 경우 각 리소스를 선택하여 개별적으로 삭제할 수 있습니다.
다음 단계
이 자습서에서는 IoT Edge 디바이스에서 데이터를 분석하도록 Azure Stream Analytics 작업을 설정합니다. IoT Edge 디바이스에 Azure Stream Analytics 모듈을 로드하여 로컬에서 온도 증가에 대응하고 집계된 데이터 스트림을 클라우드로 보냈습니다. Azure IoT Edge가 더 많은 솔루션을 빌드하는 데 어떻게 도움이 되는지 알아보려면 다음 자습서를 시도해 보세요.