View a markdown version of this page

AWS IoT TwinMaker Datenkonnektoren - AWS IoT TwinMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS IoT TwinMaker Datenkonnektoren

Connectors benötigen Zugriff auf den zugrunde liegenden Datenspeicher, um gesendete Abfragen zu lösen und entweder Ergebnisse oder einen Fehler zurückzugeben.

Weitere Informationen zu den verfügbaren Connectors, ihren Anforderungsschnittstellen und ihren Antwortschnittstellen finden Sie in den folgenden Themen.

Weitere Informationen zu den in den Connector-Schnittstellen verwendeten Eigenschaften finden Sie unter der GetPropertyValueHistory API-Aktion.

Anmerkung

Einige Connectors verfügen sowohl in der Anforderungs- als auch in der Antwortschnittstelle über zwei Zeitstempelfelder für Start- und Endzeiteigenschaften. Beide startDateTime und endDateTime verwenden eine lange Zahl, um die Epochensekunde darzustellen, was nicht mehr unterstützt wird. Aus Gründen der Abwärtskompatibilität senden wir trotzdem einen Zeitstempelwert an dieses Feld. Wir empfehlen jedoch, die endTime Felder startTime und zu verwenden, die unserem API-Zeitstempelformat entsprechen.

Konnektor für den Schema-Initialisierer

Sie können den Schemainitialisierer im Komponententyp- oder Entitätslebenszyklus verwenden, um den Komponententyp oder die Komponenteneigenschaften aus der zugrunde liegenden Datenquelle abzurufen. Der Schemainitialisierer importiert automatisch Komponententyp- oder Komponenteneigenschaften, ohne dass explizit eine API-Aktion zur Einrichtung aufgerufen wird. properties

SchemaInitializer Schnittstelle anfordern

{ "workspaceId": "string", "entityId": "string", "componentName": "string", "properties": { // property name as key, // value is of type PropertyRequest "string": "PropertyRequest" } }
Anmerkung

Die Karte der Eigenschaften in dieser Anforderungsschnittstelle ist einePropertyRequest. Weitere Informationen finden Sie unter PropertyRequest.

SchemaInitializer Antwortschnittstelle

{ "properties": { // property name as key, // value is of type PropertyResponse "string": "PropertyResponse" } }
Anmerkung

Die Abbildung der Eigenschaften in dieser Anforderungsschnittstelle ist einePropertyResponse. Weitere Informationen finden Sie unter PropertyResponse.

DataReaderByEntity

DataReaderByEntity ist ein Datenebenenkonnektor, der verwendet wird, um die Zeitreihenwerte von Eigenschaften in einer einzelnen Komponente abzurufen.

Informationen zu den Eigenschaftstypen, der Syntax und dem Format dieses Connectors finden Sie unter der GetPropertyValueHistory API-Aktion.

DataReaderByEntity Schnittstelle anfordern

{ "startDateTime": long, // In epoch sec, deprecated "startTime": "string", // ISO-8601 timestamp format "endDateTime": long, // In epoch sec, deprecated "endTime": "string", // ISO-8601 timestamp format "properties": { // A map of properties as in the get-entity API response // property name as key, // value is of type PropertyResponse "string": "PropertyResponse" }, "workspaceId": "string", "selectedProperties": List:"string", "propertyFilters": List:PropertyFilter, "entityId": "string", "componentName": "string", "componentTypeId": "string", "interpolation": InterpolationParameters, "nextToken": "string", "maxResults": int, "orderByTime": "string" }

DataReaderByEntity Antwortschnittstelle

{ "propertyValues": [ { "entityPropertyReference": EntityPropertyReference, // The same as EntityPropertyReference "values": [ { "timestamp": long, // Epoch sec, deprecated "time": "string", // ISO-8601 timestamp format "value": DataValue // The same as DataValue } ] } ], "nextToken": "string" }

DataReaderByComponentType

Verwenden Sie den Datenebenenkonnektor DataReaderByEntity, um die Zeitreihenwerte gemeinsamer Eigenschaften abzurufen, die von demselben Komponententyp stammen. Wenn Sie beispielsweise Zeitreiheneigenschaften im Komponententyp definieren und mehrere Komponenten diesen Komponententyp verwenden, können Sie diese Eigenschaften für alle Komponenten in einem bestimmten Zeitraum abfragen. Ein häufiger Anwendungsfall hierfür ist, wenn Sie den Alarmstatus mehrerer Komponenten abfragen möchten, um eine globale Ansicht Ihrer Entitäten zu erhalten.

Informationen zu den Eigenschaftstypen, der Syntax und dem Format dieses Connectors finden Sie in der GetPropertyValueHistory API-Aktion.

DataReaderByComponentType Schnittstelle anfordern

{ "startDateTime": long, // In epoch sec, deprecated "startTime": "string", // ISO-8601 timestamp format "endDateTime": long, // In epoch sec, deprecated "endTime": "string", // ISO-8601 timestamp format "properties": { // A map of properties as in the get-entity API response // property name as key, // value is of type PropertyResponse "string": "PropertyResponse" }, "workspaceId": "string", "selectedProperties": List:"string", "propertyFilters": List:PropertyFilter, "componentTypeId": "string", "interpolation": InterpolationParameters, "nextToken": "string", "maxResults": int, "orderByTime": "string" }

DataReaderByComponentType Antwortschnittstelle

{ "propertyValues": [ { "entityPropertyReference": EntityPropertyReference, // The same as EntityPropertyReference "entityId": "string", "componentName": "string", "values": [ { "timestamp": long, // Epoch sec, deprecated "time": "string", // ISO-8601 timestamp format "value": DataValue // The same as DataValue } ] } ], "nextToken": "string" }

DataReader

DataReader ist ein Datenebenenkonnektor, der sowohl den Fall von DataReaderByEntity als auch verarbeiten kann DataReaderByComponentType.

Informationen zu den Eigenschaftstypen, der Syntax und dem Format dieses Connectors finden Sie unter der GetPropertyValueHistory API-Aktion.

DataReader Schnittstelle anfordern

EntityId und componentName sind optional.

{ "startDateTime": long, // In epoch sec, deprecated "startTime": "string", // ISO-8601 timestamp format "endDateTime": long, // In epoch sec, deprecated "endTime": "string", // ISO-8601 timestamp format "properties": { // A map of properties as in the get-entity API response // property name as key, // value is of type PropertyRequest "string": "PropertyRequest" }, "workspaceId": "string", "selectedProperties": List:"string", "propertyFilters": List:PropertyFilter, "entityId": "string", "componentName": "string", "componentTypeId": "string", "interpolation": InterpolationParameters, "nextToken": "string", "maxResults": int, "orderByTime": "string" }

DataReader Antwortschnittstelle

{ "propertyValues": [ { "entityPropertyReference": EntityPropertyReference, // The same as EntityPropertyReference "values": [ { "timestamp": long, // Epoch sec, deprecated "time": "string", // ISO-8601 timestamp format "value": DataValue // The same as DataValue } ] } ], "nextToken": "string" }

AttributePropertyValueReaderByEntity

AttributePropertyValueReaderByEntity ist ein Datenebenenkonnektor, den Sie verwenden können, um den Wert statischer Eigenschaften in einer einzelnen Entität abzurufen.

Informationen zu den Eigenschaftstypen, der Syntax und dem Format dieses Connectors finden Sie unter der GetPropertyValue API-Aktion.

AttributePropertyValueReaderByEntity Schnittstelle anfordern

{ "properties": { // property name as key, // value is of type PropertyResponse "string": "PropertyResponse" } "workspaceId": "string", "entityId": "string", "componentName": "string", "selectedProperties": List:"string", }

AttributePropertyValueReaderByEntity Antwortschnittstelle

{ "propertyValues": { "string": { // property name as key "propertyReference": EntityPropertyReference, // The same as EntityPropertyReference "propertyValue": DataValue // The same as DataValue } }

DataWriter

DataWriter ist ein Datenebenenkonnektor, mit dem Sie Zeitreihendatenpunkte für Eigenschaften in einer einzelnen Komponente in den zugrunde liegenden Datenspeicher zurückschreiben können.

Informationen zu den Eigenschaftstypen, der Syntax und dem Format dieses Connectors finden Sie unter der BatchPutPropertyValues API-Aktion.

DataWriter Schnittstelle anfordern

{ "workspaceId": "string", "properties": { // entity id as key "String": { // property name as key, // value is of type PropertyResponse "string": PropertyResponse } }, "entries": [ { "entryId": "string", "entityPropertyReference": EntityPropertyReference, // The same as EntityPropertyReference "propertyValues": [ { "timestamp": long, // Epoch sec, deprecated "time": "string", // ISO-8601 timestamp format "value": DataValue // The same as DataValue } ] } ] }

DataWriter Antwortschnittstelle

{ "errorEntries": [ { "errors": List:BatchPutPropertyError // The value is a list of type BatchPutPropertyError } ] }

Beispiele

Die folgenden JSON-Beispiele sind Beispiele für Antwort- und Anforderungssyntax für mehrere Konnektoren.

  • SchemaInitializer:

    Die folgenden Beispiele zeigen den Schemainitialisierer in einem Komponententyp-Lebenszyklus.

    Anfrage:

    { "workspaceId": "myWorkspace", "properties": { "modelId": { "definition": { "dataType": { "type": "STRING" }, "isExternalId": true, "isFinal": true, "isImported": false, "isInherited": false, "isRequiredInEntity": true, "isStoredExternally": false, "isTimeSeries": false, "defaultValue": { "stringValue": "myModelId" } }, "value": { "stringValue": "myModelId" } }, "tableName": { "definition": { "dataType": { "type": "STRING" }, "isExternalId": false, "isFinal": false, "isImported": false, "isInherited": false, "isRequiredInEntity": false, "isStoredExternally": false, "isTimeSeries": false, "defaultValue": { "stringValue": "myTableName" } }, "value": { "stringValue": "myTableName" } } } }

    Antwort:

    { "properties": { "myProperty1": { "definition": { "dataType": { "type": "DOUBLE", "unitOfMeasure": "%" }, "configuration": { "myProperty1Id": "idValue" }, "isTimeSeries": true } }, "myProperty2": { "definition": { "dataType": { "type": "STRING" }, "isTimeSeries": false, "defaultValue": { "stringValue": "property2Value" } } } } }
  • Schemainitialisierer im Entitätslebenszyklus:

    Anfrage:

    { "workspaceId": "myWorkspace", "entityId": "myEntity", "componentName": "myComponent", "properties": { "assetId": { "definition": { "dataType": { "type": "STRING" }, "isExternalId": true, "isFinal": true, "isImported": false, "isInherited": false, "isRequiredInEntity": true, "isStoredExternally": false, "isTimeSeries": false }, "value": { "stringValue": "myAssetId" } }, "tableName": { "definition": { "dataType": { "type": "STRING" }, "isExternalId": false, "isFinal": false, "isImported": false, "isInherited": false, "isRequiredInEntity": false, "isStoredExternally": false, "isTimeSeries": false }, "value": { "stringValue": "myTableName" } } } }

    Antwort:

    { "properties": { "myProperty1": { "definition": { "dataType": { "type": "DOUBLE", "unitOfMeasure": "%" }, "configuration": { "myProperty1Id": "idValue" }, "isTimeSeries": true } }, "myProperty2": { "definition": { "dataType": { "type": "STRING" }, "isTimeSeries": false }, "value": { "stringValue": "property2Value" } } } }
  • DataReaderByEntity und: DataReader

    Anfrage:

    { "workspaceId": "myWorkspace", "entityId": "myEntity", "componentName": "myComponent", "selectedProperties": [ "Temperature", "Pressure" ], "startTime": "2022-04-07T04:04:42Z", "endTime": "2022-04-07T04:04:45Z", "maxResults": 4, "orderByTime": "ASCENDING", "properties": { "assetId": { "definition": { "dataType": { "type": "STRING" }, "isExternalId": true, "isFinal": true, "isImported": false, "isInherited": false, "isRequiredInEntity": true, "isStoredExternally": false, "isTimeSeries": false }, "value": { "stringValue": "myAssetId" } }, "Temperature": { "definition": { "configuration": { "temperatureId": "xyz123" }, "dataType": { "type": "DOUBLE", "unitOfMeasure": "DEGC" }, "isExternalId": false, "isFinal": false, "isImported": true, "isInherited": false, "isRequiredInEntity": false, "isStoredExternally": false, "isTimeSeries": true } }, "Pressure": { "definition": { "configuration": { "pressureId": "xyz456" }, "dataType": { "type": "DOUBLE", "unitOfMeasure": "MPA" }, "isExternalId": false, "isFinal": false, "isImported": true, "isInherited": false, "isRequiredInEntity": false, "isStoredExternally": false, "isTimeSeries": true } } } }

    Antwort:

    { "propertyValues": [ { "entityPropertyReference": { "entityId": "myEntity", "componentName": "myComponent", "propertyName": "Temperature" }, "values": [ { "time": "2022-04-07T04:04:42Z", "value": { "doubleValue": 588.168 } }, { "time": "2022-04-07T04:04:43Z", "value": { "doubleValue": 592.4224 } } ] } ], "nextToken": "qwertyuiop" }
  • AttributePropertyValueReaderByEntity:

    Anfrage:

    { "workspaceId": "myWorkspace", "entityId": "myEntity", "componentName": "myComponent", "selectedProperties": [ "manufacturer", ], "properties": { "assetId": { "definition": { "dataType": { "type": "STRING" }, "isExternalId": true, "isFinal": true, "isImported": false, "isInherited": false, "isRequiredInEntity": true, "isStoredExternally": false, "isTimeSeries": false }, "value": { "stringValue": "myAssetId" } }, "manufacturer": { "definition": { "dataType": { "type": "STRING" }, "configuration": { "manufacturerPropId": "M001" }, "isExternalId": false, "isFinal": false, "isImported": false, "isInherited": false, "isRequiredInEntity": false, "isStoredExternally": true, "isTimeSeries": false } } } }

    Antwort:

    { "propertyValues": { "manufacturer": { "propertyReference": { "propertyName": "manufacturer", "entityId": "myEntity", "componentName": "myComponent" }, "propertyValue": { "stringValue": "Amazon" } } } }
  • DataWriter:

    Anfrage:

    { "workspaceId": "myWorkspaceId", "properties": { "myEntity": { "Temperature": { "definition": { "configuration": { "temperatureId": "xyz123" }, "dataType": { "type": "DOUBLE", "unitOfMeasure": "DEGC" }, "isExternalId": false, "isFinal": false, "isImported": true, "isInherited": false, "isRequiredInEntity": false, "isStoredExternally": false, "isTimeSeries": true } } } }, "entries": [ { "entryId": "myEntity", "entityPropertyReference": { "entityId": "myEntity", "componentName": "myComponent", "propertyName": "Temperature" }, "propertyValues": [ { "timestamp": 1626201120, "value": { "doubleValue": 95.6958 } }, { "timestamp": 1626201132, "value": { "doubleValue": 80.6959 } } ] } ] }

    Antwort:

    { "errorEntries": [ { "errors": [ { "errorCode": "409", "errorMessage": "Conflict value at same timestamp", "entry": { "entryId": "myEntity", "entityPropertyReference": { "entityId": "myEntity", "componentName": "myComponent", "propertyName": "Temperature" }, "propertyValues": [ "time": "2022-04-07T04:04:42Z", "value": { "doubleValue": 95.6958 } ] } } ] } ] }