Freigeben über


Ausgangs- und Endpunkte in Azure Digital Twins

Wichtig

Eine neue Version des Azure Digital Twins-Diensts wurde veröffentlicht. Angesichts der erweiterten Funktionen des neuen Diensts wurde der ursprüngliche Azure Digital Twins-Dienst (in diesem Dokumentationssatz beschrieben) eingestellt.

Um die Dokumentation für den neuen Dienst anzuzeigen, besuchen Sie die aktive Azure Digital Twins-Dokumentation.

Bei Endpunkten von Azure Digital Twins handelt es sich um eine Nachricht oder einen Ereignisbroker in einem Azure-Abonnement eines Benutzers. Ereignisse und Nachrichten können an Azure Event Hubs, Azure Event Grid und Azure Service Bus-Themen gesendet werden.

Ereignisse werden entsprechend den vordefinierten Routingeinstellungen an Endpunkte weitergeleitet. Die Benutzer legen fest, welche Ereignistypen jeder Endpunkt empfangen kann.

Weitere Informationen zu Ereignissen, Routing und Ereignistypen finden Sie unter Routing events and messages in Azure Digital Twins (Weiterleiten von Ereignissen und Nachrichten).

Events

Ereignisse werden von IoT-Objekten wie Geräte und Sensoren zur Verarbeitung durch Azure-Nachrichtenbroker und -Ereignisbroker gesendet. Ereignisse werden durch das folgende Azure Event Grid-Ereignisschema definiert.

{
  "id": "00000000-0000-0000-0000-000000000000",
  "subject": "ExtendedPropertyKey",
  "data": {
    "SpacesToNotify": [
      "3a16d146-ca39-49ee-b803-17a18a12ba36"
    ],
    "Id": "00000000-0000-0000-0000-000000000000",
      "Type": "ExtendedPropertyKey",
    "AccessType": "Create"
  },
  "eventType": "TopologyOperation",
  "eventTime": "2018-04-17T17:41:54.9400177Z",
  "dataVersion": "1",
  "metadataVersion": "1",
  "topic": "/subscriptions/YOUR_TOPIC_NAME"
}
Attribut type BESCHREIBUNG
id Zeichenfolge Eindeutiger Bezeichner für das Ereignis.
subject Zeichenfolge Vom Herausgeber definierter Pfad zum Ereignisbetreff
data Objekt (object) Die für den Ressourcenanbieter spezifischen Ereignisdaten.
eventType Zeichenfolge Einer der registrierten Ereignistypen für die Ereignisquelle.
eventTime Zeichenfolge Die Zeit, in der das Ereignis generiert wird, basierend auf der UTC-Zeit des Anbieters.
dataVersion Zeichenfolge Die Schemaversion des Datenobjekts. Der Herausgeber definiert die Schemaversion.
metadataVersion Zeichenfolge Die Schemaversion der Ereignismetadaten. Event Grid definiert das Schema der Eigenschaften der obersten Ebene. Dieser Wert wird von Event Grid bereitgestellt.
topic Zeichenfolge Vollständiger Ressourcenpfaf zur Ereignisquelle. Dieses Feld ist nicht beschreibbar. Dieser Wert wird von Event Grid bereitgestellt.

Weitere Informationen zum Event Grid-Ereignisschema:

Ereignistypen

Ereignistypen klassifizieren die Art des Ereignisses und werden im Feld eventType festgelegt. Die folgende Liste gibt verfügbare Ereignistypen an:

  • TopologyOperation
  • UdfCustom
  • SensorChange
  • SpaceChange
  • DeviceMessage

Die Ereignisformate für jeden Ereignistypen werden in den folgenden Unterabschnitten näher beschrieben.

TopologyOperation

TopologyOperation gilt für Änderungen des Graphen. Die subject-Eigenschaft gibt den Typ des betroffenen Objekts an. Die folgenden Objekttypen können dieses Ereignis auslösen:

  • Sicherungsmedium
  • DeviceBlobMetadata
  • DeviceExtendedProperty
  • ExtendedPropertyKey
  • ExtendedType
  • KeyStore
  • Bericht
  • RoleDefinition
  • Sensor
  • SensorBlobMetadata
  • SensorExtendedProperty
  • LeerZchn
  • SpaceBlobMetadata
  • SpaceExtendedProperty
  • SpaceResource
  • SpaceRoleAssignment
  • System
  • Benutzer
  • UserBlobMetadata
  • UserExtendedProperty

Beispiel

{
  "id": "00000000-0000-0000-0000-000000000000",
  "subject": "ExtendedPropertyKey",
  "data": {
    "SpacesToNotify": [
      "3a16d146-ca39-49ee-b803-17a18a12ba36"
    ],
    "Id": "00000000-0000-0000-0000-000000000000",
      "Type": "ExtendedPropertyKey",
    "AccessType": "Create"
  },
  "eventType": "TopologyOperation",
  "eventTime": "2018-04-17T17:41:54.9400177Z",
  "dataVersion": "1",
  "metadataVersion": "1",
  "topic": "/subscriptions/YOUR_TOPIC_NAME"
}
Wert Ersetzen durch
YOUR_TOPIC_NAME Den Namen Ihres angepassten Themas

UdfCustom

UdfCustom ist ein Ereignis, das von einer benutzerdefinierten Funktion (User-Defined Function, UDF) gesendet wurde.

Wichtig

Dieses Ereignis muss explizit von der benutzerdefinierten Funktion selbst gesendet werden.

Beispiel

{
  "id": "568fd394-380b-46fa-925a-ebb96f658cce",
  "subject": "UdfCustom",
  "data": {
    "TopologyObjectId": "7c799bfc-1bff-4b9e-b15a-669933969d20",
    "ResourceType": "Space",
    "Payload": "\"Room is not available or air quality is poor\"",
    "CorrelationId": "568fd394-380b-46fa-925a-ebb96f658cce"
  },
  "eventType": "UdfCustom",
  "eventTime": "2018-10-02T06:50:15.198Z",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "topic": "/subscriptions/YOUR_TOPIC_NAME"
}
Wert Ersetzen durch
YOUR_TOPIC_NAME Den Namen Ihres angepassten Themas

SensorChange

SensorChange ist eine Aktualisierung des Zustands eines Sensors auf der Grundlage von Telemetriedatenänderungen.

Beispiel

{
  "id": "60bf5336-2929-45b4-bb4c-b45699dfe95f",
  "subject": "SensorChange",
  "data": {
    "Type": "Classic",
    "DataType": "Motion",
    "Id": "60bf5336-2929-45b4-bb4c-b45699dfe95f",
    "Value": "False",
    "PreviousValue": "True",
    "EventTimestamp": "2018-04-17T17:46:15.4964262Z",
    "MessageType": "sensor",
    "Properties": {
      "ms-client-request-id": "c9e576b7-5eea-4f61-8617-92a57add5179",
      "ms-activity-id": "ct22YwXEGJ5u.605.0"
    }
  },
  "eventType": "SensorChange",
  "eventTime": "2018-04-17T17:46:18.5452993Z",
  "dataVersion": "1",
  "metadataVersion": "1",
  "topic": "/subscriptions/YOUR_TOPIC_NAME"
}
Wert Ersetzen durch
YOUR_TOPIC_NAME Den Namen Ihres angepassten Themas

SpaceChange

SpaceChange ist eine Aktualisierung des Zustands eines Gebäudebereichs auf der Grundlage von Telemetriedatenänderungen.

Beispiel

{
  "id": "42522e10-b1aa-42ff-a5e7-7181788ffc4b",
  "subject": "SpaceChange",
  "data": {
    "Type": null,
    "DataType": "AvailableAndFresh",
    "Id": "7c799bfc-1bff-4b9e-b15a-669933969d20",
    "Value": "Room is not available or air quality is poor",
    "PreviousValue": null,
    "RawData": null,
    "transactionId": null,
    "EventTimestamp": null,
    "MessageType": null,
    "Properties": null,
    "CorrelationId": "42522e10-b1aa-42ff-a5e7-7181788ffc4b"
  },
  "eventType": "SpaceChange",
  "eventTime": "2018-10-02T06:50:20.128Z",
  "dataVersion": "1.0",
  "metadataVersion": "1",
  "topic": "/subscriptions/YOUR_TOPIC_NAME"
}
Wert Ersetzen durch
YOUR_TOPIC_NAME Den Namen Ihres angepassten Themas

DeviceMessage

Mit DeviceMessage können Sie eine EventHub-Verbindung angeben, an die Telemetrierohereignisse ebenfalls aus Azure Digital Twins weitergeleitet werden können.

Hinweis

  • DeviceMessage kann nur mit EventHub kombiniert werden. Es ist nicht möglich, DeviceMessage mit einem der anderen Ereignistypen zu kombinieren.
  • Sie können nur einen Endpunkt mit der Kombination der Typen EventHub oder DeviceMessage angeben.

Konfigurieren von Endpunkten

Endpunktverwaltung erfolgt über die Endpunkte-API.

In den folgenden Beispielen bezieht sich YOUR_MANAGEMENT_API_URL auf den URI der Digital Twins-APIs:

https://YOUR_INSTANCE_NAME.YOUR_LOCATION.azuresmartspaces.net/management/api/v1.0
Name Ersetzen durch
YOUR_INSTANCE_NAME Den Namen Ihrer Azure Digital Twins-Instanz
YOUR_LOCATION Die Region, in der Ihre Instanz gehostet wird

Die folgenden Beispiele veranschaulichen, wie die unterstützten Endpunkte konfiguriert werden.

Wichtig

Achten Sie auf das Attribut eventTypes. Es definiert die Ereignistypen, die vom Endpunkt bearbeitet werden, und bestimmt sein Routing.

Eine authentifizierte HTTP POST-Anforderung mit:

YOUR_MANAGEMENT_API_URL/endpoints
  • Ereignistypen für das Weiterleiten an Service Bus: SensorChange, SpaceChange und TopologyOperation.

    {
      "type": "ServiceBus",
      "eventTypes": [
        "SensorChange",
        "SpaceChange",
        "TopologyOperation"
      ],
      "connectionString": "Endpoint=sb://YOUR_NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=YOUR_PRIMARY_KEY",
      "secondaryConnectionString": "Endpoint=sb://YOUR_NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=YOUR_SECONDARY_KEY",
      "path": "YOUR_TOPIC_NAME"
    }
    
    Wert Ersetzen durch
    YOUR_NAMESPACE Der Namespace Ihres Endpunkts
    YOUR_PRIMARY_KEY Die primäre Verbindungszeichenfolge, die zur Authentifizierung verwendet wird
    YOUR_SECONDARY_KEY Die sekundäre Verbindungszeichenfolge, die zur Authentifizierung verwendet wird
    YOUR_TOPIC_NAME Den Namen Ihres angepassten Themas
  • Ereignistypen für das Weiterleiten an Event Grid: SensorChange, SpaceChange und TopologyOperation.

    {
      "type": "EventGrid",
      "eventTypes": [
        "SensorChange",
        "SpaceChange",
        "TopologyOperation"
      ],
      "connectionString": "YOUR_PRIMARY_KEY",
      "secondaryConnectionString": "YOUR_SECONDARY_KEY",
      "path": "YOUR_TOPIC_NAME.westus-1.eventgrid.azure.net"
    }
    
    Wert Ersetzen durch
    YOUR_PRIMARY_KEY Die primäre Verbindungszeichenfolge, die zur Authentifizierung verwendet wird
    YOUR_SECONDARY_KEY Die sekundäre Verbindungszeichenfolge, die zur Authentifizierung verwendet wird
    YOUR_TOPIC_NAME Den Namen Ihres angepassten Themas
  • Ereignistypen für das Weiterleiten an Event Hubs: SensorChange, SpaceChange und TopologyOperation.

    {
      "type": "EventHub",
      "eventTypes": [
        "SensorChange",
        "SpaceChange",
        "TopologyOperation"
      ],
      "connectionString": "Endpoint=sb://YOUR_NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=YOUR_PRIMARY_KEY",
      "secondaryConnectionString": "Endpoint=sb://YOUR_NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=YOUR_SECONDARY_KEY",
      "path": "YOUR_EVENT_HUB_NAME"
    }
    
    Wert Ersetzen durch
    YOUR_NAMESPACE Der Namespace Ihres Endpunkts
    YOUR_PRIMARY_KEY Die primäre Verbindungszeichenfolge, die zur Authentifizierung verwendet wird
    YOUR_SECONDARY_KEY Die sekundäre Verbindungszeichenfolge, die zur Authentifizierung verwendet wird
    YOUR_EVENT_HUB_NAME Der Name Ihres Event Hubs
  • Ereignistyp für das Weiterleiten an Event Hubs: DeviceMessage. EntityPath muss in connectionString enthalten sein:

    {
      "type": "EventHub",
      "eventTypes": [
        "DeviceMessage"
      ],
      "connectionString": "Endpoint=sb://YOUR_NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=YOUR_PRIMARY_KEY;EntityPath=YOUR_EVENT_HUB_NAME",
      "secondaryConnectionString": "Endpoint=sb://YOUR_NAMESPACE.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=YOUR_SECONDARY_KEY;EntityPath=YOUR_EVENT_HUB_NAME",
      "path": "YOUR_EVENT_HUB_NAME"
    }
    
    Wert Ersetzen durch
    YOUR_NAMESPACE Der Namespace Ihres Endpunkts
    YOUR_PRIMARY_KEY Die primäre Verbindungszeichenfolge, die zur Authentifizierung verwendet wird
    YOUR_SECONDARY_KEY Die sekundäre Verbindungszeichenfolge, die zur Authentifizierung verwendet wird
    YOUR_EVENT_HUB_NAME Der Name Ihres Event Hubs

Hinweis

Nach dem Erstellen eines neuen Endpunkts kann es fünf bis zehn Minuten dauern, bis erstmals Ereignisse auf dem Endpunkt empfangen werden.

Primärer und sekundärer Verbindungsschlüssel

Wenn ein primärer Verbindungsschlüssel nicht länger autorisiert ist, versucht das System automatisch, den sekundären Verbindungsschlüssel zu verwenden. Dies bietet eine Sicherung und eröffnet die Möglichkeit, den primären Schlüssel ungestört über die API-Endpunkte zu authentifizieren und zu aktualisieren.

Wenn sowohl der primäre als auch der sekundäre Verbindungsschlüssel nicht autorisiert sind, wechselt das System in eine exponentielle Backoff-Wartezeit von bis zu 30 Minuten. Ereignisse werden bei jeder ausgelösten Backoff-Wartezeit gelöscht.

Wenn sich das System in einem Backoff-Wartezustand befindet, kann es bis zu 30 Minuten dauern, bis eine Aktualisierung von Verbindungsschlüsseln über die Endpunkte-API wirksam wird.

Nicht erreichbare Endpunkte

Wenn ein Endpunkt nicht mehr erreichbar ist, wechselt das System in eine exponentielle Backoff-Wartezeit von bis zu 30 Minuten. Ereignisse werden bei jeder ausgelösten Backoff-Wartezeit gelöscht.

Nächste Schritte