

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 定義 的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，以評估 alarm.AWS IoT Eventsalarm 定義的狀態，取決於您在 中定義的警示模型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)。

**重要**  
每個警示都需要一個屬性，指定要與警示比較的閾值。您必須先在資產模型上定義閾值屬性，才能定義警示。  
假設您想要定義警示，以偵測風力發電機何時超過最大風速等級 50 mph 的範例。定義警示之前，您必須定義預設值為 的屬性 (**最大風速**)`50`。

**在資產模型上定義AWS IoT Events警示**

1. 導覽至 [AWS IoT SiteWise主控台](https://console.aws.amazon.com/iotsitewise/)。

1. 在導覽窗格中，選擇 **Models (模型)**。

1. 選擇要為其定義警示的資產模型。

1. 選擇**警示**索引標籤。

1. 選擇**新增警示**。

1. 在**警示類型選項**區段中，選擇**AWS IoT Events警示**。

1. 在**警示詳細資訊**區段中，執行下列動作：

   1. 輸入警示的名稱。

   1. （選用） 輸入警示的描述。

1. 在**閾值定義**區段中，您可以定義警示何時偵測到警示以及警示的嚴重性。請執行下列操作：

   1. 選取警示偵測到的**屬性**。每次此屬性收到新值時， 都會將值傳送至 AWS IoT SiteWiseAWS IoT Events，以評估警示的狀態。

   1. 選取要用來比較 屬性與閾值的**運算子**。您可以從以下選項中選擇：
      + **< 小於**
      + **<= 小於或等於**
      + **== 等於**
      + **！= 不等於**
      + **>= 大於或等於**
      + **> 大於**

   1. 針對 **值**，選取要用作閾值的屬性屬性。 會將 屬性的值與此屬性的值AWS IoT Events進行比較。

   1. 輸入警示的**嚴重性**。使用您的團隊了解的數字來反映此警示的嚴重性。

1. （選用） 在**通知設定 - *選用***區段中，執行下列動作：

   1. 選擇**作用中**。
**注意**  
如果您選擇**非作用中**，您和您的團隊將不會收到任何警示通知。

   1. 針對**收件人**，選擇收件人。
**重要**  <a name="alarm-notifications-sso-requirement"></a>
您可以傳送警示通知給AWS IAM Identity Center使用者。若要使用此功能，您必須啟用 IAM Identity Center。您AWS一次只能在一個區域中啟用 IAM Identity Center。這表示您只能在啟用 IAM Identity Center 的區域中定義警示通知。如需詳細資訊，請參閱*《AWS IAM Identity Center 使用者指南》*中的[「入門」](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html)。

   1. 針對**通訊協定**，從下列選項中選擇：
      + **電子郵件和文字** – 警示會以簡訊和電子郵件訊息通知 IAM Identity Center 使用者。
      + **電子郵件** – 警示會以電子郵件訊息通知 IAM Identity Center 使用者。
      + **文字** – 警示會以簡訊通知 IAM Identity Center 使用者。

   1. 針對**寄件者**，選擇寄件者。
**重要**  
您必須在 Amazon Simple Email Service (Amazon SES中驗證寄件者電子郵件地址。如需詳細資訊，請參閱《*Amazon Simple Email Service 開發人員指南*》中的[驗證電子郵件地址身分](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。
AWS IoT Events擔任將資料傳送至 Lambda 的角色。只有在警示傳送通知時，您才需要此角色。

   在**許可**區段中，執行下列動作：

   1. 對於**AWS IoT Events角色**，請使用現有角色或建立具有所需許可的角色。此角色需要`iotsitewise:BatchPutAssetPropertyValue`許可和允許 iotevents.amazonaws.com 擔任該角色的信任關係。

   1. 對於 **AWS IoT EventsLambda 角色**，請使用現有角色或建立具有所需許可的角色。此角色需要 `lambda:InvokeFunction`和 `sso-directory:DescribeUser`許可，以及允許 `iotevents.amazonaws.com`擔任角色的信任關係。

1. （選用） 在**其他通知設定**區段中，執行下列動作：

   1. 對於**收件人屬性**，您可以定義屬性，其值會指定通知的收件人。您可以選擇 IAM Identity Center 使用者做為收件人。

      您可以在資產模型上建立屬性或使用現有的屬性。
      + 如果您選擇**建立新的收件人屬性**，請指定**收件人屬性名稱**和**收件人預設值 - 屬性為**選用****。
      + 如果您選擇**使用現有的收件人屬性**，請在**收件人屬性名稱中選擇屬性**。警示會使用您選擇的屬性的預設值。

      您可以覆寫從此資產模型建立的每個資產的預設值。

   1. 對於**自訂訊息屬性**，您可以定義 屬性，其值指定除了預設狀態變更訊息之外要傳送的自訂訊息。例如，您可以指定訊息，以協助您的團隊了解如何處理此警示。

      您可以選擇在資產模型上建立屬性或使用現有的屬性。
      + 如果您選擇**建立新的自訂訊息屬性**，請指定**自訂訊息屬性名稱**和**自訂訊息預設值 - 屬性為*選用***。
      + 如果您選擇**使用現有的自訂訊息屬性**，請在**自訂訊息屬性名稱中選擇屬性**。警示會使用您選擇的屬性的預設值。

      您可以覆寫從此資產模型建立的每個資產的預設值。

   1. 針對**管理您的 Lambda 函數**，請執行下列其中一項操作：
      + 若要AWS IoT SiteWise建立新的 Lambda 函數，請選擇**從 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開發人員指南*》中的[支援的動作](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-supported-actions.html)。

1. （選用） 在 ** SiteWise Monitor 中的管理警示模型下 - *選用***，選擇**作用中**或非**作用中**。

   使用此選項可讓您在 SiteWise Monitors 中更新警示模型。此選項預設為啟用。

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)。

**重要**  
每個警示都需要一個屬性，指定要與警示比較的閾值。您必須先在資產模型上定義閾值屬性，才能定義警示。  
假設您想要定義警示，以偵測風力發電機何時超過最大風速等級 50 mph 的範例。定義警示之前，您必須定義預設值為 的屬性 (**最大風速**)`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 SiteWiseAWS IoT Events，以評估警示的狀態。

   1. 選取要用來比較 屬性與閾值的**運算子**。您可以從以下選項中選擇：
      + **< 小於**
      + **<= 小於或等於**
      + **== 等於**
      + **！= 不等於**
      + **>= 大於或等於**
      + **> 大於**

   1. 針對**值**，選取要用作閾值的屬性屬性。 會將屬性的值與此屬性的值AWS IoT Events進行比較。

   1. 輸入警示的**嚴重性**。使用您的團隊了解的數字來反映此警示的嚴重性。

1. （選用） 在**通知設定 - *選用***區段中，執行下列動作：

   1. 針對**通訊協定**，從下列選項中選擇：
      + **電子郵件和文字** – 警示會以簡訊和電子郵件訊息通知 IAM Identity Center 使用者。
      + **電子郵件** – 警示會以電子郵件訊息通知 IAM Identity Center 使用者。
      + **文字** – 警示會以簡訊通知 IAM Identity Center 使用者。

   1. 針對**寄件者**，選擇寄件者。
**重要**  
您必須在 Amazon Simple Email Service (Amazon SES中驗證寄件者電子郵件地址。如需詳細資訊，請參閱《[Amazon Simple Email Service 開發人員指南》中的在 Amazon SES 中驗證電子郵件地址](https://docs.aws.amazon.com/ses/latest/dg/verify-addresses-and-domains.html)。 **

   1. 在收件人屬性中選擇**屬性 - *選用***。警示會使用您選擇的屬性的預設值。

   1. 選擇**自訂訊息屬性中的屬性 - *選用***。警示會使用您選擇的屬性的預設值。

1. 在**執行個體**區段中，指定此警示**的預設狀態**。您可以為稍後步驟中從此資產模型建立的所有資產啟用或停用此警示。

1. 在**進階設定**中，您可以設定許可、其他通知設定、警示狀態動作、SiteWise Monitor 中的警示模型，以及確認流程。
**注意**  
AWS IoT Events警示需要下列服務角色：  
AWS IoT Events擔任將警示狀態值傳送至其中的角色AWS IoT SiteWise。
AWS IoT Events擔任將資料傳送至 Lambda 的角色。只有在警示傳送通知時，您才需要此角色。

   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. （選用） 在**其他通知設定**窗格中，執行下列動作：

      1. 針對**管理您的 Lambda 函數**，請執行下列其中一項操作：
        + 若要AWS IoT Events建立新的 Lambda 函數，請選擇**建立新的 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開發人員指南*》中的[支援的動作](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. 將警示複合模型 (`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. （選用） 將警示通知屬性新增至資產模型。這些屬性會指定 IAM Identity Center 收件人，以及警示變更狀態時AWS IoT Events用來傳送通知的其他輸入。您可以根據此模型覆寫每個資產上的這些預設值。
**重要**  <a name="alarm-notifications-sso-requirement"></a>
您可以傳送警示通知給AWS IAM Identity Center使用者。若要使用此功能，您必須啟用 IAM Identity Center。您AWS一次只能在一個區域中啟用 IAM Identity Center。這表示您只能在啟用 IAM Identity Center 的區域中定義警示通知。如需詳細資訊，請參閱*《AWS IAM Identity Center 使用者指南》*中的[「入門」](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html)。

   請執行下列操作：

   1. 新增指定 IAM Identity Center 身分存放區的 ID 的屬性。您可以使用 IAM Identity Center [ListInstances](https://docs.aws.amazon.com/singlesignon/latest/APIReference/API_ListInstances.html) API 操作來列出您的身分存放區。此操作僅適用於您啟用 IAM Identity Center 的 區域。

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

      然後，指定身分存放區 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，並將 {{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. （選用） 新增 屬性，指定簡訊 （文字） 訊息通知的預設寄件者 ID。寄件者 ID 會在 Amazon Simple Notification Service (Amazon SNS) 傳送的訊息上顯示為訊息寄件者。如需詳細資訊，請參閱*AWS End User Messaging SMS《 使用者指南*》中的在 [中請求寄件者 IDAWS 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. （選用） 新增 屬性，指定要用作電子郵件通知中*來源*地址的預設電子郵件地址。

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

   1. （選用） 新增 屬性，指定要在電子郵件通知中使用的預設主旨。

      ```
      {
        {{...}}
        "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`中記下 。

#### 範例：Boiler 資產模型
<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
  ```
+ **資產 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 屬性
   + （選用） *來自*地址屬性的電子郵件
   + （選用） 電子郵件主旨屬性
   + （選用） 其他訊息屬性

   執行下列命令，在資產模型上擷取這些屬性IDs。將 {{asset-model-id}} 取代為上一個步驟的資產模型 ID。

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

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

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`。
      + 以資產模型的 ID 取代 {{assetModelId}}。
      + 將 {{alarmPropertyId}} 取代為警示監控的 屬性 ID。
      + 將 {{thresholdAttributeId}} 取代為 threshold 屬性的 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. 新增動作 (`alarmEventActions`)，以在警示變更狀態AWS IoT SiteWise時將警示狀態傳送至 。
**注意**  
對於進階組態，您可以定義警示變更狀態時要執行的其他動作。例如，您可以呼叫 AWS Lambda函數或發佈至 MQTT 主題。如需詳細資訊，請參閱《 *AWS IoT Events開發人員指南*》中的[使用其他 AWS服務](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-other-aws-services.html)。
      + 以資產模型的 ID 取代 {{assetModelId}}。
      + 將 {{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 使用者的簡訊和電子郵件通知。請執行下列操作：

      1. 將警示通知組態 (`alarmNotification`) 新增至 中的承載`alarm-model-payload.json`。
         + 將 {{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. （選用） 設定 SMS 通知 (`smsConfigurations`)，以在警示變更狀態時傳送給 IAM Identity Center 使用者。
         + 將 {{identityStoreIdAttributeId}} 取代為包含 IAM Identity Center 身分存放區 ID 的屬性 ID。
         + 以包含 IAM Identity Center 使用者 ID 的屬性 ID 取代 {{userIdAttributeId}}。
         + 將 {{senderIdAttributeId}} 取代為包含 Amazon SNS 寄件者 ID 的屬性 ID，或從`senderId`承載中移除。
         + 以包含額外訊息的屬性 ID 取代 {{additionalMessageAttributeId}}，或從`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. （選用） 設定電子郵件通知 (`emailConfigurations`)，以在警示變更狀態時傳送給 IAM Identity Center 使用者。
         + 將 {{identityStoreIdAttributeId}} 取代為 IAM Identity Center 身分存放區 ID 屬性的 ID。
         + 將 {{userIdAttributeId}} 取代為 IAM Identity Center 使用者 ID 屬性的 ID。
         + 以「寄件人」地址屬性屬性的 ID 取代 {{fromAddressAttributeId}}，或從`from`承載中移除。
         + 將 {{emailSubjectAttributeId}} 取代為電子郵件主體屬性屬性的 ID，或從`subject`承載中移除。
         + 以其他訊息屬性屬性的 ID 取代 {{additionalMessageAttributeId}}，或從`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. （選用） 將警示功能 (`alarmCapabilities`) 新增至 中的承載`alarm-model-payload.json`。在此物件中，您可以根據資產模型指定確認流程是否已啟用，以及資產的預設啟用狀態。如需確認流程的詳細資訊，請參閱 [警示狀態](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。此角色需要允許 `iotevents.amazonaws.com`擔任角色的`iotsitewise:BatchPutAssetPropertyValue`許可和信任關係。若要傳送通知，此角色也需要 `lambda:InvokeFunction`和 `sso-directory:DescribeUser`許可。如需詳細資訊，請參閱《 *AWS IoT Events開發人員指南*》中的[警示服務角色](https://docs.aws.amazon.com/iotevents/latest/developerguide/security-iam.html)。
      + 將 取代`roleArn`為AWS IoT Events可執行這些動作之角色的 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}}"
                }
              },
              "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` 檔案移除下列鍵/值對：
     + `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)。