更新資產模型和元件模型 - AWS IoT SiteWise

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

更新資產模型和元件模型

使用 AWS IoT SiteWise 主控台或 API 來更新資產模型或元件模型。

您無法變更現有屬性的類型或資料類型,或現有指標的視窗。您也無法將模型的類型從資產模型變更為元件模型,或反之亦然。

重要
  • 如果您從資產模型或元件模型中移除屬性, 會 AWS IoT SiteWise 刪除該屬性的所有先前資料。對於元件模型,這會影響使用該元件模型的所有資產模型,因此請特別小心,以了解您的變更可能適用範圍。

  • 如果您從資產模型中移除階層定義, 會 AWS IoT SiteWise 取消該階層中的所有資產的關聯。

更新資產模型時,以該模型為基礎的每個資產都會反映您對基礎模型所做的任何變更。在變更傳播之前,每個資產都有 UPDATING 狀態。您必須等到這些資產變回 ACTIVE 狀態,才能與它們進行互動。在這段期間,更新的資產模型的狀態將是 PROPAGATING

當您更新元件模型時,包含該元件模型的每個資產模型都會反映變更。在元件模型變更傳播之前,每個受影響的資產模型都會具有 UPDATING 狀態,然後在更新其相關聯的資產PROPAGATING時,如前段所述。您必須等到這些資產模型回到 ACTIVE 狀態,才能與其互動。在此期間,更新的元件模型狀態將為 PROPAGATING

如需詳細資訊,請參閱資產和模型狀態

更新資產或元件模型 (主控台)

您可以使用 AWS IoT SiteWise 主控台來更新資產模型或元件模型。

更新資產模型或元件模型 (主控台)
  1. 導覽至 AWS IoT SiteWise 主控台

  2. 在導覽窗格中,選擇 Models (模型)

  3. 選擇要更新的資產模型或元件模型。

  4. 選擇編輯

  5. Edit model (編輯模型) 頁面上,執行以下任一項操作:

    • Model details (模型詳細資料) 中,變更模型的 Name (名稱)

    • 變更任何 Attribute definitions (屬性定義)。您無法變更現有屬性的 Data type (資料類型)。如需詳細資訊,請參閱定義靜態資料 (屬性)

    • 變更任何 Measurement definitions (衡量值定義)。您無法變更現有衡量值的 Data type (資料類型)。如需詳細資訊,請參閱從設備定義資料串流 (測量)

    • 變更任何 Transform definitions (轉換定義)。如需詳細資訊,請參閱轉換資料 (轉換)

    • 變更任何 Metric definitions (指標定義)。您無法變更現有指標的 Time interval (時間間隔)。如需詳細資訊,請參閱從屬性和其他資產彙總資料 (指標)

    • (僅限資產模型) 變更任何階層定義。您無法變更現有階層的 Hierarchy model (階層模型)。如需詳細資訊,請參閱定義資產模型階層

  6. 選擇 Save (儲存)。

注意

如果自您上次開啟編輯模型頁面以來,其他使用者成功更新資產模型,則會拒絕在主控台中提出的更新請求。主控台會提示使用者重新整理編輯模型頁面,以擷取更新的模型。您必須再次進行更新,然後重試儲存。如需詳細資訊,請參閱資產模型寫入的樂觀鎖定

更新資產或元件模型 (AWS CLI)

使用 AWS Command Line Interface (AWS CLI) 更新資產模型或元件模型。

使用 UpdateAssetModel API 更新資產模型或元件模型的名稱、描述和屬性。僅針對資產模型,您可以更新階層。指定下列參數:

  • assetModelId – 資產的 ID。這是 UUID 格式的實際 ID,externalId:myExternalId如果有的話,則為 。如需詳細資訊,請參閱《AWS IoT SiteWise 使用者指南》中的 具有外部 IDs參考物件

在承載中指定更新的模型。若要了解資產模型或元件模型的預期格式,請參閱 在 中建立資產模型 AWS IoT SiteWise

警告

UpdateAssetModel API 會使用您在承載中提供的模型覆寫現有模型。若要避免刪除模型的屬性或階層,您必須在更新的模型承載中包含其 IDs 和定義。若要了解如何查詢模型的現有結構,請參閱 DescribeAssetModel 操作。

注意

下列程序只能更新類型 的複合模型AWS/ALARM。如果您想要更新CUSTOM複合模型,請改用 UpdateAssetModelCompositeModel。如需詳細資訊,請參閱更新自訂複合模型 (元件)

更新資產模型或元件模型 (AWS CLI)
  1. 執行下列命令來擷取現有的模型定義。將 asset-model-id 取代為要更新的資產模型或元件模型的 ID 或外部 ID。

    aws iotsitewise describe-asset-model --asset-model-id asset-model-id

    上述命令會傳回對應至模型最新版本的模型定義。

    對於資產模型處於 FAILED 狀態的使用案例,請擷取與其作用中版本對應的有效模型定義,以建置您的更新請求。如需詳細資訊,請參閱 資產模型版本。執行下列命令來擷取作用中模型定義:

    aws iotsitewise describe-asset-model --asset-model-id asset-model-id --asset-model-version ACTIVE

    操作會傳回包含模型詳細資訊的回應。回應有以下結構。

    { "assetModelId": "String", "assetModelArn": "String", "assetModelName": "String", "assetModelDescription": "String", "assetModelProperties": Array of AssetModelProperty, "assetModelHierarchies": Array of AssetModelHierarchyDefinition, "assetModelCompositeModels": Array of AssetModelCompositeModel, "assetModelCompositeModelSummaries": Array of AssetModelCompositeModelSummary, "assetModelCreationDate": "String", "assetModelLastUpdateDate": "String", "assetModelStatus": { "state": "String", "error": { "code": "String", "message": "String" }, "assetModelType": "String" }, "assetModelVersion": "String", "eTag": "String" }

    如需詳細資訊,請參閱 DescribeAssetModel 操作。

  2. 建立名為 update-asset-model.json 的文件,並將前一個命令的回應複製到檔案中。

  3. 從 JSON 物件的 update-asset-model.json 中移除以下鍵值組:

    • assetModelId

    • assetModelArn

    • assetModelCompositeModelSummaries

    • assetModelCreationDate

    • assetModelLastUpdateDate

    • assetModelStatus

    • assetModelType

    • assetModelVersion

    • eTag

    UpdateAssetModel 操作預期承載具有下列結構:

    { "assetModelName": "String", "assetModelDescription": "String", "assetModelProperties": Array of AssetModelProperty, "assetModelHierarchies": Array of AssetModelHierarchyDefinition, "assetModelCompositeModels": Array of AssetModelCompositeModel }
  4. update-asset-model.json 中,執行下列任何一項:

    • 變更資產模型的名稱 (assetModelName)。

    • 變更、新增或移除資產模型的描述 (assetModelDescription)。

    • 變更、新增或移除任何資產模型的屬性 (assetModelProperties)。您無法變更現有屬性的 dataType 或現有指標的 window。如需詳細資訊,請參閱定義資料屬性

    • 變更、新增或移除任何資產模型的階層 (assetModelHierarchies)。您無法變更現有階層的 childAssetModelId。如需詳細資訊,請參閱定義資產模型階層

    • 變更、新增或移除任何 類型 AWS/ALARM() 的資產模型複合模型assetModelCompositeModels。警示會監控其他屬性,讓您可以識別設備或程序何時需要注意。每個警示定義都是複合模型,可標準化警示使用的屬性集。如需詳細資訊,請參閱 在 中使用警示監控資料 AWS IoT SiteWise在 中定義資產模型的警示 AWS IoT SiteWise

  5. 執行以下命令,使用儲存在 update-asset-model.json 中的定義更新資產模型。將 asset-model-id 取代為資產模型的 ID:

    aws iotsitewise update-asset-model \ --asset-model-id asset-model-id \ --cli-input-json file://model-payload.json
重要

當多個使用者同時更新資產模型時,其他使用者可能會無意中覆寫使用者的變更。若要避免這種情況,您必須定義條件式更新請求。請參閱 資產模型寫入的樂觀鎖定