アセットモデルとコンポーネントモデルを更新する - 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. ナビゲーションペインで、[モデル] を選択します。

  3. 更新するアセットモデルまたはコンポーネントモデルを選択します。

  4. [編集] を選択します。

  5. [モデルの編集] ページで、次のいずれかの操作を行います。

  6. [Save] を選択します。

注記

最後に [モデルを編集する] ページを開いてから別のユーザーがアセットモデルを正常に更新した場合、コンソールで行われた更新リクエストは拒否されます。コンソールは、[モデルを編集する] ページを [最新の状態に更新] して、更新されたモデルを読み込むするようにユーザーを促します。更新を再度行い、保存を再試行する必要があります。詳細については、「アセットモデル書き込みの楽観的ロック」を参照してください。

アセットまたはコンポーネントモデルを更新する (AWS CLI)

AWS Command Line Interface (AWS CLI) を使用して、アセットモデルまたはコンポーネントモデルを更新します。

UpdateAssetModel API を使用して、アセットモデルまたはコンポーネントモデルの名前、説明、およびプロパティを更新します。アセットモデルの場合のみ、階層を更新できます。以下のパラメータを指定します。

  • assetModelId – アセットの ID。これは UUID 形式の実際の ID です。または、ある場合は externalId:myExternalId です。詳細については、AWS IoT SiteWise  ユーザーガイドの 外部 ID を持つリファレンスオブジェクトを参照してください。

ペイロードで更新されたアセットモデルを指定します。アセットモデルまたはコンポーネントモデルの予想される形式については、「でアセットモデルを作成する AWS IoT SiteWise」を参照してください。

警告

UpdateAssetModel API は、ペイロードで指定したモデルによって既存のモデルを上書きします。モデルのプロパティまたは階層を削除しないようにするには、更新されたアセットモデルのペイロードに ID と定義を含める必要があります。モデルの既存の構造をクエリする方法については、「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. 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) の複合モデルを変更、追加、または削除します。アラームは、他のプロパティをモニタリングし、機器やプロセスに注意が必要な時期を特定することができます。各アラーム定義は、アラームが使用する一連のプロパティを標準化した複合モデルです。詳細については、でアラームを使用してデータをモニタリングする 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
重要

複数のユーザーがアセットモデルを同時に更新すると、ユーザーの変更が別のユーザーによって誤って上書きされる可能性があります。これを防ぐには、条件付き更新リクエストを定義する必要があります。「アセットモデル書き込みの楽観的ロック」を参照してください。