本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
更新資產模型和元件模型
使用 AWS IoT SiteWise 主控台或 API 來更新資產模型或元件模型。
您無法變更現有屬性的類型或資料類型,或現有指標的視窗。您也無法將模型的類型從資產模型變更為元件模型,或反之亦然。
重要
-
如果您從資產模型或元件模型中移除屬性, 會 AWS IoT SiteWise 刪除該屬性的所有先前資料。對於元件模型,這會影響使用該元件模型的所有資產模型,因此請特別小心,以了解您的變更可能適用範圍。
-
如果您從資產模型中移除階層定義, 會 AWS IoT SiteWise 取消該階層中的所有資產的關聯。
更新資產模型時,以該模型為基礎的每個資產都會反映您對基礎模型所做的任何變更。在變更傳播之前,每個資產都有 UPDATING
狀態。您必須等到這些資產變回 ACTIVE
狀態,才能與它們進行互動。在這段期間,更新的資產模型的狀態將是 PROPAGATING
。
當您更新元件模型時,包含該元件模型的每個資產模型都會反映變更。在元件模型變更傳播之前,每個受影響的資產模型都會具有 UPDATING
狀態,然後在更新其相關聯的資產PROPAGATING
時,如前段所述。您必須等到這些資產模型回到 ACTIVE
狀態,才能與其互動。在此期間,更新的元件模型狀態將為 PROPAGATING
。
如需詳細資訊,請參閱資產和模型狀態。
更新資產或元件模型 (主控台)
您可以使用 AWS IoT SiteWise 主控台來更新資產模型或元件模型。
更新資產模型或元件模型 (主控台)
導覽至 AWS IoT SiteWise 主控台
。 在導覽窗格中,選擇 Models (模型)。
-
選擇要更新的資產模型或元件模型。
-
選擇編輯。
-
在 Edit model (編輯模型) 頁面上,執行以下任一項操作:
-
在 Model details (模型詳細資料) 中,變更模型的 Name (名稱)。
-
變更任何 Attribute definitions (屬性定義)。您無法變更現有屬性的 Data type (資料類型)。如需詳細資訊,請參閱定義靜態資料 (屬性)。
-
變更任何 Measurement definitions (衡量值定義)。您無法變更現有衡量值的 Data type (資料類型)。如需詳細資訊,請參閱從設備定義資料串流 (測量)。
-
變更任何 Transform definitions (轉換定義)。如需詳細資訊,請參閱轉換資料 (轉換)。
-
變更任何 Metric definitions (指標定義)。您無法變更現有指標的 Time interval (時間間隔)。如需詳細資訊,請參閱從屬性和其他資產彙總資料 (指標)。
-
(僅限資產模型) 變更任何階層定義。您無法變更現有階層的 Hierarchy model (階層模型)。如需詳細資訊,請參閱定義資產模型階層。
-
-
選擇 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)
-
執行下列命令來擷取現有的模型定義。將
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 操作。
-
建立名為
update-asset-model.json
的文件,並將前一個命令的回應複製到檔案中。 -
從 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
} -
-
在
update-asset-model.json
中,執行下列任何一項:-
變更資產模型的名稱 (
assetModelName
)。 -
變更、新增或移除資產模型的描述 (
assetModelDescription
)。 -
變更、新增或移除任何資產模型的屬性 (
assetModelProperties
)。您無法變更現有屬性的dataType
或現有指標的window
。如需詳細資訊,請參閱定義資料屬性。 -
變更、新增或移除任何資產模型的階層 (
assetModelHierarchies
)。您無法變更現有階層的childAssetModelId
。如需詳細資訊,請參閱定義資產模型階層。 -
變更、新增或移除任何 類型
AWS/ALARM
() 的資產模型複合模型assetModelCompositeModels
。警示會監控其他屬性,讓您可以識別設備或程序何時需要注意。每個警示定義都是複合模型,可標準化警示使用的屬性集。如需詳細資訊,請參閱 在 中使用警示監控資料 AWS IoT SiteWise 和 在 中定義資產模型的警示 AWS IoT SiteWise。
-
-
執行以下命令,使用儲存在
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
重要
當多個使用者同時更新資產模型時,其他使用者可能會無意中覆寫使用者的變更。若要避免這種情況,您必須定義條件式更新請求。請參閱 資產模型寫入的樂觀鎖定。