更新自定义复合模型(组件) - Amazon IoT SiteWise
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

更新自定义复合模型(组件)

您可以使用 Amazon IoT SiteWise API 更新自定义复合模型,也可以使用 Amazon IoT SiteWise 控制台更新组件。

更新组件(控制台)

您可以使用 Amazon IoT SiteWise 控制台更新组件。

要创建组件(控制台),请执行以下步骤:
  1. 导航至 Amazon IoT SiteWise 控制台

  2. 在导航窗格中,选择模型

  3. 选择组件所属的资产模型。

  4. 属性选项卡上,选择组件

  5. 选择要更新的组件。

  6. 选择编辑

  7. 编辑组件页面上,执行以下任何操作:

  8. 选择 Save

更新自定义复合模型(Amazon CLI)

使用 Amazon Command Line Interface (Amazon CLI) 更新自定义复合模型。

要更新名称或描述,请使用UpdateAssetModelCompositeModel操作。您也可以更新属性(仅限于内联自定义复合模型)。您无法更新 component-model-based自定义复合模型的属性,因为其引用的组件模型提供了其关联的属性。

重要

如果您从自定义复合模型中移除某个属性,则 Amazon IoT SiteWise 会删除该属性的所有先前数据。您无法更改现有属性的类型或数据类型。

要将现有的复合模型属性替换为具有相同 name 的新属性,请执行以下操作:

  1. 提交移除所有现有属性的 UpdateAssetModelCompositeModel 请求。

  2. 提交第二个包含新属性的 UpdateAssetModelCompositeModel 请求。新的资产属性将与前一个资产属性name相同, Amazon IoT SiteWise 并将生成一个新的唯一资产id

要更新自定义复合模型(Amazon CLI),请执行以下步骤:
  1. 要检索现有复合模型定义,请运行以下命令。composite-model-id替换为要更新的自定义复合模型的 ID 或外部 ID,以及asset-model-id与自定义复合模型关联的资产模型。有关更多信息,请参阅 Amazon IoT SiteWise 《用户指南》

    1. 运行以下命令:

      aws iotsitewise describe-asset-model-composite-model \ --asset-model-composite-model-id composite-model-id \ --asset-model-id asset-model-id
    2. 上面的命令会返回与关联模型的最新版本相对应的复合模型定义。对于资产模型处于 FAILED 状态的用例,请检索与其活动版本相对应的有效模型定义,以构建您的更新请求。有关详细信息,请参阅资产模型版本

    3. 运行以下命令以检索活动模型定义:

      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
    4. 有关更多信息,请参阅 DescribeAssetModelCompositeModel 操作。

  2. 创建一个名为 update-custom-composite-model.json 的文件,然后将上一命令的响应复制到该文件中。

  3. update-custom-composite-model.json 的 JSON 对象中删除每个键/值对,但保留以下字段:

    • assetModelCompositeModelName

    • assetModelCompositeModelDescription(如果存在)

    • assetModelCompositeModelProperties(如果存在)

  4. update-custom-composite-model.json 中,执行以下任何操作:

    • 更改 assetModelCompositeModelName 的值。

    • 添加或移除 assetModelCompositeModelDescription,或更改其值。

    • 仅适用于内联自定义复合模型:更改、添加或移除 assetModelCompositeModelProperties 中的资产模型的任何属性。

    有关此文件所需格式的更多信息,请参阅的请求语法UpdateAssetModelCompositeModel

  5. 运行以下命令,使用存储在 update-custom-composite-model.json 中的定义更新自定义复合模型。composite-model-id替换为复合模型的 ID 和它所在asset-model-id的资产模型的 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
重要

当多个用户同时更新一个资产模型时,一个用户所作的更改可能会无意中被另一个用户覆盖。为防止出现这种情况,您必须定义一个有条件的更新请求。请参阅对资产模型写入进行乐观锁定