

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# アセットモデル、コンポーネントモデル、インターフェイスを更新する
<a name="update-asset-models"></a>

 AWS IoT SiteWise コンソールまたは API を使用して、アセットモデル、コンポーネントモデル、またはインターフェイスを更新します。

既存のプロパティのタイプまたはデータ型、あるいは既存のメトリックのウィンドウは変更できません。また、モデルのタイプをアセットモデルからコンポーネントモデルやインターフェイス、またはその逆に変更することはできません。

**重要**  
アセットモデルまたはコンポーネントモデルからプロパティを削除すると、 はそのプロパティの以前のデータをすべて AWS IoT SiteWise 削除します。コンポーネントモデルの場合、これは**そのコンポーネントモデルを使用するすべてのアセットモデル**に影響するため、変更がどの程度の範囲に適用される可能性があるかを理解するように特に注意してください。
アセットモデルから階層定義を削除すると、 はその階層内のすべてのアセットの関連付け AWS IoT SiteWise を解除します。

アセットモデルを更新すると、基になるモデルに加えた変更がそのモデルに基づくすべてのアセットに反映されます。変更が反映されるまで、各アセットには `UPDATING` 状態になります。それらのアセットを操作する前に、それらが `ACTIVE` 状態に戻るまで待機する必要があります。この間、更新されたアセットモデルのステータスは `PROPAGATING` になります。

コンポーネントモデルを更新すると、そのコンポーネントモデルを組み込んだすべてのアセットモデルに変更が反映されます。コンポーネントモデルの変更が伝播されるまで、影響を受ける各アセットモデルは `UPDATING` 状態になり、その後、`PROPAGATING` になり、前の段落で説明したように、関連するアセットを更新します。それらのアセットを操作する前に、それらが `ACTIVE` 状態に戻るまで待機する必要があります。この間、更新されたコンポーネントモデルのステータスは `PROPAGATING` になります。

詳細については、「[アセットおよびモデルの状態](asset-and-model-states.md)」を参照してください。

**Topics**
+ [アセットモデル、コンポーネントモデル、またはインターフェイスの更新 (コンソール)](#update-asset-model-console)
+ [アセットモデル、コンポーネントモデル、またはインターフェイスを更新する (AWS CLI)](#update-asset-model-cli)

## アセットモデル、コンポーネントモデル、またはインターフェイスの更新 (コンソール)
<a name="update-asset-model-console"></a>

 AWS IoT SiteWise コンソールを使用して、アセットモデル、コンポーネントモデル、またはインターフェイスを更新できます。

**アセットモデル、コンポーネントモデル、またはインターフェイスを更新するには (コンソール)**

1. <a name="sitewise-open-console"></a>[AWS IoT SiteWise コンソール](https://console.aws.amazon.com/iotsitewise/)に移動します。

1. <a name="sitewise-choose-models"></a>ナビゲーションペインで、[**モデル**] を選択します。

1. 更新するアセットモデル、コンポーネントモデル、またはインターフェイスを選択します。

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

1. [**モデルの編集**] ページで、次のいずれかの操作を行います。
   + [**モデルの詳細**] で、モデルの [**名前**] を変更します。
   + 任意の [**属性定義**] を変更します。既存の属性の [**データ型**] は変更できません。詳細については、「[静的データ (属性) を定義する](attributes.md)」を参照してください。
   + [**測定の定義**] を変更します。既存の測定値の [**データ型**] は変更できません。詳細については、「[機器からのデータストリームを定義する (測定値)](measurements.md)」を参照してください。
   + 任意の [**定義を変換する**] を変更します。詳細については、「[データを変換する (変換)](transforms.md)」を参照してください。
   + [**メトリクスの定義**] を変更します。既存のメトリクスの [**時間間隔**] は変更できません。詳細については、「[プロパティおよびその他のアセットからのデータを集計する (メトリクス)](metrics.md)」を参照してください。
   + (アセットモデルのみ) 任意の **[階層の定義]** を変更します。既存の階層の [**階層モデル**] を変更することはできません。詳細については、「[アセットモデルの階層を定義する](define-asset-hierarchies.md)」を参照してください。

1. **[保存]** を選択します。

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

## アセットモデル、コンポーネントモデル、またはインターフェイスを更新する (AWS CLI)
<a name="update-asset-model-cli"></a>

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

[UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html) API を使用して、アセットモデル、コンポーネントモデル、またはインターフェイスの名前、説明、プロパティを更新します。アセットモデルの場合のみ、階層を更新できます。インターフェイスでは、プロパティと階層を更新できます。以下のパラメータを指定します。
+ `assetModelId` – アセットの ID。これは UUID 形式の実際の ID です。または、ある場合は `externalId:myExternalId` です。詳細については、AWS IoT SiteWise  ユーザーガイドの [外部 ID を持つリファレンスオブジェクト](object-ids.md#external-id-references)を参照してください。

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

**警告**  
[UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html) API は、ペイロードで指定したモデルによって既存のモデルを上書きします。モデルのプロパティまたは階層を削除しないようにするには、更新されたアセットモデルのペイロードに ID と定義を含める必要があります。モデルの既存の構造をクエリする方法については、「[DescribeAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html) オペレーション」を参照してください。

**注記**  
次の手順では、タイプ `AWS/ALARM` の複合モデルのみを更新できます。`CUSTOM` 複合モデルを更新する場合は、代わりに [UpdateAssetModelCompositeModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModelCompositeModel.html) を使用します。詳細については、「[カスタム複合モデルを更新する (コンポーネント)](update-custom-composite-models.md)」を参照してください。

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

1. 次のコマンドを実行して、既存のアセットモデル定義を取得します。*asset-model-id* を、更新するアセットモデルまたはコンポーネントモデルの ID または外部 ID に置き換えます。

   ```
   aws iotsitewise describe-asset-model --asset-model-id asset-model-id
   ```

   上記のコマンドは、モデルの最新バージョンに対応するモデル定義を返します。

    アセットモデルが `FAILED` 状態にあるユースケースでは、アクティブなバージョンに対応する有効なモデル定義を取得して、更新リクエストを構築します。詳細については、「[アセットモデルのバージョン](model-active-version.md)」を参照してください。次のコマンドを実行して、アクティブなモデル定義を取得します。

   ```
   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](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_DescribeAssetModel.html) オペレーション」を参照してください。

1. `update-asset-model.json` という名前のファイルを作成し、前のコマンドのレスポンスをファイルにコピーします。

1. `update-asset-model.json` の JSON オブジェクトから次のキーと値のペアを削除します。
   + `assetModelId`
   + `assetModelArn`
   + `assetModelCompositeModelSummaries`
   + `assetModelCreationDate`
   + `assetModelLastUpdateDate`
   + `assetModelStatus`
   + `assetModelType`
   + `assetModelVersion`
   + `eTag`

   [UpdateAssetModel](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_UpdateAssetModel.html) オペレーションでは、次の構造を持つペイロードが必要です。

   ```
   {
     "assetModelName": "String",
     "assetModelDescription": "String",
     "assetModelProperties": Array of AssetModelProperty,
     "assetModelHierarchies": Array of AssetModelHierarchyDefinition,
     "assetModelCompositeModels": Array of AssetModelCompositeModel
   }
   ```

1. `update-asset-model.json` で、次のいずれかを行ってください。
   + アセットモデルの名前を変更します (`assetModelName`)。
   + アセットモデルの説明を変更、追加、または削除します (`assetModelDescription`)。
   + アセットモデルのプロパティを変更、追加、または削除します (`assetModelProperties`)。既存のプロパティの `dataType`、または既存のメトリクスの `window` を変更することはできません。詳細については、「[データのプロパティを定義する](asset-properties.md)」を参照してください。
   + アセットモデルの階層を変更、追加、または削除します (`assetModelHierarchies`)。既存の階層の `childAssetModelId` は変更できません。詳細については、「[アセットモデルの階層を定義する](define-asset-hierarchies.md)」を参照してください。
   + アセットモデルのタイプ `AWS/ALARM` (`assetModelCompositeModels`) の複合モデルを変更、追加、または削除します。アラームは、他のプロパティをモニタリングし、機器やプロセスに注意が必要な時期を特定することができます。各アラーム定義は、アラームが使用する一連のプロパティを標準化した複合モデルです。詳細については、「[でアラームを使用してデータをモニタリングする AWS IoT SiteWise](industrial-alarms.md)」および「[でアセットモデルにアラームを定義する AWS IoT SiteWise](define-alarms.md)」を参照してください。

1. 次のコマンドを実行して、`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
   ```

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