

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

# のAWS IoT Eventsアラームを定義するAWS IoT SiteWise
<a name="define-iot-events-alarms"></a>

**注記**  
サポート終了通知: のサポートAWS終了AWS IoT Events。詳細については、[AWS IoT Events「サポート終了](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-end-of-support.html)」を参照してください。

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

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

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

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

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

**Topics**
+ [AWS IoT Eventsアラームを定義する (AWS IoT SiteWiseコンソール)](#define-iot-events-alarm-console)
+ [AWS IoT Eventsアラームを定義する (AWS IoT Eventsコンソール)](#define-iot-events-alarm-console-ite-console)
+ [AWS IoT Eventsアラームを定義する (AWS CLI)](#define-iot-events-alarm-cli)

## AWS IoT Eventsアラームを定義する (AWS IoT SiteWiseコンソール)
<a name="define-iot-events-alarm-console"></a>

AWS IoT SiteWiseコンソールを使用して、既存のアセットモデルにAWS IoT Eventsアラームを定義できます。新しいアセットモデルでAWS IoT Eventsアラームを定義するには、アセットモデルを作成し、以下の手順を実行します。詳細については、「[でアセットモデルを作成するAWS IoT SiteWise](create-asset-models.md)」を参照してください。

**重要**  
各アラームには、そのアラームの比較対象となるしきい値を指定する属性が必要です。アラームを定義する前に、アセットモデルでしきい値属性を定義する必要があります。  
例えば、風力タービンが定格最大風速 50mph を超えた場合にアラームを発生させたい場合を考えてみましょう。アラームを定義する前に、デフォルト値が `50` の属性 (**[最大風速]**) を定義する必要があります。

**アセットモデルでAWS IoT Eventsアラームを定義するには**

1. [AWS IoT SiteWise コンソール](https://console.aws.amazon.com/iotsitewise/)に移動します。

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

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

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

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

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

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

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

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

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

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

   1. プロパティとしきい値の比較に使用する **[演算子]** を選択します。次のオプションから選択します。
      + **[< 未満]**
      + **[<= より小さい、または等しい]**
      + **== 等しい**
      + **\!= 等しくない**
      + **[>= より大きい、または等しい]**
      + **[> より大きい]**

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

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

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

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

   1. **[受信者]** では、受信者を選択します。
**重要**  <a name="alarm-notifications-sso-requirement"></a>
アラーム通知をAWS IAM アイデンティティセンターユーザーに送信できます。この機能を使用するには、IAM Identity Center を有効にする必要があります。IAM アイデンティティセンターは、一度に 1 つのAWSリージョンでのみ有効にできます。このことは、IAM Identity Center を有効にしたリージョンでのみ、アラーム通知を定義できることを意味します。詳細については、*[AWS IAM アイデンティティセンター User Guide]* (ユーザーガイド) の[[Getting started]](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) (使用開始) を参照してください。

   1. **[Protocol]** (プロトコル) については、次のオプションから選択してください。
      + **E メールとテキスト** – SMS メッセージと E メールで IAM Identity Center ユーザーに通知します。
      + **E メール** – E メールで IAM Identity Center ユーザーに通知します。
      + **テキスト** – SMS メッセージで IAM Identity Center ユーザーに通知します。

   1. **[送信者]** は、送信者を選択します。
**重要**  
Amazon Simple Email Service (Amazon SES) で送信者メールアドレスの確認が必要です。詳細については、「*Amazon Simple Email Service デベロッパーガイド*」の「[E メールアドレスのアイデンティティの確認](https://docs.aws.amazon.com/ses/latest/dg/creating-identities.html#just-verify-email-proc)」を参照してください。

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

1. [**詳細設定**] セクションでは、アクセス許可、追加の通知設定、アラーム状態のアクション、SiteWise Monitor のアラームモデル、および承認フローを設定できます。
**注記**  
AWS IoT Eventsアラームには、次のサービスロールが必要です。  
がアラーム状態値の送信先としてAWS IoT Events引き受けるロールAWS IoT SiteWise。
Lambda にデータを送信するために がAWS IoT Events引き受けるロール。このロールは、アラームが通知を送信する場合にのみ必要です。

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

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

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

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

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

      属性を作成するか、アセットモデル上の既存の属性を使用することができます。
      + [**新規受信者属性を作成**] を選択した場合は、**受信者属性名**とその属性に対する**受信者のデフォルト値 - **(オプション)**** を指定します。
      + 「**既存の属性を使用する**」を選択した場合は、[**受信者の属性名**] で属性を選択します。アラームは、選択した属性のデフォルト値を使用します。

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

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

      属性を作成するか、アセットモデル上の既存の属性を使用するかを選択することができます。
      + 「**新しいカスタムメッセージ属性を作成する**」を選択した場合は、その属性に対する**カスタムメッセージ属性名**と**カスタムメッセージのデフォルト値 - *オプション***を指定します。
      + 「**既存の属性を使用する**」を選択した場合は、[**カスタムメッセージの属性名**] でその属性を選択します。アラームは、選択した属性のデフォルト値を使用します。

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

   1. [**Lambda 関数の管理**] では、次のいずれかを実行します。
      + で新しい Lambda 関数AWS IoT SiteWiseを作成するには、**AWS マネージドテンプレートから新しい Lambda を作成する**を選択します。
      + 既存の Lambda 関数を使用するには、[**既存の Lambda を使用する**] を選択して、関数の名前を選択します。

      詳細については、*AWS IoT Events デベロッパーガイド*の「[アラーム通知の管理](https://docs.aws.amazon.com/iotevents/latest/developerguide/lambda-support.html)」を参照してください。

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

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

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

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

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

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

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

1. [**承認フロー**] で、**アクティブ**または**非アクティブ**を選択します。フロー承認の詳細については、[アラームの状態](industrial-alarms.md#alarm-states) を参照してください。

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

## AWS IoT Eventsアラームを定義する (AWS IoT Eventsコンソール)
<a name="define-iot-events-alarm-console-ite-console"></a>

AWS IoT Eventsコンソールを使用して、既存のアセットモデルにAWS IoT Eventsアラームを定義できます。新しいアセットモデルでAWS IoT Eventsアラームを定義するには、アセットモデルを作成し、以下の手順を実行します。詳細については、「[でアセットモデルを作成するAWS IoT SiteWise](create-asset-models.md)」を参照してください。

**重要**  
各アラームには、そのアラームの比較対象となるしきい値を指定する属性が必要です。アラームを定義する前に、アセットモデルでしきい値属性を定義する必要があります。  
例えば、風力タービンが定格最大風速 50mph を超えた場合にアラームを発生させたい場合を考えてみましょう。アラームを定義する前に、デフォルト値が `50` の属性 (**[最大風速]**) を定義する必要があります。

**アセットモデルでAWS IoT Eventsアラームを定義するには**

1. [AWS IoT Events コンソール](https://console.aws.amazon.com/iotevents/)に移動します。

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

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

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

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

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

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

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

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

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

   1. プロパティとしきい値の比較に使用する **[演算子]** を選択します。次のオプションから選択します。
      + **[< 未満]**
      + **[<= より小さい、または等しい]**
      + **== 等しい**
      + **\!= 等しくない**
      + **[>= より大きい、または等しい]**
      + **[> より大きい]**

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

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

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

   1. **[プロトコル]** については、次のオプションから選択してください。
      + **E メールとテキスト** – SMS メッセージと E メールで IAM Identity Center ユーザーに通知します。
      + **E メール** – E メールで IAM Identity Center ユーザーに通知します。
      + **テキスト** – SMS メッセージで IAM Identity Center ユーザーに通知します。

   1. **[送信者]** は、送信者を選択します。
**重要**  
Amazon Simple Email Service (Amazon SES) で送信者メールアドレスの確認が必要です。詳細については、*[Amazon Simple Email Service Developer Guide]* (Amazon Simple Email Service デベロッパーガイド) の[[Verifying email addresses in Amazon SES]](https://docs.aws.amazon.com/ses/latest/dg/verify-addresses-and-domains.html) (Amazon SES でのメールアドレスの確認) を参照してください。

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

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

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

1. [**詳細設定**] の設定では、アクセス許可、追加の通知設定、アラーム状態のアクション、SiteWise Monitor のアラームモデル、および承認フローを構成できます。
**注記**  
AWS IoT Eventsアラームには、次のサービスロールが必要です。  
がアラーム状態値の送信先としてAWS IoT Events引き受けるロールAWS IoT SiteWise。
Lambda にデータを送信するために がAWS IoT Events引き受けるロール。このロールは、アラームが通知を送信する場合にのみ必要です。

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

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

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

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

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

      1. [**Lambda 関数の管理**] では、次のいずれかを実行します。
        + で新しい Lambda 関数AWS IoT Eventsを作成するには、**「新しい Lambda 関数を作成する**」を選択します。
        + 既存の Lambda 関数を使用するには、[**既存の Lambda 関数を使用する**] を選択して、関数の名前を選択します。

        詳細については、*AWS IoT Events デベロッパーガイド*の「[アラーム通知の管理](https://docs.aws.amazon.com/iotevents/latest/developerguide/lambda-support.html)」を参照してください。

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

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

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

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

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

## AWS IoT Eventsアラームを定義する (AWS CLI)
<a name="define-iot-events-alarm-cli"></a>

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

**Topics**
+ [ステップ 1: アセットモデルにアラームを定義する](#define-iot-events-alarm-definition-cli)
+ [ステップ 2: AWS IoT Eventsアラームモデルを定義する](#define-iot-events-alarm-model-cli)
+ [ステップ 3: AWS IoT SiteWiseと の間のデータフローを有効にするAWS IoT Events](#define-iot-events-alarm-data-flow-cli)

### ステップ 1: アセットモデルにアラームを定義する
<a name="define-iot-events-alarm-definition-cli"></a>

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

**アセットモデルにアラームを定義するには (CLI)。**

1. `asset-model-payload.json` という名前のファイルを作成します。これらの他のセクションのステップに従って、アセットモデルの詳細をファイルに追加しますが、アセットモデルの作成または更新のリクエストは送信しないでください。このセクションでは、`asset-model-payload.json` ファイルのアセットモデル詳細にアラーム定義を追加します。
   + アセットモデルの作成方法については、[アセットモデルを作成する (AWS CLI)](create-asset-models.md#create-asset-model-cli) を参照してください。
   + 既存のアセットモデルを更新する方法については、[アセットモデル、コンポーネントモデル、またはインターフェイスを更新する (AWS CLI)](update-asset-models.md#update-asset-model-cli) を参照してください。
**注記**  
アセットモデルには、アラームでモニタリングするアセットプロパティを含め、少なくとも1つのアセットプロパティが定義されている必要があります。

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

1. アセットモデルにアラームしきい値属性を追加する。このしきい値に使用するデフォルト値を指定します。このモデルに基づいて、各アセットでこのデフォルト値を上書きすることができます。
**注記**  
アラームしきい値属性は、`INTEGER` または `DOUBLE` でなければならない。

   ```
   {
     {{...}}
     "assetModelProperties": [
       {{...}}
       {
         "name": "Temperature Max Threshold",
         "dataType": "DOUBLE",
         "type": {
           "attribute": {
             "defaultValue": "105.0"
           }
         }
       }
     ]
   }
   ```

1. (オプション) アセットモデルにアラーム通知属性を追加します。これらの属性は、アラームの状態が変更されたときに AWS IoT Eventsが通知を送信するために使用する IAM アイデンティティセンターの受信者およびその他の入力を指定します。このモデルに基づいて、各アセットでこれらのデフォルトをオーバーライドすることができます。
**重要**  <a name="alarm-notifications-sso-requirement"></a>
アラーム通知をAWS IAM アイデンティティセンターユーザーに送信できます。この機能を使用するには、IAM Identity Center を有効にする必要があります。IAM アイデンティティセンターは、一度に 1 つのAWSリージョンでのみ有効にできます。このことは、IAM Identity Center を有効にしたリージョンでのみ、アラーム通知を定義できることを意味します。詳細については、*[AWS IAM アイデンティティセンター User Guide]* (ユーザーガイド) の[[Getting started]](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) (使用開始) を参照してください。

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

   1. IAM Identity Center ID ストアの ID を指定する属性を追加します。IAM Identity Center の [ListInstances](https://docs.aws.amazon.com/singlesignon/latest/APIReference/API_ListInstances.html) API オペレーションを使用して、ID ストアを一覧表示することができます。このオペレーションは、IAM Identity Center を有効にしたリージョンでのみ機能します。

      ```
      aws sso-admin list-instances
      ```

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

      ```
      {
        {{...}}
        "assetModelProperties": [
          {{...}}
          {
            "name": "{{identityStoreId}}",
            "dataType": "STRING",
            "type": {
              "attribute": {
                "defaultValue": "{{d-123EXAMPLE}}"
              }
            }
          }
        ]
      }
      ```

   1. 通知の送信先の IAM Identity Center ユーザーの ID を指定する属性を追加します。デフォルトの通知受信者を定義するには、デフォルト値として IAM Identity Center ユーザー ID を追加します。次のいずれかを行って、IAM Identity Center ユーザー ID を取得します。

      1. IAM Identity Center の [ListUsers](https://docs.aws.amazon.com/singlesignon/latest/IdentityStoreAPIReference/API_ListUsers.html) API を使用すると、ユーザー名がわかっているユーザーの ID を取得することができます。{{d-123EXAMPLE}} は ID ストアの ID に、{{[Name]}} (名前) はユーザーのユーザー名に置き換えてください。

         ```
         aws identitystore list-users \
           --identity-store-id {{d-123EXAMPLE}} \
           --filters AttributePath=UserName,AttributeValue={{Name}}
         ```

      1. [IAM Identity Center コンソール](https://console.aws.amazon.com/singlesignon) を使用してユーザーをブラウズして、ユーザー ID を探することができます。

      そして、ユーザー ID (例えば、`123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE`) を属性のデフォルト値として指定するか、デフォルト値なしで属性を定義します。

      ```
      {
        {{...}}
        "assetModelProperties": [
          {{...}}
          {
            "name": "{{userId}}",
            "dataType": "STRING",
            "type": {
              "attribute": {
                "defaultValue": "{{123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE}}"
              }
            }
          }
        ]
      }
      ```

   1. (オプション) SMS (テキスト) メッセージ通知のデフォルトの送信者 ID を指定する属性を追加します。Amazon Simple Notification Service (Amazon SNS) が送信するメッセージの送信者として、送信者 ID が表示されます。詳細については、「 *AWS End User Messaging SMSユーザーガイド*[」の「 で送信者 ID をリクエストAWS End User Messaging SMS](https://docs.aws.amazon.com/sms-voice/latest/userguide/sender-id-request.html)する」を参照してください。

      ```
      {
        {{...}}
        "assetModelProperties": [
          {{...}}
          {
            "name": "{{senderId}}",
            "dataType": "STRING",
            "type": {
              "attribute": {
                "defaultValue": "{{MyFactory}}"
              }
            }
          }
        ]
      }
      ```

   1. (オプション) E メール通知で*[from]* (送信元) アドレスとして使用するデフォルトのE メールアドレスを指定する属性を追加します。

      ```
      {
        {{...}}
        "assetModelProperties": [
          {{...}}
          {
            "name": "{{fromAddress}}",
            "dataType": "STRING",
            "type": {
              "attribute": {
                "defaultValue": "{{my.factory@example.com}}"
              }
            }
          }
        ]
      }
      ```

   1. (オプション) E メール通知で使用するデフォルトの件名を指定する属性を追加します。

      ```
      {
        {{...}}
        "assetModelProperties": [
          {{...}}
          {
            "name": "{{emailSubject}}",
            "dataType": "STRING",
            "type": {
              "attribute": {
                "defaultValue": "{{[ALERT] High boiler temperature}}"
              }
            }
          }
        ]
      }
      ```

   1. (オプション) 通知に含める追加メッセージを指定する属性を追加します。デフォルトでは、通知メッセージはアラームに関する情報を含んでいます。また、ユーザーにより多くの情報を与える追加メッセージを含めることもできます。

      ```
      {
        {{...}}
        "assetModelProperties": [
          {{...}}
          {
            "name": "{{additionalMessage}}",
            "dataType": "STRING",
            "type": {
              "attribute": {
                "defaultValue": "{{Turn off the power before you check the alarm.}}"
              }
            }
          }
        ]
      }
      ```

1. アセットモデルを作成、または既存のアセットモデルを更新します。次のいずれかを行います。
   + アセットモデルを作成するには、次のコマンドを実行します。

     ```
     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` に注意してください。

#### 例:ボイラーアセットモデル
<a name="alarm-asset-model-example"></a>

次のアセットモデルは、温度データを報告するボイラーを表しています。このアセットモデルでは、ボイラーのオーバーヒートを検出するアラームを定義しています。

```
{
  "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アラームモデルを定義する
<a name="define-iot-events-alarm-model-cli"></a>

でアラームモデルを作成します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
  ```
+ **[Asset IDs]** (アセット ID) 

  アセットの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 ストア ID 属性
   + (オプション) IAM Identity Center ユーザー ID 属性
   + (オプション) SMS 送信者 ID 属性
   + (オプション) E メールの*[from]* (送信元) アドレス属性
   + (オプション) E メールの件名属性
   + (オプション) 追加のメッセージ属性

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

   ```
   aws iotsitewise describe-asset-model --asset-model-id {{asset-model-id}}
   ```

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

1. でアラームモデルを作成しますAWS IoT Events。以下の操作を実行します。

   1. `alarm-model-payload.json` という名前のファイルを作成します。

   1. 次の JSON オブジェクトをファイルにコピーしてください。

   1. アラームの名前 (`alarmModelName`) 、説明 (`alarmModelDescription`) 、重要度 (`severity`) を入力します。重要度には、お客様の会社の重要度レベルを反映した整数を指定します。
**重要**  
アラームモデルは、先にアセットモデルで定義したアラーム複合モデルと同じ名前である必要があります。  
アラームモデル名には、英数字のみ使用できます。

      ```
      {
        "alarmModelName": "{{BoilerTemperatureHighAlarm}}",
        "alarmModelDescription": "{{Detects when the boiler temperature is high.}}",
        "severity": {{3}}
      }
      ```

   1. アラームに比較ルール (`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"
          }
        }
      }
      ```

   1. アラームの状態が変化した時に、AWS IoT SiteWise にアラームの状態を送信するアクション (`alarmEventActions`) を追加する。
**注記**  
アドバンストな設定として、アラームの状態が変化したときに実行する追加アクションを定義することができます。例えば、AWS Lambda 関数を呼び出したり、MQTT トピックに発行したりします。詳細については、[「 デベロッパーガイド」の「他の AWSのサービスの使用](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-other-aws-services.html)」を参照してください。 *AWS IoT Events*
      + {{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}}'"
              }
            }
          ]
        }
      }
      ```

   1. (オプション) アラーム通知設定を行います。アラーム通知アクションは、アカウント内のLambda関数を使用して、アラーム通知を送信します。詳細については、「[でのアラーム通知の要件AWS IoT SiteWise](iot-events-alarm-notification-requirements.md)」を参照してください。アラーム通知の設定では、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}}"
                   }
                 }
               }
             ]
           }
         }
         ```

      1. (オプション) アラームの状態が変化したときに IAM Identity Center ユーザーに送信する SMS 通知 (`smsConfigurations`) を設定し ます。
         + {{identityStoreIdAttributeId}} を、IAM Identity Center ID ストアの ID を含む属性の ID に置き換えます。
         + {{userIdAttributeId}} を、IAM Identity Center ユーザーの ID を含む属性の ID に置き換えます。
         + {{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"
                   }
                 ]
               }
             ]
           }
         }
         ```

      1. (オプション) アラームの状態が変化したときに IAM Identity Center ユーザーに送信する E メール通知 (`emailConfigurations`) を設定します。
         + {{identityStoreIdAttributeId}} を、IAM Identity Center ID ストア 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"
                     }
                   }
                 ]
               }
             ]
           }
         }
         ```

   1. (オプション) `alarm-model-payload.json`のペイロードにアラーム機能 (`alarmCapabilities`) を追加する。このオブジェクトでは、アセットモデルに基づいて、フロー承認が有効かどうか、およびアセットに対するデフォルトの有効状態を指定することができます。フロー承認の詳細については、[アラームの状態](industrial-alarms.md#alarm-states) を参照してください。

      ```
      {
        "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}}
          }
        }
      }
      ```

   1. がデータの送信先として引き受け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]](https://docs.aws.amazon.com/iotevents/latest/developerguide/security-iam.html) (アラームサービスロール) を参照してください。
      + を、これらのアクションを実行するために が引き受け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}}"
      }
      ```

   1. 次のコマンドを実行して、 のペイロードからAWS IoT Eventsアラームモデルを作成します`alarm-model-payload.json`。

      ```
      aws iotevents create-alarm-model --cli-input-json file://alarm-model-payload.json
      ```

   1. この操作では、アラームモデルの ARN、`alarmModelArn` を含む応答が返されます。この ARN をコピーして、次のステップでアセットモデルのアラーム定義に設定します。

### ステップ 3: AWS IoT SiteWiseと の間のデータフローを有効にするAWS IoT Events
<a name="define-iot-events-alarm-data-flow-cli"></a>

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}}
     ```

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

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

  1. `update-asset-model-payload.json` ファイルから次の key-value ペアを削除します。
     + `assetModelId`
     + `assetModelArn`
     + `assetModelCreationDate`
     + `assetModelLastUpdateDate`
     + `assetModelStatus`

  1. 先に定義したアラーム複合モデルに、アラーム出典プロパティ (`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}}"
                 }
               }
             }
           ]
         }
       ]
     }
     ```

  1. 次のコマンドを実行し、`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 受信者などのプロパティをカスタマイズすることができます。詳細については、「[でアセットにアラームを設定するAWS IoT SiteWise](configure-alarms.md)」を参照してください。