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:
Schritte
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)
-
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 derasset-model-payload.json
Datei eine Alarmdefinition hinzu.-
Weitere Informationen zum Erstellen eines Asset-Modells finden Sie unterEin Asset-Modell erstellen (AWS CLI).
-
Weitere Informationen zum Aktualisieren eines vorhandenen Asset-Modells finden Sie unterAktualisierung eines Asset- oder Komponentenmodells (AWS CLI).
Anmerkung
Ihr Anlagenmodell muss mindestens eine Anlageneigenschaft definieren, einschließlich der Anlageneigenschaft, die mit dem Alarm überwacht werden soll.
-
-
Fügen Sie dem Anlagenmodell ein zusammengesetztes Alarmmodell (
assetModelCompositeModels
) hinzu. Ein zusammengesetztes AWS IoT Events Alarmmodell spezifiziert denIOT_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": {} } } ] } ] } -
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" } } } ] } -
(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:
-
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
" } } } ] } -
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:
-
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 undName
durch den Benutzernamen des Benutzers.aws identitystore list-users \ --identity-store-id
d-123EXAMPLE
\ --filters AttributePath=UserName,AttributeValue=Name
-
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
" } } } ] } -
-
(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
" } } } ] } -
(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
" } } } ] } -
(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
" } } } ] } -
(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.
" } } } ] }
-
-
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-id
Ersetzen 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.
assetModelId
Ersetzen Sie durch die ID des Asset-Modells und ersetzen SiepropertyId
durch die ID der Eigenschaft.$sitewise.assetModel.`
assetModelId
`.`propertyId
`.propertyValue.value -
Objekt-IDs
Verwenden Sie den folgenden Ausdruck, um die ID des Assets abzurufen.
assetModelId
Ersetzen Sie durch die ID des Asset-Modells und ersetzen SiepropertyId
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)
-
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-id
Ersetzen 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.
-
-
Erstellen Sie das Alarmmodell in AWS IoT Events. Gehen Sie wie folgt vor:
-
Erstellen Sie eine Datei mit dem Namen
alarm-model-payload.json
. -
Kopieren Sie das folgende JSON-Objekt in die Datei.
-
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
} -
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
).-
assetModelId
Ersetzen Sie es durch die ID des Asset-Modells. -
alarmPropertyId
Ersetzen Sie durch die ID der Immobilie, die der Alarm überwacht. -
thresholdAttributeId
Ersetzen 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" } } } -
-
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.
-
assetModelId
Ersetzen Sie es durch die ID des Asset-Modells. -
alarmPropertyId
Ersetzen 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
'" } } ] } } -
-
(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:
-
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
" } } } ] } } -
-
(Optional) Konfigurieren Sie die SMS-Benachrichtigungen (
smsConfigurations
), die an einen IAM Identity Center-Benutzer gesendet werden, wenn sich der Status des Alarms ändert.-
identityStoreIdAttributeId
Ersetzen 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 essenderId
aus der Payload. -
Ersetzen Sie
additionalMessageAttributeId
durch die ID des Attributs, das die zusätzliche Nachricht enthält, oder entfernen Sie sieadditionalMessage
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" } ] } ] } } -
-
(Optional) Konfigurieren Sie die E-Mail-Benachrichtigungen (
emailConfigurations
), die an einen IAM Identity Center-Benutzer gesendet werden, wenn sich der Status des Alarms ändert.-
identityStoreIdAttributeId
Ersetzen 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 siefrom
aus der Payload. -
Ersetzen Sie
emailSubjectAttributeId
durch die ID der Eigenschaft des E-Mail-Betreff-Attributs oder entfernen Sie essubject
aus der Payload. -
Ersetzen Sie
additionalMessageAttributeId
durch die ID der zusätzlichen Nachrichtenattributeigenschaft oder entfernen Sie sieadditionalMessage
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" } } ] } ] } } -
-
-
(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
} } } -
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 dieiotsitewise:BatchPutAssetPropertyValue
Genehmigung und eine Vertrauensbeziehung erforderlich, die es ermöglichen, die Rolleiotevents.amazonaws.com
zu übernehmen. Um Benachrichtigungen zu senden, benötigt diese Rolle auch diesso-directory:DescribeUser
Berechtigungenlambda: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
" } -
-
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
-
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:
-
Führen Sie den folgenden Befehl aus, um die vorhandene Komponentenmodelldefinition abzurufen.
asset-model-id
Ersetzen 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.
-
Erstellen Sie eine Datei namens
update-asset-model-payload.json
und kopieren Sie die Antwort des vorherigen Befehls in die Datei. -
Entfernen Sie die folgenden Schlüssel-Wert-Paare aus der
update-asset-model-payload.json
Datei:-
assetModelId
-
assetModelArn
-
assetModelCreationDate
-
assetModelLastUpdateDate
-
assetModelStatus
-
-
Fügen Sie dem zuvor definierten zusammengesetzten Alarmmodell die Eigenschaft Alarmquelle (
AWS/ALARM_SOURCE
) hinzu.alarmModelArn
Ersetzen 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
" } } } ] } ] } -
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-id
Ersetzen 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.