

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 定义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)。

**重要**  
每个警报都需要一个属性，来指定要与警报进行比较的阈值。必须先在资产模型上定义阈值属性，然后才能定义警报。  
举例说明，如果您想定义一个警报，用于检测风力涡轮机何时超过其最大额定风速 50 英里/小时。在定义警报之前，您必须定义一个默认值为 `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. 对于 “**值**”，选择要用作阈值的属性属性。 AWS IoT Events将属性的值与该属性的值进行比较。

   1. 输入警报的**严重程度**。使用您的团队能理解的数字来反映此警报的严重程度。

1. （可选）在**通知设置-*可选***部分中，执行以下操作：

   1. 选择**活动**。
**注意**  
如果您选择**非活动**，则您和您的团队将不会收到任何警报通知。

   1. 在 **接收人**中，选择接收人。
**重要**  <a name="alarm-notifications-sso-requirement"></a>
您可以向AWS IAM Identity Center用户发送警报通知。要使用此功能，您必须启用 IAM Identity Center。一次只能在一个AWS区域启用 IAM 身份中心。这意味着您只能在启用 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 监控器中的警报模式以及确认流。
**注意**  
AWS IoT Events警报需要以下服务角色：  
AWS IoT Events假定向发送警报状态值的角色AWS IoT SiteWise。
一个AWS IoT Events假定向 Lambda 发送数据的角色。只有当您的警报发送通知时，才需要此角色。

   在**附加权限策略**页面上，执行以下操作：

   1. 对于 **AWS IoT Events 角色**，请使用现有角色或创建具有所需权限的角色。此角色需要允许 iotevents.amazonaws.com 担任角色的 `iotsitewise:BatchPutAssetPropertyValue` 许可和信任关系。

   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 监控器-可*选*” 中的 “管理警报模式**” 下，选择 “**活动**” 或 “**非活动**”。

   使用此选项可以在 M SiteWise onitorss 中更新警报模型。默认情况下，此选项处于启用状态。

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 英里/小时。在定义警报之前，您必须定义一个默认值为 `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. 对于 “**值**”，选择要用作阈值的属性属性。 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 监控器中的警报模式以及确认流。
**注意**  
AWS IoT Events警报需要以下服务角色：  
AWS IoT Events假定向发送警报状态值的角色AWS IoT SiteWise。
一个AWS IoT Events假定向 Lambda 发送数据的角色。只有当您的警报发送通知时，才需要此角色。

   1. 在**确认流**部分，选择**已启用**或**已禁用**。有关确认流的更多信息，请参阅 [警报状态](industrial-alarms.md#alarm-states)。

   1. 在**附加权限策略**页面上，执行以下操作：

      1. 对于 **AWS IoT Events 角色**，请使用现有角色或创建具有所需权限的角色。此角色需要允许 iotevents.amazonaws.com 担任角色的 `iotsitewise:BatchPutAssetPropertyValue` 许可和信任关系。

      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 SiteWiseandAWS 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 身份中心。这意味着您只能在启用 IAM Identity Center 的区域中定义警报通知。有关更多信息，请参阅《AWS IAM Identity Center 用户指南》中的[入门](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html)。**

   执行以下操作：

   1. 添加一个属性来指定您的 IAM Identity Center 身份存储的 ID。您可以使用 IAM 身份中心 [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 Notiﬁcation Service (Amazon SNS) 发送的消息上显示为消息发送人。有关更多信息，请参阅《*AWS End User Messaging SMS用户指南》AWS End User Messaging SMS*[中的申请发件人 ID](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`。

#### 示例：锅炉资产模型
<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
  ```
+ **资产 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 属性
   + （可选）IAM Identity Center 用户 ID 属性
   + （可选）短信发送人 ID 属性
   + （可选）电子邮件*发送人*地址属性
   + （可选）电子邮件主题属性
   + （可选）附加消息属性

   运行以下命令以检索资产模型上这些属性的 ID。{{asset-model-id}}替换为上一步中的资产模型的 ID。

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

   此操作将返回包含资产模型详细信息的响应。记下警报使用的每个属性的 ID。在下一步中创建 AWS IoT Events 警报模型时，您将使用这些 ID。

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. 添加一个操作 (`alarmEventActions`)，当警报状态发生更改时将警报状态发送给 AWS IoT SiteWise。
**注意**  
对于高级配置，您可以定义警报状态更改时要执行的其他操作。例如，您可以调用 AWS Lambda 函数或发布到 MQTT 主题。有关更多信息，请参阅《*AWS IoT Events开发人员指南》*中的[使用其他AWS服务](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-other-aws-services.html)。
      + {{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 用户。执行以下操作：

      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. （可选）将短信通知 (`smsConfigurations`) 配置为在警报状态发生变化时发送给 IAM Identity Center 用户。
         + {{identityStoreIdAttributeId}}替换为包含 IAM Identity Center 身份存储 ID 的属性的 ID。
         + {{userIdAttributeId}}替换为包含 IAM 身份中心用户 ID 的属性的 ID。
         + {{senderIdAttributeId}}替换为包含 Amazon SNS 发件人编号的属性 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. （可选）将电子邮件通知 (`emailConfigurations`) 配置为在警报状态发生变化时发送给 IAM Identity Center 用户。
         + {{identityStoreIdAttributeId}}替换为 IAM 身份中心身份存储 ID 属性属性的 ID。
         + {{userIdAttributeId}}替换为 IAM 身份中心用户 ID 属性的 ID。
         + {{fromAddressAttributeId}}替换为 “发件人” 地址属性的 ID，或者`from`从有效负载中移除。
         + {{emailSubjectAttributeId}}替换为电子邮件主题属性的 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. （可选）将警报功能 (`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。此角色需要 `iotsitewise:BatchPutAssetPropertyValue` 权限以及允许 `iotevents.amazonaws.com` 担任角色的信任关系。要发送通知，此角色还需要 `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 SiteWiseandAWS IoT Events
<a name="define-iot-events-alarm-data-flow-cli"></a>

在AWS IoT SiteWise和中创建所需资源后AWS IoT Events，您可以启用资源之间的数据流以启用警报。在本节中，您将更新资产模型中的警报定义以使用您在上一步中创建的警报模型。

**启用之间的数据流AWS IoT SiteWiseandAWS 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)。