다음을 통해 공유


IoT Edge 에이전트 및 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 업데이트를 참조하세요.

IoT Edge 에이전트 및 IoT Edge 허브는 IoT Edge 런타임을 구성하는 두 가지 모듈입니다. 각 런타임 모듈의 책임에 대한 자세한 내용은 Azure IoT Edge 런타임 및 해당 아키텍처를 이해하세요.

이 문서에서는 런타임 모듈 트윈스의 desired 속성 및 reported 속성을 제공합니다. IoT Edge 디바이스에서 모듈을 배포하는 방법에 대한 자세한 내용은 모 듈을 배포하고 IoT Edge에서 경로를 설정하는 방법을 참조하세요.

모듈 쌍은 다음을 포함합니다.

  • desired 속성. 솔루션 백 엔드는 원하는 속성을 설정하고 모듈은 이를 읽습니다. 또한 모듈은 원하는 속성의 변경 내용에 대한 알림을 받습니다. 원하는 속성은 reported 속성과 함께 모듈 구성 또는 조건을 동기화하는 데 사용됩니다.

  • reported 속성. 모듈은 보고된 속성을 설정하고 솔루션의 백엔드는 이를 읽고 쿼리합니다. reported 속성은 desired 속성과 함께 모듈 구성 또는 조건을 동기화하는 데 사용됩니다.

Edge 에이전트 desired 속성

IoT Edge 에이전트에 대한 모듈 쌍은 $edgeAgent라고 불립니다. 디바이스에서 실행되는 IoT Edge 에이전트와 IoT Hub 간의 통신을 조정합니다. 단일 디바이스 또는 대규모 배포의 일부로 특정 디바이스에 배포 매니페스트를 적용할 때 desired 속성이 설정됩니다.

속성 설명 필수
imagePullPolicy (이미지를 가져오는 정책) 이미지를 끌어올 시기를 지정합니다. OnCreate 또는 Never. 이미지가 이미 디바이스에 있는 경우 Never 를 사용합니다.
재시작 정책 모듈을 다시 시작해야 하는 경우 가능한 값은 Never: 실행되지 않으면 모듈을 다시 시작하지 않음, Always: 실행되지 않는 경우 항상 모듈 다시 시작, On-Unhealthy: 비정상인 경우 모듈 다시 시작입니다. 비정상은 상태 검사를 기반으로 Docker에서 보고하는 내용입니다(예: "비정상 - 컨테이너가 제대로 작동하지 않음", 실패 시: 실패하면 다시 시작).
런타임 타입 docker여야 합니다.
runtime.settings.minDockerVersion 이 배포 매니페스트에 필요한 최소 Docker 버전을 지정합니다.
런타임.설정.로그 옵션 IoT Edge 에이전트 컨테이너에 대한 로깅 옵션을 사용하여 문자열화된 JSON을 지정합니다. Docker 로깅 옵션에 대해 자세히 알아봅니다. 아니요
runtime.settings.registryCredentials. {registryId}.username 컨테이너 레지스트리의 사용자 이름을 지정합니다. Azure Container Registry의 경우 사용자 이름은 일반적으로 레지스트리 이름입니다. 레지스트리 자격 증명은 프라이빗 모듈 이미지에 필요합니다. 아니요
런타임.설정.레지스트리자격증명.{registryId}.패스워드 컨테이너 레지스트리에 대한 암호입니다. 아니요
runtime.settings.registryCredentials. {registryId}.address 컨테이너 레지스트리의 주소입니다. Azure Container Registry의 경우 주소는 일반적으로 {registryname}.azurecr.io입니다. 아니요
스키마 버전 1.0 또는 1.1을 지정합니다. IoT Edge 버전 1.0.10에서 도입된 버전 1.1을 사용하는 것이 좋습니다.
상태 모듈의 원하는 상태: 실행 중 또는 중지됨. 필수
systemModules.edgeAgent.type docker여야 합니다.
시스템모듈.edgeAgent.시작순서 모듈 위치의 정수(시작 순서)를 지정합니다. 0 이 첫 번째이고 최대 정수 (4294967295)가 마지막입니다. 값이 제공되지 않으면 기본값은 최대 정수입니다. 아니요
systemModules.edgeAgent.설정.이미지 IoT Edge 에이전트 이미지의 URI를 지정합니다. IoT Edge 에이전트는 자체 업데이트할 수 없습니다.
시스템모듈.edgesAgent.설정.생성옵션 IoT Edge 에이전트 컨테이너를 만들기 위한 옵션을 사용하여 문자열화된 JSON을 지정합니다. Docker 만들기 옵션에 대해 자세히 알아봅니다. 아니요
systemModules.edgeAgent.configuration.id 이 모듈을 배포한 배포의 ID입니다. IoT Hub는 배포를 사용하여 매니페스트를 적용할 때 이 속성을 설정합니다. 배포 매니페스트의 일부가 아닙니다.
systemModules.edgeHub.type docker여야 합니다.
systemModules.edgeHub.status running이어야 합니다.
systemModules.edgeHub.restartPolicy always여야 합니다.
systemModules.edgeHub.startupOrder 모듈의 시작 순서에 해당하는 정수 값입니다. 0이 첫 번째이고 최대 정수(4294967295)가 마지막입니다. 값을 제공하지 않으면 기본값은 최대 정수입니다. 아니요
시스템모듈.엣지허브.설정.이미지 IoT Edge 허브 이미지의 URI입니다.
systemModules.edgeHub.settings.createOptions IoT Edge 허브 컨테이너에 대한 만들기 옵션을 포함하는 문자열 형식 JSON입니다. Docker 만들기 옵션 아니요
systemModules.edgeHub.configuration.id 이 모듈을 배포한 배포의 ID입니다. IoT Hub는 배포를 사용하여 매니페스트를 적용할 때 이 속성을 설정합니다. 배포 매니페스트의 일부가 아닙니다.
모듈.{moduleId}.version 이 모듈의 버전을 나타내는 사용자 정의 문자열입니다.
모듈.{moduleId}.타입 docker여야 합니다.
모듈.{moduleId}.상태 {실행 중 | 멈춤}
모듈. {moduleId}.restartPolicy {never | always}
모듈。{moduleId}.startupOrder 시작 순서에서 모듈의 위치에 대한 정수 값입니다. 0이 첫 번째이고 최대 정수(4294967295)가 마지막입니다. 값을 제공하지 않으면 기본값은 최대 정수입니다. 아니요
모듈.{moduleId}.imagePullPolicy {on-create | 절대} 아니요
모듈. {moduleId}.env 모듈에 전달할 환경 변수 목록입니다. "<name>": {"value": "<value>"} 형식을 사용합니다. 아니요
모듈.{moduleId}.설정.이미지 모듈 이미지에 대한 URI입니다.
모듈.{moduleId}.settings.createOptions 모듈 컨테이너에 대한 만들기 옵션을 포함하는 문자열 형식 JSON입니다. Docker 만들기 옵션 아니요
모듈. {moduleId}.configuration.id 이 모듈을 배포한 배포의 ID입니다. IoT Hub는 배포를 사용하여 매니페스트를 적용할 때 이 속성을 설정합니다. 배포 매니페스트의 일부가 아닙니다.
버전 버전, 커밋 및 빌드가 있는 현재 반복입니다. 아니요

Edge 에이전트 reported 속성

IoT Edge 에이전트의 보고된 특성에는 다음 세 가지 주요 정보가 포함하고 있습니다.

  • 마지막으로 본 바람직한 속성의 애플리케이션 상태
  • IoT Edge 에이전트에서 보고한 대로 디바이스에서 현재 실행 중인 모듈의 상태 및
  • 디바이스에서 현재 실행 중인 원하는 속성의 복사본입니다.

현재 원하는 속성의 복사본은 디바이스가 최신 배포를 적용했는지 아니면 이전 배포 매니페스트를 계속 실행하고 있는지 확인하는 데 도움이 됩니다.

참고 항목

IoT Hub 쿼리 언어를 사용하여 IoT Edge 에이전트의 보고된 속성을 쿼리하여 대규모로 배포 상태를 조사할 수 있습니다. 단일 디바이스 또는 대규모 배포의 이해 섹션에서 상태에 대한 IoT Edge 에이전트 속성 사용 방법을 알아봅니다.

다음 표에는 원하는 속성에서 복사된 정보가 포함되어 있지 않습니다.

속성 설명
최종희망상태.코드 IoT Edge 에이전트가 마지막으로 본 원하는 속성의 상태 코드입니다. 허용되는 값: 200 성공, 400 잘못된 구성, 412 잘못된 스키마 버전, 417 비어 있는 Desired 속성, 500 실패함.
lastDesiredStatus.description 상태에 대한 텍스트 설명입니다.
최종 원하는 버전 이 정수는 IoT Edge 에이전트에서 처리하는 desired 속성의 마지막 버전을 나타냅니다.
runtime.platform.OS 디바이스에서 실행 중인 OS를 보고합니다.
런타임 플랫폼 구조 디바이스의 CPU 아키텍처를 보고합니다.
스키마 버전 reported 속성의 스키마 버전입니다.
시스템 모듈.에지 에이전트.실행 상태 IoT Edge 에이전트의 보고된 상태: {running | unhealthy}.
시스템모듈.엣지에이전트.상태설명 IoT Edge 에이전트의 reported 상태에 대한 텍스트 설명입니다.
systemModules.edgeAgent.exitCode 컨테이너가 종료되는 경우 IoT Edge 에이전트 컨테이너에서 보고하는 종료 코드입니다.
systemModules.edgeAgent.lastStartTimeUtc IoT Edge 에이전트가 마지막으로 시작된 시간입니다.
systemModules.edgeAgent.lastExitTimeUtc IoT Edge 에이전트가 마지막으로 종료된 시간입니다.
systemModules.edgeHub.runtimeStatus IoT Edge 허브의 상태: { running | stopped | failed | backoff | unhealthy }.
시스템 구성 요소.edgeHub.상태 설명 비정상인 경우 IoT Edge 허브의 상태에 대한 텍스트 설명입니다.
systemModules.edgeHub.exitCode 컨테이너가 종료되는 경우 IoT Edge 허브 컨테이너에서 보고하는 종료 코드입니다.
systemModules.edgeHub.lastStartTimeUtc IoT Edge 허브가 마지막으로 시작된 시간입니다.
systemModules.edgeHub.lastExitTimeUtc IoT Edge 허브가 마지막으로 종료된 시간입니다.
systemModules.edgeHub.마지막재시작시간UTC IoT Edge 허브가 마지막으로 다시 시작된 시간입니다.
시스템 모듈.엣지 허브.재시작 횟수 이 모듈이 다시 시작 정책의 일부로 다시 시작된 횟수입니다.
모듈. {moduleId}.runtimeStatus 모듈의 상태: { running | stopped | failed | backoff | unhealthy }.
모듈. {moduleId}.statusDescription 비정상인 경우 모듈의 상태에 대한 텍스트 설명입니다.
모듈.{moduleId}.exitCode 컨테이너가 종료되는 경우 모듈 컨테이너가 보고하는 종료 코드입니다.
모듈. {moduleId}.lastStartTimeUtc 모듈이 마지막으로 시작된 시간입니다.
모듈. {moduleId}.lastExitTimeUtc 모듈이 마지막으로 종료된 시간입니다.
모듈. {moduleId}.lastRestartTimeUtc 모듈을 마지막으로 다시 시작된 시간입니다.
모듈. {moduleId}.restartCount 이 모듈이 다시 시작 정책의 일부로 다시 시작된 횟수입니다.
버전 이미지의 버전입니다. 예: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }.

Edge 허브 desired 속성

IoT Edge 허브에 대한 모듈 쌍은 $edgeHub라고 하며, 디바이스에서 실행 중인 IoT Edge 허브와 IoT Hub 간의 통신을 조정합니다. 단일 디바이스 또는 대규모 배포의 일부로 특정 디바이스에 배포 매니페스트를 적용할 때 desired 속성이 설정됩니다.

속성 설명 배포 매니페스트에 필요합니다.
스키마 버전 1.0 또는 1.1. IoT Edge 버전 1.0.10에서 도입된 버전 1.1을 사용하는 것이 좋습니다.
경로. {routeName} IoT Edge 허브 경로를 나타내는 문자열입니다. 자세한 내용은 경로 선언을 참조하세요. routes 요소는 존재하지만 비어 있을 수 있습니다.
storeAndForwardConfiguration.timeToLiveSecs IoT Hub 또는 로컬 모듈과 관계없이 라우팅 엔드포인트에서 연결이 끊어진 경우 IoT Edge 허브에서 메시지를 보관하는 디바이스 시간(초)입니다. 이 시간은 전원이 꺼지거나 다시 시작되는 동안 유지됩니다. 자세한 내용은 오프라인 기능을 참조하세요.

Edge 허브 reported 속성

속성 설명
최종 원하는 버전 이 정수는 IoT Edge 허브에서 처리하는 desired 속성의 마지막 버전을 나타냅니다.
최종희망상태.코드 IoT Edge 허브에서 마지막으로 표시된 desired 속성을 나타내는 상태 코드입니다. 허용되는 값: 200 성공, 400 잘못된 구성, 500 실패
lastDesiredStatus.description 상태에 대한 텍스트 설명입니다.
클라이언트 상태 및 마지막 연결 시간으로 edgeHub에 연결된 모든 클라이언트입니다. 예: "clients": { "device2/SimulatedTemperatureSensor": { "status": "Connected", "lastConnectedTimeUtc": "2022-11-17T21:49:16.4781564Z" } }.
클라이언트. {device 또는 moduleId}.status 이 디바이스 또는 모듈의 연결 상태입니다. 가능한 값 {연결 | 끊김}. 모듈 ID만 연결이 끊긴 상태가 될 수 있습니다. 연결된 경우에만 IoT Edge 허브에 연결된 다운스트림 디바이스가 표시됩니다.
클라이언트.{device 또는 moduleId}.lastConnectTime 디바이스 또는 모듈이 마지막으로 연결된 시간입니다.
클라이언트.{장치 또는 모듈 ID}.마지막 연결 해제 시간 디바이스 또는 모듈의 연결이 마지막으로 끊긴 시간입니다.
스키마 버전 reported 속성의 스키마 버전입니다.
버전 이미지의 버전입니다. 예: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }.

다음 단계

이러한 속성을 사용하여 배포 매니페스트를 빌드하는 방법을 알아보려면 IoT Edge 모듈을 사용, 구성 및 다시 사용하는 방법에 대한 이해를 참조하세요.