Azure IoT Edge 모듈 이해

적용 대상:IoT Edge 1.6 체크마크 IoT Edge 1.6

중요합니다

지원되는 릴리스는 IoT Edge 1.6 LTS입니다. IoT Edge 1.5 LTS 지원은 2026년 11월 10일에 종료됩니다; IoT Edge 1.4 LTS는 2024년 11월 12일에 지원 종료를 맞았습니다. 이전 릴리스를 사용하는 경우 IoT Edge 참조하세요.

Azure IoT Edge modules 사용하여 에지 디바이스에서 비즈니스 논리를 배포하고 관리할 수 있습니다. Azure IoT Edge 모듈은 IoT Edge 관리하는 가장 작은 계산 단위입니다. Azure Stream Analytics 같은 Azure 서비스 또는 고유한 솔루션별 코드를 포함할 수 있습니다. 모듈을 개발, 배포 및 유지 관리하는 방법을 이해하려면 모듈의 네 가지 개념 요소를 고려합니다.

  • 모듈 이미지는 모듈을 정의하는 소프트웨어를 포함하는 패키지입니다.
  • module 인스턴스는 IoT Edge 디바이스에서 모듈 이미지를 실행하는 특정 계산 단위입니다. IoT Edge 런타임은 모듈 인스턴스를 시작합니다.
  • module ID는 각 모듈 인스턴스를 저장하고 연결하는 IoT Hub 보안 자격 증명을 포함한 정보입니다.
  • 모듈 쌍은 메타데이터, 구성 및 조건을 포함하여 모듈 인스턴스에 대한 상태 정보를 저장하고 포함하는 IoT Hub JSON 문서입니다.

모듈 이미지 및 인스턴스

IoT Edge 모듈 이미지에는 IoT Edge 런타임의 관리, 보안 및 통신 기능을 활용하는 애플리케이션이 포함되어 있습니다. 고유한 모듈 이미지를 개발하거나 Azure Stream Analytics 같은 지원되는 Azure 서비스에서 모듈 이미지를 내보낼 수 있습니다. 클라우드에서 이미지를 관리합니다. 다른 솔루션에서 업데이트, 변경 및 배포할 수 있습니다. 예를 들어 기계 학습을 사용하여 프로덕션 라인 출력을 예측하는 모듈은 컴퓨터 비전을 사용하여 드론을 제어하는 모듈과는 별도의 이미지입니다.

IoT Edge 런타임은 디바이스에서 모듈 이미지를 배포하고 시작할 때마다 해당 모듈의 새 인스턴스를 만듭니다. 전 세계의 다른 지역에 있는 두 디바이스는 동일한 모듈 이미지를 사용할 수 있습니다. 그러나 각 디바이스에는 모듈이 디바이스에서 시작될 때 자체 모듈 인스턴스가 있습니다.

다이어그램 - 클라우드의 모듈 이미지, 디바이스의 모듈 인스턴스

구현에서 모듈 이미지는 리포지토리의 컨테이너 이미지로 존재하며 모듈 인스턴스는 디바이스의 컨테이너입니다.

모듈 정체성

IoT Edge 런타임에서 새 모듈 인스턴스를 만들 때 해당 모듈 ID를 할당합니다. IoT Hub 모듈 인스턴스에 대한 모든 로컬 및 클라우드 통신의 주소 지정 및 보안 범위 역할을 하는 모듈 ID를 저장합니다.

모듈 인스턴스의 ID는 디바이스의 ID와 솔루션의 모듈에 할당하는 이름에 따라 달라집니다. 예를 들어 모듈 insight 이름을 지정하고 Hannover01 디바이스에 배포하는 경우 IoT Edge 런타임은 /devices/Hannover01/modules/insight라는 해당 모듈 ID를 만듭니다.

동일한 디바이스에서 하나의 모듈 이미지를 여러 번 배포해야 하는 시나리오에서는 다른 이름으로 배포할 수 있습니다.

다이어그램 - 모듈 ID는 디바이스 및 여러 디바이스에서 고유합니다.

쌍을 이루는 모듈

각 모듈 인스턴스에는 구성하는 데 사용하는 해당 모듈 쌍이 있습니다. 모듈 ID는 인스턴스와 트윈을 연결합니다.

모듈 쌍은 모듈 정보 및 구성 속성을 저장하는 JSON 문서입니다. 이 개념은 IoT Hub device twin 개념과 유사합니다. 모듈 쌍의 구조는 디바이스 쌍과 동일합니다. 두 유형의 트윈과 상호 작용하기 위한 API는 동일합니다. 둘 사이의 유일한 차이점은 클라이언트 SDK를 인스턴스화하는 데 사용되는 ID입니다.

// Create a ModuleClient object. This ModuleClient will act on behalf of a
// module since it is created with a module's connection string instead
// of a device connection string.
ModuleClient client = new ModuleClient.CreateFromEnvironmentAsync(settings);
await client.OpenAsync();

// Get the module twin
Twin twin = await client.GetTwinAsync();

오프라인 기능

Azure IoT Edge 모듈은 IoT Hub 한 번 동기화한 후 무기한 오프라인으로 작동합니다. IoT Edge 디바이스는 이 오프라인 기능을 다른 IoT 디바이스로 확장할 수도 있습니다. 자세한 내용은 IoT Edge 디바이스, 모듈 및 다운스트림 디바이스에 대한 확장된 오프라인 기능 참조하세요.

다음 단계