翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS IoT Events アラームの定義 (AWS CLI)
AWS Command Line Interface (AWS CLI) を使用して、アセットプロパティをモニタリングする AWS IoT Events アラームを定義できます。新規または既存のアセットモデルにアラームを定義することができます。アセットモデルにアラームを定義したら、 でアラームを作成し AWS IoT Events 、アセットモデルに接続します。このプロセスでは、次のことを行います。
ステップ
ステップ1: アセットモデルにアラームを定義する。
新規または既存のアセットモデルに、アラーム定義と関連プロパティを追加します。
アセットモデルにアラームを定義するには (CLI)。
-
asset-model-payload.json
という名前のファイルを作成します。これらの他のセクションのステップに従って、アセットモデルの詳細をファイルに追加しますが、アセットモデルの作成または更新のリクエストは送信しないでください。このセクションでは、asset-model-payload.json
ファイルのアセットモデル詳細にアラーム定義を追加します。-
アセットモデルの作成方法については、アセットモデルの作成 (AWS CLI) を参照してください。
-
既存のアセットモデルを更新する方法については、アセットまたはコンポーネントモデルの更新 (AWS CLI) を参照してください。
注記
アセットモデルには、アラームでモニタリングするアセットプロパティを含め、少なくとも1つのアセットプロパティが定義されている必要があります。
-
-
アセットモデルにアラーム複合モデル (
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": {} } } ] } ] } -
アセットモデルにアラームしきい値属性を追加する。このしきい値に使用するデフォルト値を指定します。このモデルに基づいて、各アセットでこのデフォルト値を上書きすることができます。
注記
アラームしきい値属性は、
INTEGER
またはDOUBLE
でなければならない。{
...
"assetModelProperties": [...
{ "name": "Temperature Max Threshold", "dataType": "DOUBLE", "type": { "attribute": { "defaultValue": "105.0" } } } ] } -
(オプション) アセットモデルにアラーム通知属性を追加します。これらの属性は、アラームの状態が変更されたときに 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] (使用開始) を参照してください。
以下の操作を実行します。
-
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
" } } } ] } -
通知の送信先の IAM Identity Center ユーザーの ID を指定する属性を追加します。デフォルトの通知受信者を定義するには、デフォルト値として IAM Identity Center ユーザー ID を追加します。次のいずれかを行って、IAM Identity Center ユーザー ID を取得します。
-
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
-
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
" } } } ] } -
-
(オプション) 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
" } } } ] } -
(オプション) E メール通知で[from] (送信元) アドレスとして使用するデフォルトのE メールアドレスを指定する属性を追加します。
{
...
"assetModelProperties": [...
{ "name": "fromAddress
", "dataType": "STRING", "type": { "attribute": { "defaultValue": "my.factory@example.com
" } } } ] } -
(オプション) E メール通知で使用するデフォルトの件名を指定する属性を追加します。
{
...
"assetModelProperties": [...
{ "name": "emailSubject
", "dataType": "STRING", "type": { "attribute": { "defaultValue": "[ALERT] High boiler temperature
" } } } ] } -
(オプション) 通知に含める追加メッセージを指定する属性を追加します。デフォルトでは、通知メッセージはアラームに関する情報を含んでいます。また、ユーザーにより多くの情報を与える追加メッセージを含めることもできます。
{
...
"assetModelProperties": [...
{ "name": "additionalMessage
", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Turn off the power before you check the alarm.
" } } } ] }
-
-
アセットモデルを作成、または既存のアセットモデルを更新します。次のいずれかを行います。
-
アセットモデルを作成するには、次のコマンドを実行します。
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)
-
でアラームモデルを作成するときは 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 アラームモデルを作成するときに使用します。
-
-
でアラームモデルを作成します AWS IoT Events。以下の操作を実行します。
-
alarm-model-payload.json
という名前のファイルを作成します。 -
次の JSON オブジェクトをファイルにコピーしてください。
-
アラームの名前 (
alarmModelName
) 、説明 (alarmModelDescription
) 、重要度 (severity
) を入力します。重要度には、お客様の会社の重要度レベルを反映した整数を指定します。重要
アラームモデルは、先にアセットモデルで定義したアラーム複合モデルと同じ名前である必要があります。
アラームモデル名には、英数字のみ使用できます。
{ "alarmModelName": "
BoilerTemperatureHighAlarm
", "alarmModelDescription": "Detects when the boiler temperature is high.
", "severity":3
} -
アラームに比較ルール (
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" } } } -
-
アラームの状態が変化した時に、 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
'" } } ] } } -
-
(オプション) アラーム通知設定を行います。アラーム通知アクションは、アカウント内のLambda関数を使用して、アラーム通知を送信します。詳細については、「アラーム通知の要件」を参照してください。アラーム通知の設定では、IAM Identity Center ユーザーに送信する SMS と E メールの通知を設定できます。以下の操作を実行します。
-
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
" } } } ] } } -
-
(オプション) アラームの状態が変化したときに 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" } ] } ] } } -
-
(オプション) アラームの状態が変化したときに 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" } } ] } ] } } -
-
-
(オプション)
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
} } } -
にデータを送信するために が引き受け 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
" } -
-
次のコマンドを実行して、 のペイロードから AWS IoT Events アラームモデルを作成します
alarm-model-payload.json
。aws iotevents create-alarm-model --cli-input-json file://alarm-model-payload.json
-
この操作では、アラームモデルの ARN、
alarmModelArn
を含む応答が返されます。この ARN をコピーして、次のステップでアセットモデルのアラーム定義に設定します。
-
ステップ 3: AWS IoT SiteWise と 間のデータフローを有効にする AWS IoT Events
AWS IoT SiteWise および で必要なリソースを作成したら AWS IoT Events、リソース間のデータフローを有効にしてアラームを有効にできます。このセクションでは、前のステップで作成したアラームモデルを使用するために、アセットモデルのアラーム定義を更新します。
AWS IoT SiteWise と AWS IoT Events (CLI) 間のデータフローを有効にするには
-
アセットモデルにアラームの出典としてアラームモデルを設定します。以下の操作を実行します。
-
次のコマンドを実行して、既存のアセットモデル定義を取得します。をアセットモデルの ID
asset-model-id
に置き換えます。aws iotsitewise describe-asset-model --asset-model-id
asset-model-id
このオペレーションは、アセットモデルの詳細を含むレスポンスを返します。
-
update-asset-model-payload.json
という名前のファイルを作成し、前のコマンドのレスポンスをファイルにコピーします。 -
update-asset-model-payload.json
ファイルから次の key-value ペアを削除します。-
assetModelId
-
assetModelArn
-
assetModelCreationDate
-
assetModelLastUpdateDate
-
assetModelStatus
-
-
先に定義したアラーム複合モデルに、アラーム出典プロパティ (
AWS/ALARM_SOURCE
) を追加します。をアラームモデルの ARNalarmModelArn
に置き換え、アラームソースプロパティの値を設定します。{
...
"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
" } } } ] } ] } -
次のコマンドを実行し、
update-asset-model-payload.json
ファイルに保存されている定義でアセットモデルを更新します。をアセットモデルの IDasset-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 受信者などのプロパティをカスタマイズすることができます。詳細については、「アセットにアラームを設定する。」を参照してください。