다음을 통해 공유


Azure CLI를 사용하여 Azure IoT Edge 모듈 배포

적용 대상:IoT Edge 1.5 확인 표시 IoT Edge 1.5

중요합니다

IoT Edge 1.5 LTS는 지원되는 릴리스입니다. IoT Edge 1.4 LTS는 2024년 11월 12일부터 수명이 종료됩니다. 이전 릴리스에 있는 경우 IoT Edge 업데이트를 참조하세요.

비즈니스 논리를 사용하여 Azure IoT Edge 모듈을 만든 후 디바이스에 배포하여 에지에서 작동합니다. 여러 모듈이 함께 작동하여 데이터를 수집하고 처리하는 경우 한 번에 모두 배포합니다. 그들을 연결하는 라우팅 규칙도 선언합니다.

Azure CLI 는 IoT Edge와 같은 Azure 리소스를 관리하기 위한 오픈 소스 플랫폼 간 명령줄 도구입니다. Azure IoT Hub 리소스, 디바이스 프로비저닝 서비스 인스턴스 및 연결된 허브를 기본으로 관리할 수 있습니다. 새로운 IoT 확장은 디바이스 관리 및 전체 IoT Edge 기능과 같은 기능으로 Azure CLI를 보강합니다.

이 문서에서는 JSON 배포 매니페스트를 만들고 해당 파일을 사용하여 배포를 IoT Edge 디바이스로 푸시하는 방법을 설명합니다. 해당 공유 태그에 따라 다중 디바이스를 대상으로 지정하는 배포를 만드는 방법에 대한 정보는 대규모 IoT Edge 모듈 배포 및 모니터링을 참조하세요.

필수 조건

배포 매니페스트 구성

배포 매니페스트는 배포할 모듈, 모듈 간의 데이터 흐름 및 모듈 쌍의 desired 속성을 설명하는 JSON 문서입니다. 배포 매니페스트의 작동 방식 및 매니페스트를 만드는 방법에 대한 자세한 내용은 IoT Edge 모듈을 사용하고 구성하고 다시 사용하는 방법을 이해하세요.

Azure CLI를 사용하여 모듈을 배포하려면 배포 매니페스트를 로컬에 .json 파일로 저장합니다. 다음 섹션의 파일 경로를 사용하여 명령을 실행하고 디바이스에 구성을 적용합니다.

다음은 하나의 모듈을 예로 들어 사용하는 기본 배포 매니페스트입니다.

참고 항목

이 샘플 배포 매니페스트는 IoT Edge 에이전트 및 허브용 스키마 버전 1.1을 사용합니다. 스키마 버전 1.1은 IoT Edge 버전 1.0.10에 포함되어 있으며 모듈 시작 순서 및 경로 우선 순위 지정과 같은 기능을 사용할 수 있습니다.

{
  "content": {
    "modulesContent": {
      "$edgeAgent": {
        "properties.desired": {
          "schemaVersion": "1.1",
          "runtime": {
            "type": "docker",
            "settings": {
              "minDockerVersion": "v1.25",
              "loggingOptions": "",
              "registryCredentials": {}
            }
          },
          "systemModules": {
            "edgeAgent": {
              "type": "docker",
              "settings": {
                "image": "mcr.microsoft.com/azureiotedge-agent:1.5",
                "createOptions": "{}"
              }
            },
            "edgeHub": {
              "type": "docker",
              "status": "running",
              "restartPolicy": "always",
              "settings": {
                "image": "mcr.microsoft.com/azureiotedge-hub:1.5",
                "createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}"
              }
            }
          },
          "modules": {
            "SimulatedTemperatureSensor": {
              "version": "1.0",
              "type": "docker",
              "status": "running",
              "restartPolicy": "always",
              "settings": {
                "image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5",
                "createOptions": "{}"
              }
            }
          }
        }
      },
      "$edgeHub": {
        "properties.desired": {
          "schemaVersion": "1.1",
          "routes": {
            "upstream": "FROM /messages/* INTO $upstream"
          },
          "storeAndForwardConfiguration": {
            "timeToLiveSecs": 7200
          }
        }
      },
      "SimulatedTemperatureSensor": {
        "properties.desired": {
          "SendData": true,
          "SendInterval": 5
        }
      }
    }
  }
}

새 디바이스에 배포

모듈 정보를 사용하여 구성한 배포 매니페스트를 적용하여 디바이스에 모듈을 배포합니다.

배포 매니페스트를 저장한 폴더로 디렉터리를 변경합니다. Visual Studio Code IoT Edge 템플릿 중 하나를 사용한 경우 deployment.json 파일 대신 솔루션 디렉터리의 config 폴더에 있는 deployment.template.json 파일을 사용합니다.

다음 명령을 사용하여 IoT Edge 디바이스에 구성을 적용합니다.

az iot edge set-modules --device-id [device id] --hub-name [hub name] --content [file path]

디바이스 ID 매개 변수는 대/소문자를 구분합니다. 콘텐츠 매개 변수는 저장한 배포 매니페스트 파일을 가리킵니다.

az iot edge set-modules 명령줄 출력을 보여 주는 스크린샷.

디바이스에서 모듈 보기

디바이스에 모듈을 배포하면 다음 명령을 사용하여 모두 볼 수 있습니다.

IoT Edge 디바이스의 모듈 보기:

az iot hub module-identity list --device-id [device id] --hub-name [hub name]

디바이스 ID 매개 변수는 대/소문자를 구분합니다.

az iot hub module-identity list 명령 출력을 보여 주는 스크린샷.

다음 단계

대규모 IoT Edge 모듈을 배포 및 모니터링하는 방법 알아보기