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

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

AWS IoT Events アラームの定義

AWS IoT Events アラームを作成すると、 AWS IoT SiteWise はアセットプロパティ値を に送信 AWS IoT Events して alarm. AWS IoT Events alarm 定義の状態を評価します。 は、 で定義したアラームモデルによって異なります AWS IoT Events。アセットモデルに AWS IoT Events アラームを定義するには、アラームモデルを AWS IoT Events アラームソースプロパティとして指定するアラーム複合モデルを定義します。

AWS IoT Events アラームは、アラームのしきい値やアラーム通知設定などの入力によって異なります。これらの入力は、アセットモデル上の属性として定義します。そして、これらの入力をモデルに基づいて各アセットでカスタマイズすることができます。 AWS IoT SiteWise コンソールでこれらの属性を作成できます。 AWS CLI または でアラームを定義する場合はAPI、アセットモデルでこれらの属性を手動で定義する必要があります。

また、カスタムアラーム通知アクションなど、アラームが検出されたときに発生するその他のアクションを定義することも可能です。例えば、Amazon SNSトピックにプッシュ通知を送信するアクションを設定できます。定義できるアクションの詳細については、「 AWS IoT Events デベロッパーガイド」の「他の AWS のサービスの使用」を参照してください。

アセットモデルを更新または削除すると、 は、 の AWS IoT Events アラームモデルがこのアセットモデルに関連付けられたアセットプロパティをモニタリングしているかどうか AWS IoT SiteWise を確認できます。これにより、 AWS IoT Events アラームが現在使用しているアセットプロパティを削除できなくなります。でこの機能を有効にするには AWS IoT SiteWise、 アクセスiotevents:ListInputRoutings許可が必要です。このアクセス許可により AWS IoT SiteWise 、 は でサポートされている ListInputRoutingsAPIオペレーションを呼び出すことができます AWS IoT Events。詳細については、「(オプション) ListInputRoutings アクセス許可」を参照してください。

注記

アラーム通知機能は、中国 (北京) リージョンでは利用できません。

AWS IoT Events アラームの定義 (AWS IoT SiteWise コンソール)

AWS IoT SiteWise コンソールを使用して、既存のアセットモデルに AWS IoT Events アラームを定義できます。新しいアセットモデルに AWS IoT Events アラームを定義するには、アセットモデルを作成し、次のステップを実行します。詳細については、「アセットモデルの作成」を参照してください。

重要

各アラームには、そのアラームの比較対象となるしきい値を指定する属性が必要です。アラームを定義する前に、アセットモデルでしきい値属性を定義する必要があります。

例えば、風力タービンが定格最大風速 50mph を超えた場合にアラームを発生させたい場合を考えてみましょう。アラームを定義する前に、デフォルト値が 50 の属性 ([最大風速]) を定義する必要があります。

アセットモデルに AWS IoT Events アラームを定義するには
  1. AWS IoT SiteWise コンソールに移動します。

  2. ナビゲーションペインで、[モデル] を選択します。

  3. アラームを定義するアセットモデルを選択します。

  4. [アラーム] タブを選択します。

  5. [アラームの追加] を選択します。

  6. [アラーム型のオプション] セクションで、[AWS IoT Events アラーム] を選択します。

  7. [アラームの詳細] セクションで、次の手順を実行します。

    1. アラームの名前を入力します。

    2. (オプション) アラームの説明を入力します。

  8. [しきい値定義] セクションでは、アラーム検出のタイミングとアラームの重要度を定義します。以下の操作を実行します。

    1. アラームを検出した[プロパティ] を選択します。このプロパティが新しい値を受信するたびに、 は値を AWS IoT SiteWise に送信 AWS IoT Events してアラームの状態を評価します。

    2. プロパティとしきい値の比較に使用する [演算子] を選択します。次のオプションから選択します。

      • [< 未満]

      • [<= より小さい、または等しい]

      • == 等しい

      • != 等しくない

      • [>= より大きい、または等しい]

      • [> より大きい]

    3. で、しきい値として使用する属性プロパティを選択します。 AWS IoT Events は、 プロパティの値をこの属性の値と比較します。

    4. アラームの[Severity] (重要度) を入力します。このアラームの重要度を反映させるために、チームが理解できる数字を使用してください。

  9. (オプション) [通知設定 - オプション] セクションで、次の操作を行います。

    1. [アクティブ] を選択します。

      注記

      [非アクティブ] を選択した場合、アラーム通知は送信されません。

    2. [受信者] では、受信者を選択します。

      重要

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

    3. [Protocol] (プロトコル) については、次のオプションから選択してください。

      • E メールとテキスト – アラームは IAM Identity Center ユーザーにSMSメッセージと E メールメッセージを通知します。

      • E メール – アラームは IAM Identity Center ユーザーに E メールメッセージを通知します。

      • テキスト – アラームは IAM Identity Center ユーザーにSMSメッセージを通知します。

    4. [送信者] は、送信者を選択します。

      重要

      Amazon Simple Email Service (Amazon ) で送信者の E メールアドレスを確認する必要がありますSES。詳細については、「Amazon Simple Email Service デベロッパーガイド」の「Amazon での E メールアドレスSESの検証」を参照してください。

  10. [デフォルトのアセット状態] セクションでは、このアセットモデルから作成されたアラームに対するデフォルトの状態を設定できます。

    注記

    このアセットモデルから作成するすべてのアセットに対して、後のステップでこのアラームを有効または無効にすることができます。

  11. 詳細設定セクションでは、アクセス許可、追加の通知設定、アラーム状態アクション、 SiteWise Monitor のアラームモデル、確認フローを設定できます。

    注記

    AWS IoT Events アラームには、次のサービスロールが必要です。

    • がアラーム状態値を に送信することを AWS IoT Events 引き受けるロール AWS IoT SiteWise。

    • Lambda にデータを送信するために が AWS IoT Events 引き受けるロール。このロールは、アラームが通知を送信する場合にのみ必要です。

    [許可] セクションで、以下の操作を行います。

    1. [AWS IoT Events ロール] の場合、既存のロールを使用するか、必要なアクセス許可を持つロールを作成します。このロールには、iotsitewise:BatchPutAssetPropertyValue アクセス許可と、 iotevents.amazonaws.com がロールを引き受けることを許可する信頼関係が必要です。

    2. [AWS IoT Events Lambda ロール] については、既存のロールを使用するか、必要なアクセス許可を持つロールを作成します。このロールには、lambda:InvokeFunctionsso-directory:DescribeUser のアクセス許可と、iotevents.amazonaws.com がそのロールを担うことができる信頼関係が必要です。

  12. (オプション) [追加の通知設定] セクションで、次を実行します。

    1. [受信者属性] には、通知の受信者を指定する値を持つ属性を定義します。IAM Identity Center ユーザーを受信者として選択できます。

      属性を作成するか、アセットモデル上の既存の属性を使用することができます。

      • [新規受信者属性を作成] を選択した場合は、受信者属性名とその属性に対する受信者のデフォルト値 - (オプション) を指定します。

      • 既存の属性を使用する」を選択した場合は、[受信者の属性名] で属性を選択します。アラームは、選択した属性のデフォルト値を使用します。

      このアセットモデルから作成する各アセットで、デフォルト値を上書きすることができます。

    2. [カスタムメッセージ属性] には、デフォルトの状態変化メッセージに加えて、送信するカスタムメッセージを指定する属性を定義します。例えば、このアラームの対処方法をチームが理解するのに役立つメッセージを指定することができます。

      属性を作成するか、アセットモデル上の既存の属性を使用するかを選択することができます。

      • 新しいカスタムメッセージ属性を作成する」を選択した場合は、その属性に対するカスタムメッセージ属性名カスタムメッセージのデフォルト値 - オプションを指定します。

      • 既存の属性を使用する」を選択した場合は、[カスタムメッセージの属性名] でその属性を選択します。アラームは、選択した属性のデフォルト値を使用します。

      このアセットモデルから作成する各アセットで、デフォルト値を上書きすることができます。

    3. [Lambda 関数の管理] では、次のいずれかを実行します。

      • で新しい Lambda 関数 AWS IoT SiteWise を作成するには、 AWSマネージドテンプレート から新しい Lambda を作成する を選択します。

      • 既存の Lambda 関数を使用するには、[既存の Lambda を使用する] を選択して、関数の名前を選択します。

      詳細については、AWS IoT Events デベロッパーガイドの「アラーム通知の管理」を参照してください。

  13. (オプション) [状態アクションの設定] セクションでは、次を実行します。

    1. [アクションを編集] を選択します。

    2. [アラーム状態アクションの追加] でアクションを追加して、[保存] を選択します。

      アクションは最大10個まで追加可能です。

    AWS IoT Events は、アラームがアクティブなときにアクションを実行できます。組み込みアクションを定義して、タイマーを使用したり、変数を設定したり、他の AWS リソースにデータを送信したりできます。詳細については、[AWS IoT Events Developer Guide] (デベロッパーガイド) の[Supported actions] (対応アクション) を参照してください。

  14. (オプション) SiteWise Monitor のアラームモデルを管理する - オプション で、アクティブ または 非アクティブ を選択します。

    SiteWise Monitors でアラームモデルを更新できるようにするには、このオプションを使用します。デフォルトでは、このオプションは有効になっています。

  15. [承認フロー] で、アクティブまたは非アクティブを選択します。フロー承認の詳細については、アラームの状態 を参照してください。

  16. [アラームの追加] を選択します。

    注記

    AWS IoT SiteWise コンソールは、アセットモデルにアラームを追加する複数のAPIリクエストを行います。アラームの追加 を選択すると、コンソールでこれらのAPIリクエストの進行状況を示すダイアログボックスが開きます。各APIリクエストが成功するか、APIリクエストが失敗するまでこのページにとどまります。リクエストに失敗した場合は、ダイアログボックスを閉じて問題を修正し、[アラームの追加] を選択して再試行してください。

AWS IoT Events アラームの定義 (AWS IoT Events コンソール)

AWS IoT Events コンソールを使用して、既存のアセットモデルに AWS IoT Events アラームを定義できます。新しいアセットモデルに AWS IoT Events アラームを定義するには、アセットモデルを作成し、次のステップを実行します。詳細については、「アセットモデルの作成」を参照してください。

重要

各アラームには、そのアラームの比較対象となるしきい値を指定する属性が必要です。アラームを定義する前に、アセットモデルでしきい値属性を定義する必要があります。

例えば、風力タービンが定格最大風速 50mph を超えた場合にアラームを発生させたい場合を考えてみましょう。アラームを定義する前に、デフォルト値が 50 の属性 ([最大風速]) を定義する必要があります。

アセットモデルに AWS IoT Events アラームを定義するには
  1. AWS IoT Events コンソールに移動します。

  2. ナビゲーションペインで、アラームモデルを選択します。

  3. [アラームモデルの作成] を選択します。

  4. アラームの名前を入力します。

  5. (オプション) アラームの説明を入力します。

  6. アラームターゲットセクションで、次の手順を実行します。

    1. ターゲットオプションでは、AWS IoT SiteWise アセットプロパティを選択します。

    2. アラームを追加するアセットモデルを選択します。

  7. [しきい値定義] セクションでは、アラーム検出のタイミングとアラームの重要度を定義します。以下の操作を実行します。

    1. アラームを検出した[プロパティ] を選択します。このプロパティが新しい値を受信するたびに、 は値を AWS IoT SiteWise に送信 AWS IoT Events してアラームの状態を評価します。

    2. プロパティとしきい値の比較に使用する [演算子] を選択します。次のオプションから選択します。

      • [< 未満]

      • [<= より小さい、または等しい]

      • == 等しい

      • != 等しくない

      • [>= より大きい、または等しい]

      • [> より大きい]

    3. で、しきい値として使用する属性プロパティを選択します。 AWS IoT Events は、 プロパティの値をこの属性の値と比較します。

    4. アラームの[Severity] (重要度) を入力します。このアラームの重要度を反映させるために、チームが理解できる数字を使用してください。

  8. (オプション) [通知設定 - オプション] セクションで、次の操作を行います。

    1. [プロトコル] については、次のオプションから選択してください。

      • E メールとテキスト – アラームは IAM Identity Center ユーザーにSMSメッセージと E メールメッセージを通知します。

      • E メール – アラームは IAM Identity Center ユーザーに E メールメッセージを通知します。

      • テキスト – アラームは IAM Identity Center ユーザーにSMSメッセージを通知します。

    2. [送信者] は、送信者を選択します。

      重要

      Amazon Simple Email Service (Amazon ) で送信者の E メールアドレスを確認する必要がありますSES。詳細については、「Amazon Simple Email Service デベロッパーガイド」の「Amazon での E メールアドレスSESの検証」を参照してください。

    3. [受信者属性 - オプション] で属性を選択します。アラームは、選択した属性のデフォルト値を使用します。

    4. [カスタムメッセージ属性 - オプション] で属性を選択します。アラームは、選択した属性のデフォルト値を使用します。

  9. [インスタンス] セクションで、このアラームのデフォルト状態を指定します。後のステップで、このアセットモデルから作成するすべてのアセットに対して、このアラームを有効または無効にすることができます。

  10. 詳細設定では、アクセス許可、追加の通知設定、アラーム状態アクション、 SiteWise Monitor のアラームモデル、確認フローを設定できます。

    注記

    AWS IoT Events アラームには、次のサービスロールが必要です。

    • がアラーム状態値を に送信することを AWS IoT Events 引き受けるロール AWS IoT SiteWise。

    • Lambda にデータを送信するために が AWS IoT Events 引き受けるロール。このロールは、アラームが通知を送信する場合にのみ必要です。

    1. [承認フロー] セクションで有効または無効を選択します。フロー承認の詳細については、アラームの状態 を参照してください。

    2. [許可] セクションで、以下の操作を行います。

      1. [AWS IoT Events ロール] の場合、既存のロールを使用するか、必要なアクセス許可を持つロールを作成します。このロールには、iotsitewise:BatchPutAssetPropertyValue アクセス許可と、 iotevents.amazonaws.com がロールを引き受けることを許可する信頼関係が必要です。

      2. [ Lambda ロール] については、既存のロールを使用するか、必要なアクセス許可を持つロールを作成します。このロールには、lambda:InvokeFunctionsso-directory:DescribeUser のアクセス許可と、iotevents.amazonaws.com がそのロールを担うことができる信頼関係が必要です。

    3. (オプション) [Additional notification settings] (追加の通知設定) ペインで、次を実行します。

      1. [Lambda 関数の管理] では、次のいずれかを実行します。

        • で新しい Lambda 関数 AWS IoT Events を作成するには、新しい Lambda 関数の作成 を選択します。

        • 既存の Lambda 関数を使用するには、[既存の Lambda 関数を使用する] を選択して、関数の名前を選択します。

        詳細については、AWS IoT Events デベロッパーガイドの「アラーム通知の管理」を参照してください。

    4. (オプション) [状態アクションの設定 - オプション] では、次を実行します。

      1. [アラーム状態アクション] でアクションを追加して、[保存] を選択します。

        アクションは最大10個まで追加可能です。

      AWS IoT Events は、アラームがアクティブなときにアクションを実行できます。組み込みアクションを定義して、タイマーを使用したり、変数を設定したり、他の AWS リソースにデータを送信したりできます。詳細については、[AWS IoT Events Developer Guide] (デベロッパーガイド) の[Supported actions] (対応アクション) を参照してください。

  11. [Create] (作成) を選択します。

    注記

    AWS IoT Events コンソールは、アセットモデルにアラームを追加する複数のAPIリクエストを行います。アラームの追加 を選択すると、コンソールでこれらのAPIリクエストの進行状況を示すダイアログボックスが開きます。各APIリクエストが成功するか、APIリクエストが失敗するまでこのページにとどまります。リクエストに失敗した場合は、ダイアログボックスを閉じて問題を修正し、[アラームの追加] を選択して再試行してください。

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

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

    1. IAM Identity Center ID ストアの ID を指定する属性を追加します。IAM Identity Center ListInstancesAPIオペレーションを使用して、ID ストアを一覧表示できます。このオペレーションは、IAMIdentity 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 を使用して、ユーザー名がわかっているユーザーの ID ListUsersAPIを取得できます。置換 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 を指定する属性を追加します。送信者 ID は、Amazon Simple Notification Service (Amazon SNS) が送信するメッセージにメッセージ送信者として表示されます。詳細については、「Amazon Simple Notification Service デベロッパーガイド」の「Amazon でのSMSメッセージングIDsの送信者のリクエストSNS」を参照してください。

      { ... "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
    • 既存のアセットモデルを更新するには、次のコマンドを実行します。置換 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 に置き換え、propertyId プロパティの ID を指定します。

    $sitewise.assetModel.`assetModelId`.`propertyId`.propertyValue.value
  • アセット IDs

    アセットのIDを取得するには、次の表現を使用します。置換 assetModelId をアセットモデルの ID に置き換え、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 属性

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

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

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

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

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

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

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

    このオペレーションは、アセットモデルの詳細を含むレスポンスを返します。アラームが使用する各プロパティの ID を記録しておきます。これらは、次のステップで AWS IoT Events アラームモデルを作成するIDsときに使用します。

  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) を定義する。

      • 置換 assetModelId アセットモデルの ID を指定します。

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

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

      • 置換 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 のサービスの使用」を参照してください。

      • 置換 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関数を使用して、アラーム通知を送信します。詳細については、「アラーム通知の要件」を参照してください。アラーム通知設定では、IAMIdentity 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) を設定します。

        • 置換 identityStoreIdAttributeId Identity Center アイデンティティストアの ID を含む属性の ID を持つ IAM 。

        • 置換 userIdAttributeId Identity Center ユーザーの ID を含む属性の ID を持つ IAM 。

        • 置換 senderIdAttributeId Amazon 送信者 ID を含む属性の ID 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. (オプション) アラームの状態が変更されたときに IAM Identity Center ユーザーに送信するように E メール通知 (emailConfigurations) を設定します。

        • 置換 identityStoreIdAttributeId Identity Center IAM アイデンティティストア ID 属性プロパティの ID を持つ 。

        • 置換 userIdAttributeId IAM Identity Center ユーザー ID 属性プロパティの ID を持つ 。

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

        • 置換 emailSubjectAttributeId E メールの件名属性プロパティの 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. (オプション) 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. 次のコマンドを実行して、既存のアセットモデル定義を取得します。置換 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 ファイルから次の key-value ペアを削除します。

      • assetModelId

      • assetModelArn

      • assetModelCreationDate

      • assetModelLastUpdateDate

      • assetModelStatus

    4. 先に定義したアラーム複合モデルに、アラーム出典プロパティ (AWS/ALARM_SOURCE) を追加します。置換 alarmModelArn アラームソースプロパティ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.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 Identity Center 受信者などのプロパティをカスタマイズできます。詳細については、「アセットにアラームを設定する」を参照してください。