更新資產模型和元件模型 - 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) 更新資產模型或元件模型。

使用UpdateAssetModelAPI更新資產模型或元件模型的名稱、描述和性質。您只能針對資產模型更新階層。指定下列參數:

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

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

警告

會以您在有效負載中提供的模型UpdateAssetModelAPI覆寫現有模型。若要避免刪除模型的屬性或階層,您必須在更新的模型有效負載中包含它們IDs和定義。若要瞭解如何查詢模型的現有結構,請參閱DescribeAssetModel操作。

注意

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

更新資產模型或元件模型 (AWS CLI)
  1. 執行下列指令以擷取現有的模型定義。Replace (取代) 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. 從中update-asset-model.json的對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) 的資產模型複合模型。警報會監控其他屬性,以便您識別何時需要注意設備或流程。每個警報定義都是一個複合模型,可將警報使用的屬性集標準化。如需詳細資訊,請參閱 使用警報監控數據定義資產模型上的警示

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

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

當多個使用者同時更新資產模型時,其他使用者可能會不小心覆寫使用者的變更。若要避免這種情況發生,您必須定義條件式更新要求。請參閱 資產模型寫入的最佳鎖定