이벤트 알림
이 문서에서는 Azure Digital Twins에서 생성된 이벤트 알림, 해당 구조 및 생성할 수 있는 다양한 형식에 대한 세부 정보를 다룹니다.
Azure Digital Twins의 여러 이벤트는 알림을 생성하며, 이를 통해 다양한 작업이 수행될 때 솔루션 백 엔드가 인식될 수 있습니다. 이 알림은 작업을 수행하는 데 이 정보를 사용할 수 있는 Azure Digital Twins 내부 및 외부의 여러 위치로 라우팅됩니다.
생성할 수 있는 여러 유형의 알림이 있으며 알림 메시지는 생성된 이벤트 유형에 따라 다르게 보일 수 있습니다. 이 문서에서는 다양한 유형의 메시지에 관한 세부 정보와 표시되는 모양을 제공합니다.
이 차트에서는 다음과 같은 다양한 알림 유형을 보여 줍니다.
알림 유형 | 라우팅 원본 이름 | 생성 원인... |
---|---|---|
디지털 트윈 변경 알림 | 디지털 트윈 변경 알림 | 모든 디지털 트윈 속성 변경 |
디지털 트윈 수명 주기 알림 | 디지털 트윈 수명 주기 알림 | 모든 디지털 트윈 만들기 또는 삭제 작업 |
디지털 트윈 관계 변경 알림 | 디지털 트윈 관계 변경 알림 | 모든 디지털 트윈 관계 변경 |
디지털 트윈 원격 분석 메시지 | 원격 분석 메시지 | 모든 원격 분석 메시지 |
알림 구조
Azure Digital Twins의 이벤트 알림 구조는 알림 대상에 따라 달라집니다.
Event Grid로 전송된 알림은 다음 형식 중 하나를 따릅니다(Event Grid 설정에 따라 다름).
- Azure Event Grid 이벤트 스키마
- CloudEvents에 대한 HTTP 프로토콜 바인딩입니다.
Event Hubs 및 Service Bus로 전송된 알림은 CloudEvents에 대한 AMQP 프로토콜 바인딩을 준수합니다.
디지털 트윈 변경 알림
디지털 트윈 변경 알림은 다음과 같이 디지털 트윈이 업데이트되는 경우 생성됩니다.
- 속성 값 또는 메타데이터가 변경되는 경우
- 디지털 트윈 또는 구성 요소 메타데이터가 변경되는 경우 이 시나리오의 예제에서는 디지털 트윈의 모델을 변경합니다.
속성
디지털 트윈 변경 알림 본문의 필드는 다음과 같습니다.
속성 | 값 |
---|---|
id |
서비스에서 유지 관리되는 카운터 또는 UUID와 같은 알림의 식별자. source + id 는 각 고유 이벤트에 대해 고유합니다. |
source |
IoT 허브 또는 Azure Digital Twins 인스턴스의 이름(예: myhub.azure-devices.net 또는 mydigitaltwins.westus2.azuredigitaltwins.net) |
data |
트윈에 적용되는 업데이트를 설명하는 JSON 패치 문서. 자세한 내용은 아래 본문 세부 정보를 참조하세요. |
specversion |
1.0 메시지는 이 버전의 CloudEvents 사양을 따릅니다. |
type |
Microsoft.DigitalTwins.Twin.Update |
datacontenttype |
application/json |
subject |
디지털 트윈 ID |
time |
디지털 트윈에서 작업이 수행된 시간의 타임스탬프 |
traceparent |
이벤트의 W3C 추적 컨텍스트 |
본문 세부 정보
메시지 내에서 data
필드는 디지털 트윈 업데이트가 들어 있는 JSON 패치 문서를 포함합니다.
다음은 가능한 각 알림 스키마에 대한 이 메시지 유형의 예입니다.
{
"id": "39d4abb9-e3ee-4ed5-ad17-2243a9784946",
"subject": "example-twin1",
"data": {
"data": {
"modelId": "dtmi:examplecom:interfaceName;1",
"patch": [
{
"value": "new name",
"path": "/room",
"op": "replace"
}
]
},
"contenttype": "application/json",
"traceparent": "00-2aa957558db348f387ef704b37631a1d-c28d665340fe5045-01"
},
"eventType": "Microsoft.DigitalTwins.Twin.Update",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2021-12-09T20:28:52.9795363Z",
"topic": "/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.EventGrid/topics/<topic-name>"
}
참고 항목
Azure Digital Twins는 현재 배열 내의 필드를 기반으로 하는 이벤트 필터링을 지원하지 않습니다. 여기에는 디지털 트윈 변경 알림의 patch
섹션 내 속성 필터링이 포함됩니다.
디지털 트윈 수명 주기 알림
디지털 트윈이 Azure Digital Twins의 IoT Hub 디바이스를 나타내는지 여부에 관계없이, 디지털 트윈은 모두 알림을 내보냅니다. 디지털 트윈 자체와 관련이 있는 수명 주기 알림 때문입니다.
수명 주기 알림은 다음 경우에 생성됩니다.
- 디지털 트윈이 생성되는 경우
- 디지털 트윈이 삭제되는 경우
속성
수명 주기 알림 본문의 필드는 다음과 같습니다.
속성 | 값 |
---|---|
id |
서비스에서 유지 관리되는 카운터 또는 UUID와 같은 알림의 식별자. source + id 는 각 고유 이벤트에 대해 고유합니다. |
source |
IoT 허브 또는 Azure Digital Twins 인스턴스의 이름(예: myhub.azure-devices.net 또는 mydigitaltwins.westus2.azuredigitaltwins.net) |
data |
수명 주기 이벤트가 발생하는 트윈의 데이터. 자세한 내용은 아래 본문 세부 정보를 참조하세요. |
specversion |
1.0 메시지는 이 버전의 CloudEvents 사양을 따릅니다. |
type |
Microsoft.DigitalTwins.Twin.Create Microsoft.DigitalTwins.Twin.Delete |
datacontenttype |
application/json |
subject |
디지털 트윈 ID |
time |
트윈에서 작업이 수행된 시간의 타임스탬프 |
traceparent |
이벤트의 W3C 추적 컨텍스트 |
본문 세부 정보
다음은 가능한 각 알림 스키마에 대한 이 메시지 유형의 예입니다.
{
"id": "6ccdb1cd-0dc3-450f-8730-ceccda8439be",
"subject": "example-twin1",
"data": {
"data": {
"$dtId": "example-twin1",
"$etag": "W/\"ecf81d6c-8c1a-4a95-afd8-13bd4cea436f\"",
"room": "room name",
"$metadata": {
"$model": "dtmi:examplecom:interfaceName;1",
"room": {
"lastUpdateTime": "2021-12-09T20:28:52.6651216Z"
}
}
},
"contenttype": "application/json",
"traceparent": "00-2aa957558db348f387ef704b37631a1d-51f716e7397ec64b-01"
},
"eventType": "Microsoft.DigitalTwins.Twin.Create",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2021-12-09T20:28:52.6745538Z",
"topic": "/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.EventGrid/topics/<topic-name>"
}
디지털 트윈 관계 변경 알림
관계 변경 알림은 디지털 트윈의 관계가 생성, 업데이트 또는 삭제될 때 생성됩니다.
속성
관계 변경 알림 본문의 필드는 다음과 같습니다.
속성 | 값 |
---|---|
id |
서비스에서 유지 관리되는 카운터 또는 UUID와 같은 알림의 식별자. source + id 는 각 고유 이벤트에 대해 고유합니다. |
source |
mydigitaltwins.westus2.azuredigitaltwins.net과 같은 Azure Digital Twins 인스턴스의 이름 |
data |
변경된 관계의 페이로드. 자세한 내용은 아래 본문 세부 정보를 참조하세요. |
specversion |
1.0 메시지는 이 버전의 CloudEvents 사양을 따릅니다. |
type |
Microsoft.DigitalTwins.Relationship.Create Microsoft.DigitalTwins.Relationship.Update Microsoft.DigitalTwins.Relationship.Delete |
datacontenttype |
application/json |
subject |
관계 ID(예: <twin-ID>/relationships/<relationshipID> ) |
time |
관계에서 작업이 수행된 시간의 타임스탬프 |
traceparent |
이벤트의 W3C 추적 컨텍스트 |
본문 세부 정보
메시지 내에서 data
필드는 JSON 형식으로 관계의 페이로드를 포함합니다. 이 필드는 DigitalTwins API를 통해 관계에 대한 GET
요청과 동일한 형식을 사용합니다.
다음은 가능한 각 알림 스키마에 대한 이 메시지 유형의 예입니다.
{
"id": "4d850574-0a28-4667-a59e-3b382ff0e74e",
"subject": "example-twin1/relationships/RuntimeEventsScenario_edge",
"data": {
"data": {
"modelId": "dtmi:examplecom:interfaceName;1",
"patch": [
{
"value": "new value",
"path": "/prop1",
"op": "replace"
}
]
},
"contenttype": "application/json",
"traceparent": "00-2aa957558db348f387ef704b37631a1d-c1fcf951f540ec44-01"
},
"eventType": "Microsoft.DigitalTwins.Relationship.Update",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "2021-12-09T20:28:53.2016395Z",
"topic": "/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.EventGrid/topics/<topic-name>"
}
디지털 트윈 원격 분석 메시지
디지털 트윈은 SendTelemetry API를 사용하여 원격 분석 메시지를 내보내고 이 메시지를 송신 엔드포인트로 보낼 수 있습니다.
속성
원격 분석 메시지 본문의 필드는 다음과 같습니다.
속성 | 값 |
---|---|
id |
원격 분석 API를 호출할 때 고객이 제공하는 알림 식별자 |
source |
원격 분석 이벤트가 전송할 트윈의 정규화된 이름. <your-Digital-Twin-instance>.api.<your-region>.digitaltwins.azure.net/<twin-ID> 형식을 사용합니다. |
specversion |
1.0 메시지는 이 버전의 CloudEvents 사양을 따릅니다. |
type |
microsoft.iot.telemetry |
data |
트윈에서 보내는 원격 분석 메시지입니다. 페이로드는 Azure Digital Twins 인스턴스에 정의된 스키마와 일치할 필요가 없습니다. |
dataschema |
데이터 스키마는 원격 분석을 내보내는 구성 요소 또는 트윈의 모델 ID입니다. 예들 들어 dtmi:example:com:floor4;2 입니다. |
datacontenttype |
application/json |
traceparent |
이벤트의 W3C 추적 컨텍스트 |
본문 세부 정보
본문에는 트윈에 관한 일부 컨텍스트 정보와 함께 원격 분석 측정값이 포함됩니다. 다음은 가능한 각 알림 스키마에 대한 이 메시지 유형의 예입니다.
{
"id": "6f6635d8-f1b8-43ec-80fb-bb9453fc611c",
"subject": "example-twin1",
"data": {
"data": {
"prop": "hello from telemetry"
},
"dataschema": "dtmi:examplecom:interfaceName;1",
"contenttype": "application/json-patch+json; charset=utf-8",
"traceparent": "00-2aa957558db348f387ef704b37631a1d-e894098b46243743-01"
},
"eventType": "microsoft.iot.telemetry",
"dataVersion": "1.0",
"metadataVersion": "1",
"eventTime": "0001-01-01T00:00:00Z",
"topic": "/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.EventGrid/topics/<topic-name>"
}
다음 단계
엔드포인트와 경로를 사용하여 여러 대상에 이벤트를 전달하는 방법을 알아봅니다.