

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

# 更新自訂複合模型 （元件）
<a name="update-custom-composite-models"></a>

您可以使用 AWS IoT SiteWise API 更新自訂複合模型，或使用 AWS IoT SiteWise 主控台更新元件。

**Topics**
+ [更新元件 （主控台）](#update-custom-composite-model-console)
+ [更新自訂複合模型 (AWS CLI)](#update-custom-composite-model-cli)

## 更新元件 （主控台）
<a name="update-custom-composite-model-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>在導覽窗格中，選擇 **Models (模型)**。

1. 選擇元件所在的資產模型。

1. 在**屬性**索引標籤上，選擇**元件**。

1. 選擇您要更新的元件。

1. 選擇**編輯**。

1. 在**編輯元件**頁面上，執行下列任一動作：
   + 在 **Model details (模型詳細資料)** 中，變更模型的 **Name (名稱)**。
   + 變更任何 **Attribute definitions (屬性定義)**。您無法變更現有屬性的 **Data type (資料類型)**。如需詳細資訊，請參閱[定義靜態資料 （屬性）](attributes.md)。
   + 變更任何 **Measurement definitions (衡量值定義)**。您無法變更現有衡量值的 **Data type (資料類型)**。如需詳細資訊，請參閱[從設備定義資料串流 （度量）](measurements.md)。
   + 變更任何 **Transform definitions (轉換定義)**。如需詳細資訊，請參閱[轉換資料 （轉換）](transforms.md)。
   + 變更任何 **Metric definitions (指標定義)**。您無法變更現有指標的 **Time interval (時間間隔)**。如需詳細資訊，請參閱[從屬性和其他資產彙總資料 （指標）](metrics.md)。

1. 選擇 **Save** (儲存)。

## 更新自訂複合模型 (AWS CLI)
<a name="update-custom-composite-model-cli"></a>

使用 AWS Command Line Interface (AWS CLI) 更新自訂複合模型。

若要更新名稱或描述，請使用 [UpdateAssetModelCompositeModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModelCompositeModel.html) 操作。僅適用於內嵌自訂複合模型，您也可以更新屬性。您無法更新以component-model-based自訂複合模型的屬性，因為其參考的元件模型提供其相關聯的屬性。

**重要**  
如果您從自訂複合模型中移除屬性， 會 AWS IoT SiteWise 刪除該屬性的所有先前資料。您無法變更現有屬性的類型或資料類型。  
若要將現有的複合模型屬性取代為具有相同 的新複合模型屬性`name`，請執行下列動作：  
提交已移除整個現有屬性的`UpdateAssetModelCompositeModel`請求。
提交包含新屬性的第二個`UpdateAssetModelCompositeModel`請求。新的資產屬性將與上一個資產屬性`name`相同， AWS IoT SiteWise 並會產生新的唯一 `id`。

**更新自訂複合模型 (AWS CLI)**

1. 若要擷取現有的複合模型定義，請執行下列命令。將 *composite-model-id* 取代為要更新的自訂複合模型的 ID 或外部 ID，並將 *asset-model-id* 取代為與自訂複合模型相關聯的資產模型。如需詳細資訊，請參閱*「AWS IoT SiteWise 使用者指南」*。

   1. 執行以下命令：

      ```
      aws iotsitewise describe-asset-model-composite-model \
      --asset-model-composite-model-id composite-model-id \
      --asset-model-id asset-model-id
      ```

   1.  上述命令會傳回對應至相關聯模型最新版本的複合模型定義。對於資產模型處於 `FAILED` 狀態的使用案例，請擷取與其作用中版本對應的有效模型定義，以建置您的更新請求。如需詳細資訊，請參閱 [資產模型版本](model-active-version.md)。

   1. 執行下列命令來擷取作用中模型定義：

      ```
      aws iotsitewise describe-asset-model-composite-model \
      --asset-model-composite-model-id composite-model-id \
      --asset-model-id asset-model-id \
      --asset-model-version ACTIVE
      ```

   1. 如需詳細資訊，請參閱 [DescribeAssetModelCompositeModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModelCompositeModel.html) 操作。

1. 建立名為 的檔案`update-custom-composite-model.json`，然後將上一個命令的回應複製到 檔案。

1. 從 中的 JSON 物件移除每個鍵/值對，下列欄位`update-custom-composite-model.json`除外：
   + `assetModelCompositeModelName`
   + `assetModelCompositeModelDescription` （如果有）
   + `assetModelCompositeModelProperties` （如果有）

1. 在 `update-custom-composite-model.json` 中，執行下列任何一項：
   + 變更 的值`assetModelCompositeModelName`。
   + 新增或移除 `assetModelCompositeModelDescription`，或變更其值。
   + 僅適用於內嵌自訂複合模型：變更、新增或移除 中的任何資產模型屬性`assetModelCompositeModelProperties`。

   如需此檔案所需格式的詳細資訊，請參閱 [UpdateAssetModelCompositeModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModelCompositeModel.html) 的請求語法。

1. 執行下列命令，使用存放在 中的定義更新自訂複合模型`update-custom-composite-model.json`。以複合模型的 ID 取代 *composite-model-id*，並以其所在的資產模型 ID 取代 *asset-model-id*。

   ```
   aws iotsitewise update-asset-model-composite-model \
   --asset-model-composite-model-id composite-model-id \
   --asset-model-id asset-model-id \
   --cli-input-json file://update-custom-composite-model.json
   ```

**重要**  
 當多個使用者同時更新資產模型時，其他使用者可能會無意中覆寫使用者的變更。若要避免這種情況，您必須定義條件式更新請求。請參閱 [資產模型寫入的樂觀鎖定](opt-locking-for-model.md)。