本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
更新資產模型和元件模型
使用主 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) 更新資產模型或元件模型。
使用UpdateAssetModelAPI更新資產模型或元件模型的名稱、描述和性質。您只能針對資產模型更新階層。指定下列參數:
-
assetModelId
— 資產的 ID。這是UUID格式的實際 ID,或者externalId:myExternalId
如果它有一個。如需詳細資訊,請參閱《AWS IoT SiteWise 使用者指南》中的 使用外部參考物件 IDs。
在承載中指定更新的模型。若要瞭解資產模型或元件模型的預期格式,請參閱建立資產模型。
警告
會以您在有效負載中提供的模型UpdateAssetModelAPI覆寫現有模型。若要避免刪除模型的屬性或階層,您必須在更新的模型有效負載中包含它們IDs和定義。若要瞭解如何查詢模型的現有結構,請參閱DescribeAssetModel操作。
注意
下列程序只能更新類型的複合模型AWS/ALARM
。如果要更新CUSTOM
複合模型,請UpdateAssetModelCompositeModel改用。如需詳細資訊,請參閱更新自訂複合模型 (元件)。
更新資產模型或元件模型 (AWS CLI)
-
執行下列指令以擷取現有的模型定義。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作業。
-
建立名為
update-asset-model.json
的文件,並將前一個命令的回應複製到檔案中。 -
從中
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
} -
-
在
update-asset-model.json
中,執行下列任何一項:-
變更資產模型的名稱 (
assetModelName
)。 -
變更、新增或移除資產模型的描述 (
assetModelDescription
)。 -
變更、新增或移除任何資產模型的屬性 (
assetModelProperties
)。您無法變更現有屬性的dataType
或現有指標的window
。如需詳細資訊,請參閱定義資料屬性。 -
變更、新增或移除任何資產模型的階層 (
assetModelHierarchies
)。您無法變更現有階層的childAssetModelId
。如需詳細資訊,請參閱定義資產模型階層。 -
變更、加入或移除任何類型為
AWS/ALARM
(assetModelCompositeModels
) 的資產模型複合模型。警報會監控其他屬性,以便您識別何時需要注意設備或流程。每個警報定義都是一個複合模型,可將警報使用的屬性集標準化。如需詳細資訊,請參閱 使用警報監控數據 和 定義資產模型上的警示。
-
-
執行以下命令,使用儲存在
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
重要
當多個使用者同時更新資產模型時,其他使用者可能會不小心覆寫使用者的變更。若要避免這種情況發生,您必須定義條件式更新要求。請參閱 資產模型寫入的最佳鎖定。