Einen AWS IoT Events Alarm definieren (AWS CLI) - AWS IoT SiteWise

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.

Einen AWS IoT Events Alarm definieren (AWS CLI)

Sie können das AWS Command Line Interface (AWS CLI) verwenden, um einen AWS IoT Events Alarm zu definieren, der eine Anlageneigenschaft überwacht. Sie können den Alarm für ein neues oder vorhandenes Asset-Modell definieren. Nachdem Sie den Alarm für das Asset-Modell definiert haben, erstellen Sie einen Alarm im Asset-Modell AWS IoT Events und verbinden ihn mit dem Asset-Modell. In diesem Prozess gehen Sie wie folgt vor:

Schritt 1: Definieren eines Alarms für ein Anlagenmodell

Fügen Sie eine Alarmdefinition und zugehörige Eigenschaften zu einem neuen oder vorhandenen Anlagenmodell hinzu.

So definieren Sie einen Alarm für ein Asset-Modell (CLI)
  1. Erstellen Sie eine Datei mit dem Namen asset-model-payload.json. Folgen Sie den Schritten in diesen anderen Abschnitten, um die Details Ihres Asset-Modells zur Datei hinzuzufügen, reichen Sie jedoch nicht die Anfrage zur Erstellung oder Aktualisierung des Asset-Modells ein. In diesem Abschnitt fügen Sie den Asset-Modelldetails in der asset-model-payload.json Datei eine Alarmdefinition hinzu.

    Anmerkung

    Ihr Anlagenmodell muss mindestens eine Anlageneigenschaft definieren, einschließlich der Anlageneigenschaft, die mit dem Alarm überwacht werden soll.

  2. Fügen Sie dem Anlagenmodell ein zusammengesetztes Alarmmodell (assetModelCompositeModels) hinzu. Ein zusammengesetztes AWS IoT Events Alarmmodell spezifiziert den IOT_EVENTS Typ und gibt eine Alarmquelleneigenschaft an. Sie fügen die Eigenschaft Alarmquelle hinzu, nachdem Sie das Alarmmodell in erstellt haben AWS IoT Events.

    Wichtig

    Das zusammengesetzte Alarmmodell muss denselben Namen haben wie das AWS IoT Events Alarmmodell, das Sie später erstellen. Namen von Alarmmodellen dürfen nur alphanumerische Zeichen enthalten. Geben Sie einen eindeutigen, alphanumerischen Namen an, sodass Sie denselben Namen für das Alarmmodell verwenden können.

    { ... "assetModelCompositeModels": [ { "name": "BoilerTemperatureHighAlarm", "type": "AWS/ALARM", "properties": [ { "name": "AWS/ALARM_TYPE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "IOT_EVENTS" } } }, { "name": "AWS/ALARM_STATE", "dataType": "STRUCT", "dataTypeSpec": "AWS/ALARM_STATE", "type": { "measurement": {} } } ] } ] }
  3. Fügen Sie dem Asset-Modell ein Alarmschwellenwertattribut hinzu. Geben Sie den Standardwert an, der für diesen Schwellenwert verwendet werden soll. Sie können diesen Standardwert für jedes Asset, das auf diesem Modell basiert, überschreiben.

    Anmerkung

    Das Alarmschwellenwertattribut muss ein INTEGER oder a seinDOUBLE.

    { ... "assetModelProperties": [ ... { "name": "Temperature Max Threshold", "dataType": "DOUBLE", "type": { "attribute": { "defaultValue": "105.0" } } } ] }
  4. (Optional) Fügen Sie dem Asset-Modell Attribute für Alarmbenachrichtigungen hinzu. Diese Attribute geben den IAM Identity Center-Empfänger und andere Eingaben an, die zum Senden von Benachrichtigungen AWS IoT Events verwendet werden, wenn sich der Status des Alarms ändert. Sie können diese Standardeinstellungen für jedes Asset, das auf diesem Modell basiert, überschreiben.

    Wichtig

    Sie können Alarmbenachrichtigungen an AWS IAM Identity Center Benutzer senden. Um diese Funktion nutzen zu können, müssen Sie IAM Identity Center aktivieren. Sie können IAM Identity Center jeweils nur in einer AWS Region aktivieren. Das bedeutet, dass Sie Alarmbenachrichtigungen nur in der Region definieren können, in der Sie IAM Identity Center aktivieren. Weitere Informationen finden Sie unter Erste Schritte im AWS IAM Identity Center -Benutzerhandbuch.

    Gehen Sie wie folgt vor:

    1. Fügen Sie ein Attribut hinzu, das die ID Ihres IAM Identity Center-Identitätsspeichers angibt. Sie können den IAM Identity Center ListInstancesAPI-Vorgang verwenden, um Ihre Identitätsspeicher aufzulisten. Dieser Vorgang funktioniert nur in der Region, in der Sie IAM Identity Center aktivieren.

      aws sso-admin list-instances

      Geben Sie dann die Identitätsspeicher-ID (z. B.d-123EXAMPLE) als Standardwert für das Attribut an.

      { ... "assetModelProperties": [ ... { "name": "identityStoreId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "d-123EXAMPLE" } } } ] }
    2. Fügen Sie ein Attribut hinzu, das die ID des IAM Identity Center-Benutzers angibt, der Benachrichtigungen erhält. Um einen Standardempfänger für Benachrichtigungen zu definieren, fügen Sie eine IAM Identity Center-Benutzer-ID als Standardwert hinzu. Gehen Sie wie folgt vor, um eine IAM Identity Center-Benutzer-ID zu erhalten:

      1. Sie können die IAM Identity ListUsersCenter-API verwenden, um die ID eines Benutzers abzurufen, dessen Benutzernamen Sie kennen. Ersetzen Sie D-123Example durch die ID Ihres Identitätsspeichers und Name durch den Benutzernamen des Benutzers.

        aws identitystore list-users \ --identity-store-id d-123EXAMPLE \ --filters AttributePath=UserName,AttributeValue=Name
      2. Verwenden Sie die IAM Identity Center-Konsole, um Ihre Benutzer zu durchsuchen und eine Benutzer-ID zu finden.

      Geben Sie dann die Benutzer-ID (z. B.123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE) als Standardwert für das Attribut an, oder definieren Sie das Attribut ohne Standardwert.

      { ... "assetModelProperties": [ ... { "name": "userId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE" } } } ] }
    3. (Optional) Fügen Sie ein Attribut hinzu, das die Standard-Absender-ID für SMS-Benachrichtigungen (Text) angibt. Die Absender-ID wird in Nachrichten, die Amazon Simple Notification Service (Amazon SNS) sendet, als Nachrichtenabsender angezeigt. Weitere Informationen finden Sie unter Absender-IDs für SMS-Nachrichten mit Amazon SNS anfordern im Amazon Simple Notification Service Developer Guide.

      { ... "assetModelProperties": [ ... { "name": "senderId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "MyFactory" } } } ] }
    4. (Optional) Fügen Sie ein Attribut hinzu, das die Standard-E-Mail-Adresse angibt, die als Absenderadresse in E-Mail-Benachrichtigungen verwendet werden soll.

      { ... "assetModelProperties": [ ... { "name": "fromAddress", "dataType": "STRING", "type": { "attribute": { "defaultValue": "my.factory@example.com" } } } ] }
    5. (Optional) Fügen Sie ein Attribut hinzu, das den Standard-Betreff angibt, der in E-Mail-Benachrichtigungen verwendet werden soll.

      { ... "assetModelProperties": [ ... { "name": "emailSubject", "dataType": "STRING", "type": { "attribute": { "defaultValue": "[ALERT] High boiler temperature" } } } ] }
    6. (Optional) Fügen Sie ein Attribut hinzu, das eine zusätzliche Nachricht angibt, die in Benachrichtigungen aufgenommen werden soll. Standardmäßig enthalten Benachrichtigungen Informationen über den Alarm. Sie können auch eine zusätzliche Nachricht hinzufügen, die dem Benutzer weitere Informationen gibt.

      { ... "assetModelProperties": [ ... { "name": "additionalMessage", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Turn off the power before you check the alarm." } } } ] }
  5. Erstellen Sie das Asset-Modell oder aktualisieren Sie das bestehende Asset-Modell. Führen Sie eine der folgenden Aktionen aus:

    • Führen Sie den folgenden Befehl aus, um das Asset-Modell zu erstellen.

      aws iotsitewise create-asset-model --cli-input-json file://asset-model-payload.json
    • Führen Sie den folgenden Befehl aus, um das vorhandene Asset-Modell zu aktualisieren. asset-model-idErsetzen Sie es durch die ID des Asset-Modells.

      aws iotsitewise update-asset-model \ --asset-model-id asset-model-id \ --cli-input-json file://asset-model-payload.json

    Nachdem Sie den Befehl ausgeführt haben, notieren Sie sich das assetModelId in der Antwort.

Das folgende Anlagenmodell stellt einen Kessel dar, der Temperaturdaten meldet. Dieses Anlagenmodell definiert einen Alarm, der erkennt, wenn der Kessel überhitzt.

{ "assetModelName": "Boiler Model", "assetModelDescription": "Represents a boiler.", "assetModelProperties": [ { "name": "Temperature", "dataType": "DOUBLE", "unit": "C", "type": { "measurement": {} } }, { "name": "Temperature Max Threshold", "dataType": "DOUBLE", "type": { "attribute": { "defaultValue": "105.0" } } }, { "name": "identityStoreId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "d-123EXAMPLE" } } }, { "name": "userId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE" } } }, { "name": "senderId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "MyFactory" } } }, { "name": "fromAddress", "dataType": "STRING", "type": { "attribute": { "defaultValue": "my.factory@example.com" } } }, { "name": "emailSubject", "dataType": "STRING", "type": { "attribute": { "defaultValue": "[ALERT] High boiler temperature" } } }, { "name": "additionalMessage", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Turn off the power before you check the alarm." } } } ], "assetModelHierarchies": [ ], "assetModelCompositeModels": [ { "name": "BoilerTemperatureHighAlarm", "type": "AWS/ALARM", "properties": [ { "name": "AWS/ALARM_TYPE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "IOT_EVENTS" } } }, { "name": "AWS/ALARM_STATE", "dataType": "STRUCT", "dataTypeSpec": "AWS/ALARM_STATE", "type": { "measurement": {} } } ] } ] }

Schritt 2: Definition eines Alarmmodells AWS IoT Events

Erstellen Sie das Alarmmodell in AWS IoT Events. In AWS IoT Events verwenden Sie Ausdrücke, um Werte in Alarmmodellen anzugeben. Sie können Ausdrücke verwenden, um Werte anzugeben AWS IoT SiteWise , die ausgewertet und als Eingaben für den Alarm verwendet werden sollen. Wenn die Eigenschaftswerte einer Anlage AWS IoT SiteWise an das Alarmmodell sendet, AWS IoT Events wertet sie den Ausdruck aus, um den Wert der Eigenschaft oder die ID der Anlage zu ermitteln. Sie können die folgenden Ausdrücke im Alarmmodell verwenden:

  • Werte der Eigenschaften von Vermögenswerten

    Verwenden Sie den folgenden Ausdruck, um den Wert einer Anlageneigenschaft zu ermitteln. assetModelIdErsetzen Sie durch die ID des Asset-Modells und ersetzen Sie propertyId durch die ID der Eigenschaft.

    $sitewise.assetModel.`assetModelId`.`propertyId`.propertyValue.value
  • Objekt-IDs

    Verwenden Sie den folgenden Ausdruck, um die ID des Assets abzurufen. assetModelIdErsetzen Sie durch die ID des Asset-Modells und ersetzen Sie propertyId durch die ID der Eigenschaft.

    $sitewise.assetModel.`assetModelId`.`propertyId`.assetId
Anmerkung

Wenn Sie das Alarmmodell erstellen, können Sie Literale anstelle von Ausdrücken definieren, die zu Werten ausgewertet werden AWS IoT SiteWise . Dadurch kann die Anzahl der Attribute, die Sie in Ihrem Asset-Modell definieren, reduziert werden. Wenn Sie jedoch einen Wert als Literalwert definieren, können Sie diesen Wert nicht für Anlagen anpassen, die auf dem Anlagemodell basieren. Ihre AWS IoT SiteWise Monitor Benutzer können den Alarm auch nicht anpassen, da sie Alarmeinstellungen nur für Assets konfigurieren können.

So erstellen Sie ein AWS IoT Events Alarmmodell (CLI)
  1. Wenn Sie das Alarmmodell in erstellen AWS IoT Events, müssen Sie die ID jeder Eigenschaft angeben, die der Alarm verwendet. Dazu gehören:

    • Die Eigenschaft „Alarmstatus“ im zusammengesetzten Objektmodell

    • Die Eigenschaft, die der Alarm überwacht

    • Das Schwellenwertattribut

    • (Optional) Das ID-Attribut für den Identitätsspeicher von IAM Identity Center

    • (Optional) Das IAM Identity Center-Benutzer-ID-Attribut

    • (Optional) Das SMS-Absender-ID-Attribut

    • (Optional) Das E-Mail-Absender-Adressattribut

    • (Optional) Das E-Mail-Betreff-Attribut

    • (Optional) Das zusätzliche Nachrichtenattribut

    Führen Sie den folgenden Befehl aus, um die IDs dieser Eigenschaften im Asset-Modell abzurufen. asset-model-idErsetzen Sie es durch die ID des Asset-Modells aus dem vorherigen Schritt.

    aws iotsitewise describe-asset-model --asset-model-id asset-model-id

    Die Operation gibt eine Antwort zurück, die Details des Komponentenmodells enthält. Notieren Sie sich die ID jeder Eigenschaft, die der Alarm verwendet. Sie verwenden diese IDs, wenn Sie das AWS IoT Events Alarmmodell im nächsten Schritt erstellen.

  2. Erstellen Sie das Alarmmodell in AWS IoT Events. Gehen Sie wie folgt vor:

    1. Erstellen Sie eine Datei mit dem Namen alarm-model-payload.json.

    2. Kopieren Sie das folgende JSON-Objekt in die Datei.

    3. Geben Sie einen Namen (alarmModelName), eine Beschreibung (alarmModelDescription) und einen Schweregrad (severity) für Ihren Alarm ein. Geben Sie für den Schweregrad eine Ganzzahl an, die den Schweregrad Ihres Unternehmens widerspiegelt.

      Wichtig

      Das Alarmmodell muss denselben Namen haben wie das zusammengesetzte Alarmmodell, das Sie zuvor für Ihr Anlagenmodell definiert haben.

      Namen von Alarmmodellen dürfen nur alphanumerische Zeichen enthalten.

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3 }
    4. Fügen Sie dem Alarm die Vergleichsregel (alarmRule) hinzu. Diese Regel definiert die zu überwachende Eigenschaft (inputProperty), den zu vergleichenden Schwellenwert (threshold) und den zu verwendenden Vergleichsoperator (comparisonOperator).

      • assetModelIdErsetzen Sie es durch die ID des Asset-Modells.

      • alarmPropertyIdErsetzen Sie durch die ID der Immobilie, die der Alarm überwacht.

      • thresholdAttributeIdErsetzen Sie es durch die ID der Attributeigenschaft „Threshold“.

      • Ersetzen Sie GREATER durch den Operator, der verwendet werden soll, um die Eigenschaftswerte mit dem Schwellenwert zu vergleichen. Wählen Sie aus den folgenden Optionen aus:

        • LESS

        • LESS_OR_EQUAL

        • EQUAL

        • NOT_EQUAL

        • GREATER_OR_EQUAL

        • GREATER

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } } }
    5. Fügen Sie eine Aktion (alarmEventActions) hinzu, um den Alarmstatus an den AWS IoT SiteWise Zeitpunkt zu senden, an dem der Alarm seinen Status ändert.

      Anmerkung

      Für eine erweiterte Konfiguration können Sie zusätzliche Aktionen definieren, die ausgeführt werden, wenn sich der Zustand des Alarms ändert. Sie können beispielsweise eine AWS Lambda Funktion aufrufen oder zu einem MQTT-Thema veröffentlichen. Weitere Informationen finden Sie unter Arbeiten mit anderen AWS Diensten im AWS IoT Events Entwicklerhandbuch.

      • assetModelIdErsetzen Sie es durch die ID des Asset-Modells.

      • alarmPropertyIdErsetzen Sie durch die ID der Immobilie, die der Alarm überwacht.

      • Ersetzen Sie alarmStatePropertyId durch die ID der Alarmstatuseigenschaft im zusammengesetzten Alarmmodell.

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] } }
    6. (Optional) Konfigurieren Sie die Einstellungen für die Alarmbenachrichtigung. Die Alarmbenachrichtigungsaktion verwendet eine Lambda-Funktion in Ihrem Konto, um Alarmbenachrichtigungen zu senden. Weitere Informationen finden Sie unter Anforderungen für Alarmbenachrichtigungen. In den Einstellungen für Alarmbenachrichtigungen können Sie SMS- und E-Mail-Benachrichtigungen konfigurieren, die an IAM Identity Center-Benutzer gesendet werden. Gehen Sie wie folgt vor:

      1. Fügen Sie die Konfiguration für Alarmbenachrichtigungen (alarmNotification) zur Payload in hinzu. alarm-model-payload.json

        • Ersetzen Sie alarmNotificationFunctionArn durch den ARN der Lambda-Funktion, die Alarmbenachrichtigungen verarbeitet.

        { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn" } } } ] } }
      2. (Optional) Konfigurieren Sie die SMS-Benachrichtigungen (smsConfigurations), die an einen IAM Identity Center-Benutzer gesendet werden, wenn sich der Status des Alarms ändert.

        • identityStoreIdAttributeIdErsetzen Sie es durch die ID des Attributs, das die ID des IAM Identity Center-Identitätsspeichers enthält.

        • Ersetzen Sie userIdAttributeId durch die ID des Attributs, das die ID des IAM Identity Center-Benutzers enthält.

        • Ersetzen Sie senderIdAttributeId durch die ID des Attributs, das die Amazon SNS SNS-Sender-ID enthält, oder entfernen Sie es senderId aus der Payload.

        • Ersetzen Sie additionalMessageAttributeId durch die ID des Attributs, das die zusätzliche Nachricht enthält, oder entfernen Sie sie additionalMessage aus der Payload.

        { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId`.`senderIdAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } ] } ] } }
      3. (Optional) Konfigurieren Sie die E-Mail-Benachrichtigungen (emailConfigurations), die an einen IAM Identity Center-Benutzer gesendet werden, wenn sich der Status des Alarms ändert.

        • identityStoreIdAttributeIdErsetzen Sie es durch die ID der IAM Identity Center Identity Store-ID-Attributeigenschaft.

        • Ersetzen Sie userIdAttributeId durch die ID der IAM Identity Center-Benutzer-ID-Attributeigenschaft.

        • Ersetzen Sie fromAddressAttributeId durch die ID der Adressattributeigenschaft „Von“ oder entfernen Sie sie from aus der Payload.

        • Ersetzen Sie emailSubjectAttributeId durch die ID der Eigenschaft des E-Mail-Betreff-Attributs oder entfernen Sie es subject aus der Payload.

        • Ersetzen Sie additionalMessageAttributeId durch die ID der zusätzlichen Nachrichtenattributeigenschaft oder entfernen Sie sie additionalMessage aus der Payload.

        { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId`.`senderIdAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } ], "emailConfigurations": [ { "from": "$sitewise.assetModel.`assetModelId`.`fromAddressAttributeId`.propertyValue.value", "recipients": { "to": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ] }, "content": { "subject": "$sitewise.assetModel.`assetModelId`.`emailSubjectAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } } ] } ] } }
    7. (Optional) Fügen Sie die Alarmfunktionen (alarmCapabilities) zur Payload in hinzu. alarm-model-payload.json In diesem Objekt können Sie angeben, ob der Bestätigungsfluss aktiviert ist, und den standardmäßigen Aktivierungsstatus für Anlagen auf der Grundlage des Asset-Modells festlegen. Weitere Informationen zum Bestätigungsfluss finden Sie unterAlarmzustände.

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId`.`senderIdAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } ], "emailConfigurations": [ { "from": "$sitewise.assetModel.`assetModelId`.`fromAddressAttributeId`.propertyValue.value", "recipients": { "to": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ] }, "content": { "subject": "$sitewise.assetModel.`assetModelId`.`emailSubjectAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } } ] } ] }, "alarmCapabilities": { "initializationConfiguration": { "disabledOnInitialization": false }, "acknowledgeFlow": { "enabled": true } } }
    8. Fügen Sie die IAM-Dienstrolle (roleArn) hinzu, die davon ausgehen AWS IoT Events kann, Daten an zu AWS IoT SiteWise senden. Für diese Rolle sind die iotsitewise:BatchPutAssetPropertyValue Genehmigung und eine Vertrauensbeziehung erforderlich, die es ermöglichen, die Rolle iotevents.amazonaws.com zu übernehmen. Um Benachrichtigungen zu senden, benötigt diese Rolle auch die sso-directory:DescribeUser Berechtigungen lambda:InvokeFunction und. Weitere Informationen finden Sie unter Alarm-Dienstrollen im AWS IoT Events Entwicklerhandbuch.

      • Ersetzen Sie das roleArn durch den ARN der Rolle, die diese Aktionen ausführen AWS IoT Events kann.

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.propertyValue.value", "comparisonOperator": "GREATER", "threshold": "$sitewise.assetModel.`assetModelId`.`thresholdAttributeId`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId`.`alarmPropertyId`.assetId", "propertyId": "'alarmStatePropertyId'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId`.`senderIdAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } ], "emailConfigurations": [ { "from": "$sitewise.assetModel.`assetModelId`.`fromAddressAttributeId`.propertyValue.value", "recipients": { "to": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId`.`identityStoreIdAttributeId`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId`.`userIdAttributeId`.propertyValue.value" } } ] }, "content": { "subject": "$sitewise.assetModel.`assetModelId`.`emailSubjectAttributeId`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId`.`additionalMessageAttributeId`.propertyValue.value" } } ] } ] }, "alarmCapabilities": { "initializationConfiguration": { "disabledOnInitialization": false }, "acknowledgeFlow": { "enabled": false } }, "roleArn": "arn:aws:iam::123456789012:role/MyIoTEventsAlarmRole" }
    9. Führen Sie den folgenden Befehl aus, um das AWS IoT Events Alarmmodell aus der Payload in alarm-model-payload.json zu erstellen.

      aws iotevents create-alarm-model --cli-input-json file://alarm-model-payload.json
    10. Die Operation gibt eine Antwort zurück, die den ARN des Alarmmodells enthält,alarmModelArn. Kopieren Sie diesen ARN, um ihn im nächsten Schritt in der Alarmdefinition Ihres Asset-Modells festzulegen.

Schritt 3: Aktivieren des Datenflusses zwischen AWS IoT SiteWise und AWS IoT Events

Nachdem Sie die erforderlichen Ressourcen in AWS IoT SiteWise und erstellt haben AWS IoT Events, können Sie den Datenfluss zwischen den Ressourcen aktivieren, um Ihren Alarm zu aktivieren. In diesem Abschnitt aktualisieren Sie die Alarmdefinition im Asset-Modell, um das Alarmmodell zu verwenden, das Sie im vorherigen Schritt erstellt haben.

So aktivieren Sie den Datenfluss zwischen AWS IoT SiteWise und AWS IoT Events (CLI)
  • Stellen Sie das Alarmmodell als Quelle des Alarms im Asset-Modell ein. Gehen Sie wie folgt vor:

    1. Führen Sie den folgenden Befehl aus, um die vorhandene Komponentenmodelldefinition abzurufen. asset-model-idErsetzen Sie es durch die ID des Asset-Modells.

      aws iotsitewise describe-asset-model --asset-model-id asset-model-id

      Die Operation gibt eine Antwort zurück, die Details des Komponentenmodells enthält.

    2. Erstellen Sie eine Datei namens update-asset-model-payload.json und kopieren Sie die Antwort des vorherigen Befehls in die Datei.

    3. Entfernen Sie die folgenden Schlüssel-Wert-Paare aus der update-asset-model-payload.json Datei:

      • assetModelId

      • assetModelArn

      • assetModelCreationDate

      • assetModelLastUpdateDate

      • assetModelStatus

    4. Fügen Sie dem zuvor definierten zusammengesetzten Alarmmodell die Eigenschaft Alarmquelle (AWS/ALARM_SOURCE) hinzu. alarmModelArnErsetzen Sie ihn durch den ARN des Alarmmodells, der den Wert der Eigenschaft Alarmquelle festlegt.

      { ... "assetModelCompositeModels": [ ... { "name": "BoilerTemperatureHighAlarm", "type": "AWS/ALARM", "properties": [ { "id": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "name": "AWS/ALARM_TYPE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "IOT_EVENTS" } } }, { "id": "a1b2c3d4-5678-90ab-cdef-22222EXAMPLE", "name": "AWS/ALARM_STATE", "dataType": "STRUCT", "dataTypeSpec": "AWS/ALARM_STATE", "type": { "measurement": {} } }, { "name": "AWS/ALARM_SOURCE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "alarmModelArn" } } } ] } ] }
    5. Führen Sie den folgenden Befehl aus, um das Asset-Modell mit der in der update-asset-model-payload.json Datei gespeicherten Definition zu aktualisieren. asset-model-idErsetzen Sie es durch die ID des Asset-Modells.

      aws iotsitewise update-asset-model \ --asset-model-id asset-model-id \ --cli-input-json file://update-asset-model-payload.json

Ihr Anlagenmodell definiert jetzt einen Alarm, der eindringt AWS IoT Events. Der Alarm überwacht die Zielimmobilie in allen Anlagen, die auf diesem Anlagenmodell basieren. Sie können den Alarm für jedes Asset konfigurieren, um Eigenschaften wie den Schwellenwert oder den IAM Identity Center-Empfänger für jedes Asset anzupassen. Weitere Informationen finden Sie unter Konfiguration von Alarmen für Anlagen.