다음을 통해 공유


Azure IoT 데이터 프로세서 미리 보기 파이프라인의 메시지 구조

Important

Azure IoT 작업 미리 보기 - Azure Arc에서 지원되는 Azure IoT 작업은 현재 미리 보기로 제공됩니다. 프로덕션 환경에서는 이 미리 보기 소프트웨어를 사용하면 안 됩니다.

베타, 미리 보기로 제공되거나 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 약관은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요.

Azure IoT 데이터 프로세서 미리 보기는 들어오는 메시지를 일련의 파이프라인 단계를 통해 전달하여 처리합니다. 파이프라인의 각 단계는 메시지를 다음 단계로 전달하기 전에 변환할 수 있습니다. 이 문서에서는 메시지가 파이프라인을 통해 이동할 때 메시지를 나타내는 데 사용되는 구조에 대해 설명합니다. 원격 분석 메시지를 처리하도록 파이프라인 단계를 구성할 때 메시지 구조를 이해하는 것이 중요합니다.

다음 예제에서는 파이프라인을 통해 Azure IoT MQ 미리 보기에서 읽은 메시지의 JSON 표현을 보여줍니다.

{
    "systemProperties":{
        "partitionKey":"foo",
        "partitionId":5,
        "timestamp":"2023-01-11T10:02:07Z"
    },
    "qos":1,
    "topic":"/assets/foo/tags/bar",
    "properties":{
        "responseTopic":"outputs/foo/tags/bar",
        "contentType": "application/json",
        "payloadFormat":1,
        "correlationData":"base64::Zm9v",
        "messageExpiry":412
    },
    "userProperties":[
        {
            "key":"prop1",
            "value":"value1"
        },
        {
            "key":"prop2",
            "value":"value2"
        }
    ],
    "payload":
    { 
        "values":[ 
            { 
                "timeStamp":"2022-06-14T16:59:01Z", 
                "tag":"temperature", 
                "numVal":250
            }, 
            { 
                "timeStamp":"2022-06-14T16:59:01Z", 
                "tag":"pressure", 
                "numVal":30 
            }, 
            { 
                "timeStamp":"2022-06-14T16:59:01Z", 
                "tag":"humidity", 
                "numVal":10
            }, 
            { 
                "timeStamp":"2022-06-14T16:59:01Z", 
                "tag":"runningStatus", 
                "boolVal":true
            }
        ] 
    } 
}

데이터 형식

데이터 프로세서 메시지는 다음 데이터 형식을 지원합니다.

  • 지도
  • 배열
  • 부울
  • 정수 – 64비트 크기
  • Float – 64비트 크기
  • 문자열
  • 이진

시스템 데이터

모든 시스템 수준 메타데이터는 systemProperties 노드에 배치됩니다.

속성 설명 Type 참고 항목
timestamp 시스템에서 메시지를 받은 시간을 나타내는 RFC3339 UTC 밀리초 타임스탬프입니다. 문자열 이 필드는 항상 입력 단계에서 추가됩니다.
partitionId 메시지의 실제 파티션입니다. 정수 이 필드는 항상 입력 단계에서 추가됩니다.
partitionKey 입력 단계에서 정의된 논리 파티션 키입니다. 문자열 이 필드는 파티션 식을 정의한 경우에만 추가됩니다.

페이로드

페이로드 섹션에는 들어오는 메시지의 기본 내용이 포함되어 있습니다. payload 섹션의 내용은 파이프라인의 입력 단계에서 선택한 형식에 따라 달라집니다.

  • 입력 단계에서 Raw 형식을 선택한 경우 페이로드 콘텐츠는 이진입니다.
  • 입력 단계에서 데이터를 구문 분석하면 페이로드의 내용이 그에 따라 표시됩니다.

기본적으로 파이프라인은 들어오는 페이로드를 구문 분석하지 않습니다. 이전 예제에서는 구문 분석된 입력 데이터를 보여 줍니다. 자세한 내용은 메시지 형식을 참조 하세요.

메타데이터

기본 데이터의 일부가 아닌 모든 메타데이터는 메시지 내의 최상위 속성이 됩니다.

속성 설명 Type 참고 항목
topic 메시지를 읽는 항목입니다. 문자열 이 필드는 항상 입력에 추가됩니다.
qos 입력 단계에서 선택한 서비스 수준의 품질입니다. 정수 이 필드는 항상 입력 단계에서 추가됩니다.
packetId 메시지의 패킷 ID입니다. 정수 이 필드는 서비스 품질이 1 또는 2일 때만 추가됩니다.
properties 입력 단계에서 정의된 논리 파티션 키입니다. 지도 속성 모음은 항상 추가됩니다.
userProperties 사용자 정의 속성. Array 속성 모음은 항상 추가됩니다. 메시지에 사용자 속성이 없으면 콘텐츠가 비어 있을 수 있습니다.