

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

# 建立元件模型
<a name="create-component-models"></a>

使用 AWS IoT SiteWise 元件模型來定義您可以從資產模型或其他元件模型參考的子組件。如此一來，您可以在多個其他模型中重複使用元件的定義，或在相同的模型內多次使用元件。

定義元件模型的程序與定義資產模型非常類似。如同資產模型，元件模型具有名稱、描述和資產屬性。不過，元件模型不能包含資產階層定義，因為元件模型本身無法直接用來建立資產。元件模型也無法定義警示。

例如，您可以定義具有馬達溫度、編碼器溫度和隔離電阻屬性的 伺服馬達元件。然後，您可以為包含 伺服馬達的設備定義資產模型，例如 CNC 機器。

**注意**  
建議您從最低層級的節點開始建立操作模型。例如，在建立 CNC 機器的資產模型之前，請先建立您的伺服馬達元件。資產模型包含現有元件模型的參考。
您無法直接從元件模型建立資產。若要建立使用您的元件的資產，您必須為資產建立資產模型。然後，您可以為其建立參考元件的自訂複合模型。如需建立資產模型的詳細資訊，請參閱[在 中建立資產模型 AWS IoT SiteWise](create-asset-models.md)。如需建立自訂複合模型的詳細資訊，請參閱[建立自訂複合模型 （元件）](create-custom-composite-models.md)。

下列各節說明如何使用 AWS IoT SiteWise API 建立元件模型。

**Topics**
+ [建立元件模型 (AWS CLI)](#create-component-model-cli)
+ [元件模型範例](#component-model-example)

## 建立元件模型 (AWS CLI)
<a name="create-component-model-cli"></a>

您可以使用 AWS Command Line Interface (AWS CLI) 來建立元件模型。

使用 [CreateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_CreateAssetModel.html) 操作建立具有 屬性的元件模型。此操作預期承載具有下列結構：

```
{
  "assetModelType": "COMPONENT_MODEL",
  "assetModelName": "{{String}}",
  "assetModelDescription": "{{String}}",
  "assetModelProperties": {{Array of AssetModelProperty}},
}
```

**建立元件模型 (AWS CLI)**

1. 建立名為 的檔案，`component-model-payload.json`然後將下列 JSON 物件複製到 檔案：

   ```
   {
     "assetModelType": "COMPONENT_MODEL",
     "assetModelName": "",
     "assetModelDescription": "",
     "assetModelProperties": [
   
     ]
   }
   ```

1. 使用您偏好的 JSON 文字編輯器來編輯下列項目的 `component-model-payload.json` 檔案：

   1. 輸入元件模型的名稱 (`assetModelName`)，例如 **Servo Motor**或 **Servo Motor Model**。此名稱在帳戶中的所有資產模型和元件模型中必須是唯一的 AWS 區域。

   1. （選用） 輸入元件模型的外部 ID (`assetModelExternalId`)。這是使用者定義的 ID。如需詳細資訊，請參閱《AWS IoT SiteWise 使用者指南》**中的 [參考具有外部 IDs物件](object-ids.md#external-id-references)。

   1. (選擇性) 輸入資產模型的說明 (`assetModelDescription`)，或移除 `assetModelDescription` 鍵值組。

   1. （選用） 定義元件模型的資產屬性 (`assetModelProperties`)。如需詳細資訊，請參閱[定義資料屬性](asset-properties.md)。

   1. (選擇性) 新增資產模型的標籤 (`tags`)。如需詳細資訊，請參閱[標記您的 AWS IoT SiteWise 資源](tag-resources.md)。

1. 執行下列命令，從 JSON 檔案中的定義建立元件模型。

   ```
   aws iotsitewise create-asset-model --cli-input-json file://component-model-payload.json
   ```

   操作會傳回回應，其中包含`assetModelId`您在資產模型或其他元件模型中將參考新增至元件模型時所參考的 。回應還包含模型 (`assetModelStatus.state`) 的狀態，起初為 `CREATING`。元件模型的狀態為 ，`CREATING`直到變更傳播為止。
**注意**  
複雜模型的元件模型建立程序最多可能需要幾分鐘的時間。若要檢查元件模型的目前狀態，請指定 來使用 [DescribeAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html) 操作`assetModelId`。在元件模型狀態為 之後`ACTIVE`，您可以在資產模型或其他元件模型中新增元件模型的參考。如需詳細資訊，請參閱[資產和模型狀態](asset-and-model-states.md)。

1. （選用） 為您的元件模型建立自訂複合模型。使用自訂複合模型，您可以在模型中分組屬性，或透過參考另一個元件模型來包含子組件。如需詳細資訊，請參閱[建立自訂複合模型 （元件）](create-custom-composite-models.md)。

## 元件模型範例
<a name="component-model-example"></a>

本節包含元件模型定義範例，可用來建立具有 AWS CLI 和 AWS IoT SiteWise SDKs元件模型。此元件模型代表可在 CNC 機器等其他設備中使用的伺服馬達。

**Topics**
+ [伺服馬達元件模型](#example-servo-motor)

### 伺服馬達元件模型
<a name="example-servo-motor"></a>

下列元件模型代表可在 CNC 機器等設備中使用的伺服馬達。伺服馬達提供各種測量，例如溫度和電阻。這些衡量值可作為參考 伺服馬達元件模型之資產模型建立的資產屬性。

```
{
    "assetModelName": "ServoMotor",
    "assetModelType": "COMPONENT_MODEL",
    "assetModelProperties": [
        {
            "dataType": "DOUBLE",
            "name": "Servo Motor Temperature",
            "type": {
            "measurement": {}
            },
            "unit": "Celsius"
        },
        {
            "dataType": "DOUBLE",
            "name": "Spindle speed",
            "type": {
            "measurement": {}
            },
            "unit": "rpm"
        }
    ]
}
```