AWS IoT Events アラームの定義 (AWS CLI) - AWS IoT SiteWise

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS IoT Events アラームの定義 (AWS CLI)

AWS Command Line Interface (AWS CLI) を使用して、アセットプロパティをモニタリングする AWS IoT Events アラームを定義できます。新規または既存のアセットモデルにアラームを定義することができます。アセットモデルにアラームを定義したら、 でアラームを作成し AWS IoT Events 、アセットモデルに接続します。このプロセスでは、次のことを行います。

ステップ1: アセットモデルにアラームを定義する。

新規または既存のアセットモデルに、アラーム定義と関連プロパティを追加します。

アセットモデルにアラームを定義するには (CLI)。
  1. asset-model-payload.json という名前のファイルを作成します。これらの他のセクションのステップに従って、アセットモデルの詳細をファイルに追加しますが、アセットモデルの作成または更新のリクエストは送信しないでください。このセクションでは、asset-model-payload.json ファイルのアセットモデル詳細にアラーム定義を追加します。

    注記

    アセットモデルには、アラームでモニタリングするアセットプロパティを含め、少なくとも1つのアセットプロパティが定義されている必要があります。

  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. アセットモデルにアラームしきい値属性を追加する。このしきい値に使用するデフォルト値を指定します。このモデルに基づいて、各アセットでこのデフォルト値を上書きすることができます。

    注記

    アラームしきい値属性は、INTEGER または DOUBLE でなければならない。

    { ... "assetModelProperties": [ ... { "name": "Temperature Max Threshold", "dataType": "DOUBLE", "type": { "attribute": { "defaultValue": "105.0" } } } ] }
  4. (オプション) アセットモデルにアラーム通知属性を追加します。これらの属性は、アラームの状態が変更されたときに AWS IoT Events が通知を送信するために使用する IAM Identity Center 受信者およびその他の入力を指定します。このモデルに基づいて、各アセットでこれらのデフォルトをオーバーライドすることができます。

    重要

    AWS IAM Identity Center ユーザーにアラーム通知を送信できます。この機能を使用するには、IAM Identity Center を有効にする必要があります。IAM Identity Center は、一度に 1 つの AWS リージョンでのみ有効にできます。このことは、IAM Identity Center を有効にしたリージョンでのみ、アラーム通知を定義できることを意味します。詳細については、[AWS IAM Identity Center User Guide] (ユーザーガイド) の[Getting started] (使用開始) を参照してください。

    以下の操作を実行します。

    1. IAM Identity Center ID ストアの ID を指定する属性を追加します。IAM Identity Center ListInstances API オペレーションを使用して、ID ストアを一覧表示できます。このオペレーションは、IAM Identity Center を有効にしたリージョンでのみ機能します。

      aws sso-admin list-instances

      次に、ID ストア ID (例: d-123EXAMPLE) を属性のデフォルト値として指定します。

      { ... "assetModelProperties": [ ... { "name": "identityStoreId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "d-123EXAMPLE" } } } ] }
    2. 通知の送信先の IAM Identity Center ユーザーの ID を指定する属性を追加します。デフォルトの通知受信者を定義するには、デフォルト値として IAM Identity Center ユーザー ID を追加します。次のいずれかを行って、IAM Identity Center ユーザー ID を取得します。

      1. IAM Identity Center ListUsers API を使用して、ユーザー名がわかっているユーザーの ID を取得できます。d-123EXAMPLE は ID ストアの ID に、[Name] (名前) はユーザーのユーザー名に置き換えてください。

        aws identitystore list-users \ --identity-store-id d-123EXAMPLE \ --filters AttributePath=UserName,AttributeValue=Name
      2. IAM Identity Center コンソール を使用してユーザーをブラウズして、ユーザー 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 Simple Notification Service (Amazon SNS) が送信するメッセージの送信者として、送信者 ID が表示されます。詳細については、[Amazon Simple Notification Service Developer Guide] (Amazon Simple Notification Service デベロッパーガイド) の[Requesting sender IDs for SMS messaging with Amazon SNS] (Amazon SNS を利用した SMS メッセージの送信者 ID を要求する) を参照してください。

      { ... "assetModelProperties": [ ... { "name": "senderId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "MyFactory" } } } ] }
    4. (オプション) E メール通知で[from] (送信元) アドレスとして使用するデフォルトのE メールアドレスを指定する属性を追加します。

      { ... "assetModelProperties": [ ... { "name": "fromAddress", "dataType": "STRING", "type": { "attribute": { "defaultValue": "my.factory@example.com" } } } ] }
    5. (オプション) E メール通知で使用するデフォルトの件名を指定する属性を追加します。

      { ... "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
    • 既存のアセットモデルを更新するには、次のコマンドを実行します。をアセットモデルの ID asset-model-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 を取得します。アラームモデルでは、次のような表現が可能です。

  • アセットプロパティ値

    アセットプロパティの値を取得するには、次の表現を使用します。をアセットモデルの ID assetModelIdに置き換え、propertyId をプロパティの ID に置き換えます。

    $sitewise.assetModel.`assetModelId`.`propertyId`.propertyValue.value
  • [Asset IDs] (アセット ID)

    アセットのIDを取得するには、次の表現を使用します。をアセットモデルの ID assetModelIdに置き換え、propertyId をプロパティの ID に置き換えます。

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

アラームモデルを作成するときに、 AWS IoT SiteWise 値に評価される式の代わりにリテラルを定義できます。これにより、アセットモデルに定義する属性の数を減らすことができます。ただし、値をリテラルで定義した場合、アセットモデルに基づいてアセットでその値をカスタマイズすることはできません。また、 AWS IoT SiteWise Monitor ユーザーはアセットに対してのみアラーム設定を構成できるため、アラームをカスタマイズすることはできません。

AWS IoT Events アラームモデルを作成するには (CLI)
  1. でアラームモデルを作成するときは AWS IoT Events、アラームが使用する各プロパティの ID を指定する必要があります。これには、以下が含まれます。

    • 複合アセットモデルにおけるアラーム状態プロパティ。

    • アラームがモニタリングしているプロパティ。

    • しきい値属性

    • (オプション) IAM Identity Center ID ストア ID 属性

    • (オプション) IAM Identity Center ユーザー ID 属性

    • (オプション) SMS 送信者 ID 属性

    • (オプション) E メールの[from] (送信元) アドレス属性

    • (オプション) E メールの件名属性

    • (オプション) 追加のメッセージ属性

    次のコマンドを実行し、アセットモデル上のこれらのプロパティの ID を取得します。を前のステップのアセットモデルの ID asset-model-idに置き換えます。

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

    このオペレーションは、アセットモデルの詳細を含むレスポンスを返します。アラームが使用する各プロパティの 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) を定義する。

      • をアセットモデルの ID assetModelIdに置き換えます。

      • を、アラームがモニタリングする プロパティの ID alarmPropertyIdに置き換えます。

      • をしきい値属性プロパティの ID thresholdAttributeIdに置き換えます。

      • GREATER は、プロパティ値としきい値の比較に使用する演算子で置き換えてください。次のオプションから選択します。

        • 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. アラームの状態が変化した時に、 AWS IoT SiteWise にアラームの状態を送信するアクション (alarmEventActions) を追加する。

      注記

      アドバンストな設定として、アラームの状態が変化したときに実行する追加アクションを定義することができます。例えば、 AWS Lambda 関数を呼び出したり、MQTT トピックに発行したりします。詳細については、「 AWS IoT Events デベロッパーガイド」の「他の AWS のサービスの使用」を参照してください。

      • をアセットモデルの ID assetModelIdに置き換えます。

      • を、アラームがモニタリングする プロパティの ID alarmPropertyIdに置き換えます。

      • ID をアラーム複合モデルのアラーム状態プロパティの ID alarmStatePropertyに置き換えます。

      { "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関数を使用して、アラーム通知を送信します。詳細については、「アラーム通知の要件」を参照してください。アラーム通知の設定では、IAM Identity Center ユーザーに送信する SMS と E メールの通知を設定できます。以下の操作を実行します。

      1. alarm-model-payload.json のペイロードにアラーム通知設定 (alarmNotification) を追加する。

        • alarmNotificationFunctionArn を、アラーム通知を処理する 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. (オプション) アラームの状態が変化したときに IAM Identity Center ユーザーに送信する SMS 通知 (smsConfigurations) を設定し ます。

        • を、IAM Identity Center ID ストアの ID を含む属性の ID identityStoreIdAttributeIdに置き換えます。

        • ID を、IAM Identity Center ユーザーの ID を含む属性の ID userIdAttributeに置き換えます。

        • senderIdAttributeID を Amazon SNS 送信者 ID を含む属性の ID に置き換えるか、ペイロード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. (オプション) アラームの状態が変化したときに IAM Identity Center ユーザーに送信する E メール通知 (emailConfigurations) を設定します。

        • を IAM Identity Center ID ストア ID 属性プロパティの ID identityStoreIdAttributeIdに置き換えます。

        • ID を IAM Identity Center ユーザー ID 属性プロパティの ID userIdAttributeに置き換えます。

        • fromAddressAttributeID を「from」アドレス属性プロパティの ID に置き換えるか、ペイロードfromから削除します。

        • ID を E メールの件名属性プロパティの ID emailSubjectAttributeに置き換えるか、ペイロードsubjectから削除します。

        • ID を追加のメッセージ属性プロパティの ID additionalMessageAttributeに置き換えるか、ペイロード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. (オプション) alarm-model-payload.jsonのペイロードにアラーム機能 (alarmCapabilities) を追加する。このオブジェクトでは、アセットモデルに基づいて、フロー承認が有効かどうか、およびアセットに対するデフォルトの有効状態を指定することができます。フロー承認の詳細については、アラームの状態 を参照してください。

      { "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。このロールを担うには、iotsitewise:BatchPutAssetPropertyValue の許可と、iotevents.amazonaws.com がそのロールを担うことができる信頼関係が必要です。通知を送信するには、このロールには lambda:InvokeFunction および sso-directory:DescribeUser のアクセス許可も必要です。詳細については、[AWS IoT Events Developer Guide] (デベロッパーガイド) の[Alarm service roles] (アラームサービスロール) を参照してください。

      • を、これらのアクションを実行するために が引き受け 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. 次のコマンドを実行して、既存のアセットモデル定義を取得します。をアセットモデルの ID asset-model-idに置き換えます。

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

      このオペレーションは、アセットモデルの詳細を含むレスポンスを返します。

    2. update-asset-model-payload.json という名前のファイルを作成し、前のコマンドのレスポンスをファイルにコピーします。

    3. update-asset-model-payload.json ファイルから次の key-value ペアを削除します。

      • 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 ファイルに保存されている定義でアセットモデルを更新します。をアセットモデルの ID asset-model-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 Identity Center 受信者などのプロパティをカスタマイズすることができます。詳細については、「アセットにアラームを設定する。」を参照してください。