IoT Edge 사용 Linux VM 배포

완료됨

IoT Edge 구성을 테스트하려면 IoT Edge 런타임을 가상 머신(VM)에 배포해야 합니다.

IoT Edge 디바이스를 저장소에 배포하기 전에 디바이스가 예상대로 작동하는지 확인해야 합니다. 시나리오를 테스트하려면, Azure Linux VM에 IoT Edge 런타임을 배포한 다음, IoT Edge 모듈을 이 VM에 배포합니다.

여기에서는 몇 가지 핵심 IoT Edge 개념을 검토하고, IoT Edge 디바이스가 Azure IoT Central 애플리케이션에 연결되는 방법과 Azure IoT Central이 IoT Edge 모듈을 IoT Edge 런타임에 배포하는 방법을 알아봅니다.

IoT Edge 런타임이란?

Azure IoT Edge 런타임은 IoT Edge 디바이스에서 사용자 지정 논리 및 클라우드 논리를 지원합니다. 런타임은 IoT Edge 디바이스에 상주하며, 관리 및 통신 작업을 수행합니다. 런타임이 다음을 수행합니다.

  • 디바이스에 워크로드를 설치하고 업데이트합니다.

  • 디바이스에서 Azure IoT Edge 보안 표준을 유지합니다.

  • IoT Edge 모듈이 항상 실행되도록 보장합니다.

  • 원격 모니터링을 위해 모듈 상태를 클라우드에 보고합니다.

  • 다음 간의 통신을 관리합니다.

    • 다운스트림 디바이스 및 IoT Edge 디바이스
    • IoT Edge 디바이스의 모듈
    • IoT Edge 디바이스 및 클라우드
    • IoT Edge 디바이스

IoT Edge 모듈이란?

IoT Edge 모듈은 에지에 비즈니스 로직을 실행하는 실행 단위입니다. 모듈은 Docker 규격 컨테이너로 구현됩니다. 여러 모듈이 서로 통신하도록 구성하여 데이터 처리 파이프라인을 생성할 수 있습니다. 사용자 지정 모듈을 개발하거나 오프라인 및 에지에서 통찰력을 제공하는 모듈에 특정 Azure 서비스를 패키지화할 수 있습니다. 모듈은 Docker 컨테이너에서 실행되므로 VM이나 물리적 디바이스에 설치하든 동일한 방식으로 작동합니다.

다음 단원에서는, IoT Edge 런타임을 설치하고 Azure IoT Central에 보낼 환경 데이터를 수집하는 사용자 지정 모듈을 배포합니다. Azure IoT Central 운영자는 애플리케이션의 대시보드에서 원격 분석을 확인하여 저장소의 환경 조건을 모니터링할 수 있습니다.

IoT Edge 디바이스는 Azure IoT Central에 어떻게 연결되나요?

IoT Edge 디바이스는 다른 디바이스와 마찬가지로 IoT Hub DPS(Device Provisioning Service)를 사용하여 Azure IoT Central 애플리케이션에 연결합니다. 이전 단원에서, Azure IoT Central 애플리케이션에 디바이스를 추가할 때 범위 ID디바이스 키를 기록해 두었습니다. 이러한 값을 IoT Edge 디바이스의 IoT Edge 구성 파일에 추가합니다. 이 TOML 파일의 관련 섹션은 다음과 같습니다. registration_id은 디바이스 ID입니다.

[provisioning]
source = "dps"
global_endpoint = "https://global.azure-devices-provisioning.net"
id_scope = "YOUR_ID_SCOPE"

[provisioning.attestation]
method = "symmetric_key"
registration_id = "YOUR_DEVICE_ID"
symmetric_key = { value = "YOUR_DEVICE_KEY" }

다음 단원에서는 IoT Edge 디바이스에 사용하는 배포 스크립트가 구성 파일을 편집합니다.

Azure IoT Central은 어떻게 IoT Edge 런타임에 모듈을 배포하나요?

이전 단원에서 환경 센서에 대한 디바이스 템플릿을 생성할 때 템플릿에 배포 매니페스트를 업로드했습니다. IoT Edge 런타임이 Azure IoT Central 애플리케이션에 연결할 때 배포 매니페스트가 다운로드됩니다. 런타임은 배포 매니페스트의 정보를 사용하여 설치할 모듈과 구성 방법을 결정합니다. 모듈은 Azure Container Registry 또는 Docker Hub 같은 컨테이너 레지스트리에서 다운로드합니다.

사용한 배포 매니페스트는 두 개의 필수 시스템 모듈인 edgeAgentedgeHub와 사용자 지정 SimulatedTemperatureSensor 모듈을 설치합니다. 이 사용자 지정 모듈은 주변 및 머신 원격 분석을 Azure IoT Central로 보내고, 운영자가 모듈을 구성하는 데 사용할 수 있는 SendDataSendInterval이라는 두 가지 속성을 제공합니다.

{
  "modulesContent": {
    "$edgeAgent": {
      "properties.desired": {
        "schemaVersion": "1.0",
        "runtime": {
          "type": "docker",
          "settings": {
            "minDockerVersion": "v1.25",
            "loggingOptions": "",
            "registryCredentials": {}
          }
        },
        "systemModules": {
          "edgeAgent": {
            "type": "docker",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-agent:1.4",
              "createOptions": "{}"
            }
          },
          "edgeHub": {
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-hub:1.4",
              "createOptions": "{}"
            }
          }
        },
        "modules": {
          "SimulatedTemperatureSensor": {
            "version": "1.0",
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4.6",
              "createOptions": "{}"
            }
          }
        }
      }
    },
    "$edgeHub": {
      "properties.desired": {
        "schemaVersion": "1.0",
        "routes": {
            "route": "FROM /* INTO $upstream"
        },
        "storeAndForwardConfiguration": {
          "timeToLiveSecs": 7200
        }
      }
    },
    "SimulatedTemperatureSensor": {
      "properties.desired": {
           "SendData": true,
           "SendInterval": 10
      }
    }
  }
}

VM에 IoT Edge 배포

1.

IoT Edge 디바이스는 Azure IoT Central에 어떻게 연결되나요?

2.

IoT Edge 디바이스는 어디에서 모듈을 다운로드하나요?