

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

# 创建自定义复合模型（组件）
<a name="create-custom-composite-models"></a>

自定义复合模型或组件（如果您使用的是控制台）为您的资产模型和组件模型提供了另一种组织方式。您可以使用它们，通过对属性进行分组或引用其他模型来构建模型。有关使用自定义复合模型的更多信息，请参阅[自定义复合模型（组件）](custom-composite-models.md)。

您可以在现有资产模型或组件模型中创建自定义复合模型。自定义复合模型分为两类。要对模型中的相关属性进行分组，可以创建**内联**自定义复合模型。要在资产模型或组件模型中引用组件模型，可以创建**component-model-based**自定义复合模型。

以下各节介绍如何使用 AWS IoT SiteWise API 创建自定义复合模型。

**Topics**
+ [

## 创建内联组件（控制台）
](#create-inline-component-console)
+ [

## 创建内联自定义复合模型（AWS CLI）
](#create-inline-composite-models-cli)
+ [

## 创建组 component-model-based件（控制台）
](#create-component-console)
+ [

## 创建 component-model-based自定义复合模型 (AWS CLI)
](#create-component-based-composite-model-cli)

## 创建内联组件（控制台）
<a name="create-inline-component-console"></a>

您可以使用 AWS IoT SiteWise 控制台创建定义其自身属性的内联组件。

**注意**  
由于这是一个*内联*组件，因此，这些属性仅适用于当前的资产模型，不会共享到其他任何位置。  
如果您需要生成一个可重复使用的模型（例如，在多个资产模型之间共享，或者在一个资产模型中包含多个实例），则应改为基于组件模型创建一个组件。有关详细信息，请参阅下一节。

**要创建组件（控制台），请执行以下步骤：**

1. <a name="sitewise-open-console"></a>导航至 [AWS IoT SiteWise 控制台](https://console.aws.amazon.com/iotsitewise/)。

1. <a name="sitewise-choose-models"></a>在导航窗格中，选择**模型**。

1. 选择要为其添加组件的资产模型。

1. 在**属性**选项卡上，选择**组件**。

1. 选择**创建组件**。

1. 在**创建组件**页面上，执行以下操作：

   1. 为组件输入一个**名称**，例如 **ServoMotor** 或 **ServoMotor Model**。此名称对于您账户在此区域的所有组件都必须是唯一的。

   1. （可选）为模型添加 **属性定义**。属性表示很少更改的信息。有关更多信息，请参阅 [定义静态数据（属性）](attributes.md)。

   1. （可选）为模型添加 **测量值定义**。测量值代表来自您的设备的数据流。有关更多信息，请参阅 [定义来自设备的数据流（测量值）](measurements.md)。

   1. （可选）为模型添加 **转换定义**。转换是将数据从一种表单映射到另一种表单的公式。有关更多信息，请参阅 [转换数据（转换）](transforms.md)。

   1. （可选）为模型添加 **指标定义**。指标是按时间间隔汇总数据的公式。指标可以从关联资产的指标中输入数据，这样您可以计算统计信息，从而提供对整个操作或部分操作的见解。有关更多信息，请参阅 [聚合来自属性和其他资产（指标）的数据](metrics.md)。

   1. 选择**创建组件**。

## 创建内联自定义复合模型（AWS CLI）
<a name="create-inline-composite-models-cli"></a>

您可以使用 AWS Command Line Interface (AWS CLI) 来创建定义其自身属性的内联自定义复合模型。

使用[CreateAssetModelCompositeModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModelCompositeModel.html)操作创建具有属性的内联模型。此操作需要具有以下结构的负载。

**注意**  
由于这是一个*内联*复合组件，因此，这些属性仅适用于当前的资产模型，不会共享到其他任何位置。之所以称其为“内联”，是因为它没有为 `composedAssetModelId` 字段提供值。  
如果您需要生成可重复使用的模型（例如，在多个资产模型之间共享，或者在一个资产模型中包含多个实例），则应改为创建*component-model-based*复合模型。有关详细信息，请参阅下一节。

```
{
    "assetModelCompositeModelName": "CNCLathe_ServoMotorA",
    "assetModelCompositeModelType": "CUSTOM",
    "assetModelCompositeModelProperties": [
        {
            "dataType": "DOUBLE",
            "name": "Servo Motor Temperature",
            "type": {
            "measurement": {}
            },
            "unit": "Celsius"
        },
        {
            "dataType": "DOUBLE",
            "name": "Spindle speed",
            "type": {
            "measurement": {}
            },
            "unit": "rpm"
        }
    ]
}
```

## 创建组 component-model-based件（控制台）
<a name="create-component-console"></a>

您可以使用 AWS IoT SiteWise 控制台基于组件模型创建组件。

**创建组 component-model-based件（控制台）**

1. <a name="sitewise-open-console"></a>导航至 [AWS IoT SiteWise 控制台](https://console.aws.amazon.com/iotsitewise/)。

1. <a name="sitewise-choose-models"></a>在导航窗格中，选择**模型**。

1. 选择要为其添加组件的资产模型。

1. 在**属性**选项卡上，选择**组件**。

1. 选择**创建组件**。

1. 在**创建组件**页面上，执行以下操作：

   1. 选择要作为组件基础的组件模型。

   1. 为组件输入一个**名称**，例如 **ServoMotor** 或 **ServoMotor Model**。此名称对于您账户在此区域的所有组件都必须是唯一的。

   1. 选择**创建组件**。

## 创建 component-model-based自定义复合模型 (AWS CLI)
<a name="create-component-based-composite-model-cli"></a>

您可以使用在 AWS CLI 资产模型中创建 component-model-based自定义复合模型。 component-model-based自定义复合模型是对已在其他地方定义的组件模型的引用。

使用[CreateAssetModelCompositeModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModelCompositeModel.html)操作创建 component-model-based自定义复合模型。此操作需要具有以下结构的负载。

**注意**  
在此示例中，`composedAssetModelId` 的值是现有组件模型的资产模型 ID 或外部 ID。有关更多信息，请参阅《AWS IoT SiteWise 用户指南》**中的 [使用外部引用对象 IDs](object-ids.md#external-id-references)。有关如何创建组件模型的示例，请参阅[创建组件模型（AWS CLI）](create-component-models.md#create-component-model-cli)。

```
{
    "assetModelCompositeModelName": "CNCLathe_ServoMotorA",
    "assetModelCompositeModelType": "CUSTOM",
    "composedAssetModelId": component model ID
]
```

由于它只是一个参考，因此 component-model-based自定义复合模型除了名称之外没有自己的属性。

如果要将同一组件的多个实例添加到资产模型中（例如，具有多个伺服电动机的数控机床），则可以添加多个 component-model-based自定义复合模型，每个模型都有自己的名称，但所有模型的引用都相同`composedAssetModelId`。

您可以将组件嵌套在其他组件中。为此，您可以向其中一个组件模型添加 component-model-based复合模型，如本示例所示。