定義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.json檔案中的資產模型詳細資料。

    注意

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

  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. (選擇性) 將警示通知屬性新增至資產模型。這些屬性會指定 IAM 身分中心收件者,以及在警示狀態變更時AWS IoT Events用來傳送通知的其他輸入。您可以根據此模型覆寫每個資產上的這些預設值。

    重要

    您可以傳送警示通知給AWS IAM Identity Center使用者。若要使用此功能,您必須啟用 IAM 身分中心。您一次只能在一個AWS區域啟用 IAM 身分中心。這表示您只能在啟用 IAM 身分中心的區域中定義警示通知。如需詳細資訊,請參閱《AWS IAM Identity Center 使用者指南》中的「入門」

    請執行下列操作:

    1. 新增指定 IAM 身分識別中心身分存放區 ID 的屬性。您可以使用 IAM 身分中心 ListInstancesAPI 操作列出身分存放區。此作業僅適用於啟用 IAM 身分中心的區域。

      aws sso-admin list-instances

      然後,指定識別身分存放區 ID (例如,d-123EXAMPLE) 做為屬性的預設值。

      { ... "assetModelProperties": [ ... { "name": "identityStoreId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "d-123EXAMPLE" } } } ] }
    2. 新增屬性,以指定接收通知之 IAM 身分中心使用者的 ID。若要定義預設通知收件者,請新增 IAM 身分中心使用者 ID 做為預設值。執行下列其中一項動作以取得 IAM 身分中心使用者 ID:

      1. 您可以使用 IAM 身分中心 ListUsersAPI 取得您已知其使用者名稱之使用者的 ID。將 D-123 範例取代為您的身分識別存放區的 ID,並以使用者的使用者稱取代 Name。

        aws identitystore list-users \ --identity-store-id d-123EXAMPLE \ --filters AttributePath=UserName,AttributeValue=Name
      2. 使用 IAM 身分中心主控台瀏覽您的使用者並尋找使用者 ID。

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

      { ... "assetModelProperties": [ ... { "name": "userId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE" } } } ] }
    3. (選擇性) 新增屬性,以指定 SMS (文字) 訊息通知的預設寄件者識別碼。寄件者識別碼會在 Amazon Simple Notification Service (Amazon SNS) 傳送的訊息上顯示為訊息寄件者。如需詳細資訊,請參閱 Amazon 簡單通知服務開發人員指南中的向 Amazon SNS 申請傳送簡訊的寄件者識別碼。

      { ... "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
    • 若要更新既有的資產模型,請執行下列指令。asset-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。在中AWS IoT Events,您可以使用運算式來指定警示模型中的值。您可以使用表示式來指定AWS IoT SiteWise要評估的值,並用作警示的輸入。AWS IoT SiteWise將資產屬性值傳送至警示模型時,會AWS IoT Events評估運算式以取得屬性值或資產 ID。您可以在警報模型中使用下列運算式:

  • 資產屬性值

    若要取得資產屬性的值,請使用下列運算式。assetModelId以資產模型的 ID 取代,並以屬性的 ID 取代 Property ID。

    $sitewise.assetModel.`assetModelId`.`propertyId`.propertyValue.value
  • 資產識別碼

    若要取得資產的 ID,請使用下列運算式。assetModelId以資產模型的 ID 取代,並以屬性的 ID 取代 Property ID。

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

建立警示模型時,您可以定義常值,而不是評估為AWS IoT SiteWise值的運算式。這可以減少您在資產模型上定義的屬性數量。但是,如果您將值定義為常值,則無法根據資產模型根據資產自訂該值。您的AWS IoT SiteWise Monitor使用者也無法自訂鬧鐘,因為他們只能在資產上設定鬧鐘設定。

若要建立AWS IoT Events警示模型 (CLI)
  1. 在中建立警示模型時AWS IoT Events,您必須指定警示使用之每個屬性的 ID,其中包括下列項目:

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

    • 警報監控的屬性

    • 閾值屬性

    • (選用) IAM 身分識別中心身分識別存放區 ID 屬性

    • (選用) IAM 身分中心使用者 ID 屬性

    • (選擇性) SMS 傳送者識別碼屬性

    • (選擇性) 電子郵件寄件者址屬性

    • (選擇性) 電子郵件主旨屬性

    • (選擇性) 其他訊息屬性

    執行下列命令以擷取資產模型上這些屬性的 ID。取代asset-model-id為上一個步驟中資產模型的 ID。

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

    此操作會傳回包含資產模型詳細資料的回應。請記下警示使用之每個屬性的 ID。在下一個步驟中建立AWS IoT Events鬧鐘模型時,您可以使用這些 ID。

  2. 在中建立警報模型AWS IoT Events。請執行下列操作:

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

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

    3. 輸入警示的名稱 (alarmModelNamealarmModelDescription)、說明 (severity) 和嚴重性 ()。對於嚴重性,請指定反映公司嚴重性層級的整數。

      重要

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

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

      { "alarmModelName": "BoilerTemperatureHighAlarm", "alarmModelDescription": "Detects when the boiler temperature is high.", "severity": 3 }
    4. 將比較規則 (alarmRule) 新增至警示。此規則會定義要監視的內容 (inputProperty)、要比較的臨界值 (threshold),以及要使用的比較運算子 (comparisonOperator)。

      • assetModelId以資產模型的 ID 取代。

      • alarmPropertyId以警示監控的屬性 ID 取代。

      • thresholdAttributeId以閾值屬性內容的識別碼取代。

      • 以用來比較屬性值與臨界值的運算子取代 GERIER。您可以從以下選項中選擇:

        • 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 IoT Events發人員指南中的使用其他AWS服務

      • assetModelId以資產模型的 ID 取代。

      • alarmPropertyId以警示監控的屬性 ID 取代。

      • alarmStatePropertyId 替換為警報複合模型中警報狀態屬性的 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 和電子郵件通知,以傳送給 IAM 身分中心使用者。請執行下列操作:

      1. 將警示通知組態 (alarmNotification) 新增至中的承載alarm-model-payload.json

        • alarmNotificationFunctionAn 取代為處理警示通知之 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),以便在警示狀態變更時傳送給 IAM 身分中心使用者。

        • 取代identityStoreIdAttributeId為包含 IAM 身分識別中心身分存放區 ID 之屬性的 ID。

        • userIdAttributeID 取代為包含 IAM 身分中心使用者 ID 之屬性的 ID。

        • senderIdAttribute識別碼取代為包含 Amazon SNS 寄件者識別碼的屬性識別碼,或senderId從承載中移除。

        • additionalMessageAttributeId 取代為包含其他訊息的屬性 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),以便在警示狀態變更時傳送給 IAM 身分中心使用者。

        • identityStoreIdAttributeId以 IAM 身分中心身分識別存放區 ID 屬性屬性的 ID 取代。

        • userIdAttributeID 取代為 IAM 身分中心使用者 ID 屬性屬性的 ID。

        • fromAddressAttributeId 取代為「從」位址屬性內容的 ID,或from從裝載中移除。

        • emailSubjectAttributeId 替換為電子郵件主旨屬性屬性的 ID,或subject從裝載中移除。

        • additionalMessageAttributeId 取代為其他訊息屬性內容的 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. 新增AWS IoT Events可假設將資料傳送至的 IAM 服務角色 (roleArn) AWS IoT SiteWise。此角色需要允許iotevents.amazonaws.com擔任角色的iotsitewise:BatchPutAssetPropertyValue權限和信任關係。若要傳送通知,此角色也需要lambda:InvokeFunctionsso-directory:DescribeUser權限。如需詳細資訊,請參閱AWS IoT Events開發人員指南中的警示服務角色

      • AWS IoT Events以可假設執行這些動作之角色的 ARN 取代。roleArn

      { "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. 執行以下命令來擷取現有的資產模型定義。asset-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) 新增至您先前定義的警報複合模型。以設定警報來源屬性值的警報模型的 ARN 取alarmModelArn代。

      { ... "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.json檔案中的定義來更新資產模型。asset-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。警示會根據此資產模型監控所有資產中的目標屬性。您可以在每個資產上設定警示,以自訂屬性,例如每個資產的閾值或 IAM 身分中心收件者。如需詳細資訊,請參閱 設定資產的警示