定義AWS IoT Events警報 (CLI) - AWS IoT SiteWise

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

定義AWS IoT Events警報 (CLI)

您可以使用AWS Command Line Interface(AWS CLI)來定義AWS IoT Events監控資產屬性的警示。您可以在新的或現有資產模型上定義警報。在資產模型上定義警報後,您可以在AWS IoT Events並將其連線至資產模型。請於本過程執行以下操作:

步驟 1:定義資產模型上的警示

將警報定義和關聯屬性添加到新的或現有資產模型中。

定義資產模型 (CLI)

  1. 建立稱為 asset-model-payload.json 的檔案。按照以下其他部分中的步驟將資產模型的詳細信息添加到文件中,但不要提交創建或更新資產模型的請求。在本節中,您可以將警報定義添加到asset-model-payload.jsonfile.

    注意

    您的資產模型必須至少定義一個資產屬性,包括要使用警報監控的資產屬性。

  2. 添加警報複合模型 (assetModelCompositeModels) 添加到資產模型。同時AWS IoT Events警報複合模型指定IOT_EVENTS類型並指定警報源屬性。創建警報模型後,您可以添加警報源屬性AWS IoT Events。

    重要

    警示複合模型必須與AWS IoT Events警報模型,以後創建。警示型號名稱只能包含英數字元。指定一個唯一的字母數字名稱,以便您可以為警報模型使用相同的名稱。

    { ... "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. 向資產模型添加警報閾值屬性。指定要用於此閾值的默認值。您可以根據此模型在每個資產上覆蓋此默認值。

    注意

    警報閾值屬性必須是INTEGERDOUBLE

    { ... "assetModelProperties": [ ... { "name": "Temperature Max Threshold", "dataType": "DOUBLE", "type": { "attribute": { "defaultValue": "105.0" } } } ] }
  4. (選擇性)將警示通知屬性添加至資產模型。這些屬性指定AWS SSO收件人和其他輸入AWS IoT Events用於在警示變更狀態時傳送通知。您可以根據此模型在每個資產上覆蓋這些默認值。

    重要

    您可以將警報通知發送到AWS Single Sign-On用户。若要使用此功能,您必須啟用AWS SSO。您只能啟用AWS SSO中的一個AWS一次的區域。這意味着您只能在啟用AWS SSO。如需詳細資訊,請參閱「」入門中的AWS Single Sign-On使用者指南

    請執行下列動作:

    1. 添加一個屬性,該屬性指定AWS SSO身份存儲。您可以使用AWS SSO ListInstancesAPI 操作來列出您的身份存儲。此操作僅在啟用AWS SSO。

      aws sso-admin list-instances

      然後,指定身份存儲 ID(例如d-123EXAMPLE)作為屬性的默認值。

      { ... "assetModelProperties": [ ... { "name": "identityStoreId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "d-123EXAMPLE" } } } ] }
    2. 添加一個屬性,該屬性指定AWS SSO接收通知的使用者。要定義默認通知收件人,請添加AWS SSO使用者 ID 作為預設值。請執行下列其中一項以獲取AWS SSO使用者 ID:

      1. 您可以使用AWS SSO ListUsersAPI 來獲取您知道其用户名的用户 ID。ReplaceD-123 示例取代為身份存儲的 ID,然後將名稱以及使用者的使用者名稱。

        aws identitystore list-users \ --identity-store-id d-123EXAMPLE \ --filters AttributePath=UserName,AttributeValue=Name
      2. 使用AWS SSO安慰瀏覽您的用户並查找用户 ID。

      然後,指定用户 ID(例如123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE) 作為屬性的預設值,或者定義不使用預設值的屬性。

      { ... "assetModelProperties": [ ... { "name": "userId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE" } } } ] }
    3. (可選)添加一個屬性,用於指定 SMS(文本)消息通知的默認發件人 ID。Amazon SSimple Notification Service (Amazon SNS) 傳送的郵件中,發件人 ID 會顯示為郵件發件人。如需詳細資訊,請參閱「」使用 Amazon SNS 請求簡訊寄件者 ID中的Amazon Simple Notification Service 開發人員指南

      { ... "assetModelProperties": [ ... { "name": "senderId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "MyFactory" } } } ] }
    4. (可選)添加一個屬性,該屬性指定默認電子郵件地址用作電子郵件通知中的地址。

      { ... "assetModelProperties": [ ... { "name": "fromAddress", "dataType": "STRING", "type": { "attribute": { "defaultValue": "my.factory@example.com" } } } ] }
    5. (可選)添加一個屬性,該屬性指定在電子郵件通知中使用的默認主題。

      { ... "assetModelProperties": [ ... { "name": "emailSubject", "dataType": "STRING", "type": { "attribute": { "defaultValue": "[ALERT] High boiler temperature" } } } ] }
    6. (可選)添加一個屬性,該屬性指定要包含在通知中的附加消息。默認情況下,通知消息包含有關警報的信息。您還可以包含一條附加消息,為用户提供更多信息。

      { ... "assetModelProperties": [ ... { "name": "additionalMessage", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Turn off the power before you check the alarm." } } } ] }
  5. 創建資產模型或更新現有資產模型。執行下列任一步驟:

    • 要創建資源模型,請運行以下命令。

      aws iotsitewise create-asset-model --cli-input-json file://asset-model-payload.json
    • 若要更新現有資產模型,請執行下列命令。Replaceasset-model-id以及資產模型的 ID。

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

    執行命令之後,請記下assetModelId在響應中。

下列資產模型可呈現報告温度資料的鍋爐。此資產模型定義了一個警報,用於檢測鍋爐過熱時。

{ "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": {} } } ] } ] }

步驟 2:定義AWS IoT Events警示模型

建立警示模型AWS IoT Events。InAWS IoT Events中,您使用表達式指定警報模型中的值。您可以使用表達式指定AWS IoT SiteWise來評估並將其用作報警的輸入。時機AWS IoT SiteWise將資產屬性值發送到警報模型,AWS IoT Events計算表達式以獲取屬性的值或資源的 ID。您可以在警示模型中使用下列表達式:

  • 資產屬性值

    若要獲取資產屬性的值,請使用下列表達式。ReplaceassetModelId取代為資產模型的 ID,然後將propertyId和屬性的 ID。

    $sitewise.assetModel.`assetModelId`.`propertyId`.propertyValue.value
  • 資產 ID

    若要獲取資產的 ID,請使用下列表達式。ReplaceassetModelId取代為資產模型的 ID,然後將propertyId和屬性的 ID。

    $sitewise.assetModel.`assetModelId`.`propertyId`.assetId
注意

創建警報模型時,您可以定義文字而不是計算為AWS IoT SiteWise值。這可以減少您在資產模型上定義的屬性數量。但是,如果將值定義為文字,則無法根據資產模型自定義資產值。您的AWS IoT SiteWise Monitor用户也無法自定義警報,因為他們只能在資產上配置警報設置。

建立AWS IoT Events警示模型 (CLI)

  1. 當您創建警報模型時AWS IoT Events,則必須指定警報使用的每個屬性的 ID,其中包括以下內容:

    • 複合資產模型中的警報狀態屬性

    • 警報監控的屬性

    • 閾值屬性

    • (可選)AWS SSO身份存儲 ID 屬性

    • (可選)AWS SSO使用者 ID 屬性

    • (可選)SMS 發件人 ID 屬性

    • (選用) 電子郵件地址屬性

    • (可選)電子郵件主題屬性

    • (可選)附加消息屬性

    執行以下命令來檢索資產模型上的這些屬性的 ID。Replaceasset-model-id,其中包含上一步中資產模型的 ID。

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

    此操作會傳回包含資產模型詳細資料的回應。記下警報使用的每個屬性的 ID。當您建立AWS IoT Events警示模型。

  2. 建立警示模型AWS IoT Events。請執行下列動作:

    1. 建立稱為 alarm-model-payload.json 的檔案。

    2. 將下列 JSON 物件複製到檔案。

    3. 輸入名稱 (alarmModelName), 説明 (alarmModelDescription)和嚴重性(severity)來尋找警示。對於嚴重性,請指定一個反映公司嚴重性級別的整數。

      重要

      警報模型必須與之前在資產模型中定義的警報複合模型具有相同的名稱。

      警示型號名稱只能包含英數字元。

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3 }
    4. 添加比較規則 (alarmRule)添加到警報。此規則定義了要監視的屬性(inputProperty),要比較的閾值(threshold)和使用的比較運算子 (comparisonOperator

      • ReplaceassetModelId以及資產模型的 ID。

      • ReplacealarmPropertyId與警報監視的屬性的 ID。

      • ReplacethresholdAttributeId為閾值屬性屬性的 ID。

      • Replace更大,並使用運算子來比較屬性值和閾值。您可以從以下選項中選擇:

        • 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. 添加一個操作 (alarmEventActions)將警報狀態發送到AWS IoT SiteWise當警示變更狀態時。

      注意

      若要進行高級配置,您可以定義警示變更狀態時執行的其他操作。例如,您可能調用AWS Lambda函數或將其發佈至 MQTT 主題。如需詳細資訊,請參閱「」使用其他AWS服務中的AWS IoT Events開發人員指南

      • ReplaceassetModelId以及資產模型的 ID。

      • ReplacealarmPropertyId與警報監視的屬性的 ID。

      • ReplacealarmStatePropertyId與警報複合模型中報警狀態屬性的 ID。

      { "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. (可選)配置警報通知設置。警報通知操作在您的賬户中使用 Lambda 功能來發送警報通知。如需詳細資訊,請參閱 警示通知的要求。在警報通知設置中,您可以配置 SMS 和電子郵件通知以發送到AWS SSO用户。請執行下列動作:

      1. 添加警報通知配置 (alarmNotification)添加到alarm-model-payload.json

        • ReplacealarmNotificationFunctionArn使用 Lambda 函數的 ARN,用於處理警示通知。

        { "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. (可選)配置 SMS 通知(smsConfigurations)發送到AWS SSO當警示變更狀態時,使用者。

        • ReplaceidentityStoreIdAttributeId取代為包含AWS SSO身份存儲。

        • ReplaceuserIdAttributeId取代為包含AWS SSO用户。

        • ReplacesenderIdAttributeId,其中包含 Amazon SNS 發件人 ID 的屬性的 ID,或刪除senderId從承載中承載。

        • ReplaceadditionalMessageAttributeId使用包含附加消息的屬性的 ID,或者刪除additionalMessage從承載中承載。

        { "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. (選用) 設定電子郵件通知 (emailConfigurations)發送到AWS SSO當警示變更狀態時,使用者。

        • ReplaceidentityStoreIdAttributeId的 IDAWS SSO標識存儲 ID 屬性。

        • ReplaceuserIdAttributeId的 ID 為AWS SSO用户 ID 屬性。

        • ReplacefromAddressAttributeId與「發件人」地址屬性屬性的 ID,或者刪除from從承載中承載。

        • ReplaceemailSubjectAttributeId使用電子郵件主題屬性屬性的 ID,或者刪除subject從承載中承載。

        • ReplaceadditionalMessageAttributeId使用附加消息屬性屬性的 ID,或者刪除additionalMessage從承載中承載。

        { "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. (可選)添加警報功能(alarmCapabilities)添加到alarm-model-payload.json。在此對象中,您可以根據資產模型指定是否啟用確認流和資源的默認啟用狀態。如需確認流程的詳細資訊,請參警示狀態

      { "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. 添加 IAM 服務角色 (roleArn),AWS IoT Events可以假設傳送資料到AWS IoT SiteWise。此角色需要iotsitewise:BatchPutAssetPropertyValue權限和信任關係,允許iotevents.amazonaws.com來擔任此角色。要發送通知,此角色還需要lambda:InvokeFunctionsso-directory:DescribeUser許可。如需詳細資訊,請參閱「」報警服務角色中的AWS IoT Events開發人員指南

      • 替換roleArn以及角色的 ARNAWS IoT Events可以假設執行這些操作。

      { "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. 執行以下命令來建立AWS IoT Events報警模型從有效載荷alarm-model-payload.json

      aws iotevents create-alarm-model --cli-input-json file://alarm-model-payload.json
    10. 此操作會傳回包括警示模型 ARN 的回應alarmModelArn。複製此 ARN 以在下一步中在資產模型的警報定義中設置。

步驟 3:啟用資料流程AWS IoT SiteWise和AWS IoT Events

在AWS IoT SiteWise和AWS IoT Events,您可以啟用資源之間的數據流以啟用警報。在本節中,您將更新資產模型中的警報定義,以使用您在上一步中創建的警報模型。

若要啟用AWS IoT SiteWise和AWS IoT Events(CLI)

  • 將報警模型設置為資產模型中的報警源。請執行下列動作:

    1. 執行以下命令來擷取現有的資產模型定義。Replaceasset-model-id以及資產模型的 ID。

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

      此操作會傳回包含資產模型詳細資料的回應。

    2. 建立名為 update-asset-model-payload.json 的文件,並將前一個命令的回應複製到檔案中。

    3. 將下列鍵值組從update-asset-model-payload.json文件:

      • assetModelId

      • assetModelArn

      • assetModelCreationDate

      • assetModelLastUpdateDate

      • assetModelStatus

    4. 添加警報源屬性 (AWS/ALARM_SOURCE) 傳送到您先前定義的警示複合模型。ReplacealarmModelArn與警報模型的 ARN,該模型設置警報源屬性的值。

      { ... "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. 執行下列命令,使用存儲在update-asset-model-payload.jsonfile. Replaceasset-model-id以及資產模型的 ID。

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

您的資產模型現在定義了一個警報,該警報可在AWS IoT Events。警報基於此資產模型監控所有資產中的目標屬性。您可以在每個資源上配置警報以自定義屬性,例如閾值或AWS SSO每個資產的收件人。如需詳細資訊,請參閱 在資產上設定警示