

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

# コンポーネントタイプの使用と作成
<a name="twinmaker-component-types"></a>

このトピックでは、 AWS IoT TwinMaker コンポーネントタイプの作成に使用する値と構造について説明します。[CreateComponentType](https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_CreateComponentType.html)API に渡すか、 AWS IoT TwinMaker コンソールのコンポーネントタイプエディターを使用してリクエストオブジェクトを作成する方法を示します。

コンポーネントは、プロパティのコンテキストと、関連するエンティティのデータを提供します。

## 組み込みコンポーネントタイプ
<a name="twinmaker-component-types-built-in"></a>

 AWS IoT TwinMaker コンソールでワークスペースを選択し、左側のペインで [**Component types**] を選択すると、以下のコンポーネントタイプが表示されます。
+ **com.amazon.iotsitewise.resourcesync**: アセットとアセットモデルを自動的に同期し、エンティティ、コンポーネント、コンポーネントタイプに変換するコンポーネントタイプです。 AWS IoT SiteWise AWS IoT TwinMaker アセット同期の使用方法について詳しくは、「[AWS IoT SiteWiseとのアセット同期](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/tm-sw-asset-sync.html)」を参照してください。 AWS IoT SiteWise 
+ **com.amazon.iottwinmaker.alarm.basic**：外部ソースからエンティティにアラームデータを引き出す基本的なアラームコンポーネントです。このコンポーネントには、特定のデータソースに接続する関数は含まれていません。これは、アラームコンポーネントは抽象コンポーネントであり、データソースとそのソースから読み取る関数を指定する別のコンポーネントタイプに継承できることを意味します。
+ **com.amazon.iottwinmaker.documents**：エンティティに関する情報を含むドキュメントのタイトルとURLを単純にマッピングしたものです。
+ **com.amazon.iotsitewise.connector.edgevideo: Kinesis ビデオストリーム用エッジコネクタコンポーネントを使用して** IoT デバイスからビデオをエンティティに取り込むコンポーネント。 AWS IoT Greengrass [Kinesis Video Streams AWS IoT GreengrassAWS IoT TwinMaker 用エッジコネクタコンポーネントはコンポーネントではなく](https://docs.aws.amazon.com/greengrass/v2/developerguide/kvs-edge-connector-component.html)、IoT AWS IoT Greengrass デバイスにローカルにデプロイされるビルド済みのコンポーネントです。
+ **com.amazon.iotsitewise.connector**： AWS IoT SiteWise データをエンティティに取り込むコンポーネント。
+ **com.amazon.iottwinmaker.parameters**：静的なキーと値のペアをエンティティに追加するコンポーネント。
+ **com.amazon.kvs.video: Kinesis ビデオストリームからエンティティに動画を取り込むコンポーネント**。 AWS IoT TwinMaker 

![コンポーネントタイプコンソールページには、複数の定義済みコンポーネントタイプのリストが表示されます。](http://docs.aws.amazon.com/ja_jp/iot-twinmaker/latest/guide/images/ComponentTypesPredefined.png)


## AWS IoT TwinMaker コンポーネントタイプのコア機能
<a name="twinmaker-component-types-core"></a>

以下のリストは、コンポーネントタイプのコア機能を示しています。
+ **プロパティ定義**:[PropertyDefinitionRequest](https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_PropertyDefinitionRequest.html)このオブジェクトは、シーンコンポーザーで設定できるプロパティを定義したり、外部データソースから取得したデータを設定したりできるプロパティを定義します。設定した静的プロパティはに保存されます。 AWS IoT TwinMakerデータソースから取得した時系列プロパティやその他のプロパティは外部に保存されます。

  プロパティ定義は`PropertyDefinitionRequest`マップの文字列内で指定します。各文字列はマップ内で一意でなければなりません。
+ **関数**:[FunctionRequest](https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_FunctionRequest.html)このオブジェクトは、外部データソースからの読み取りと場合によっては外部データソースへの書き込みを行う Lambda 関数を指定します。

  外部に保存されている値を持つプロパティを含むが、値を取得するための対応する関数がないコンポーネントタイプは、抽象コンポーネントタイプです。抽象コンポーネントタイプから具象コンポーネントタイプを拡張することができます。抽象コンポーネントタイプをエンティティに追加することはできません。シーンコンポーザーには表示されません。

  文字列の中にある関数を`FunctionRequest`マップに指定します。文字列には、以下の定義済み関数タイプのいずれかを指定する必要があります。
  + `dataReader`：外部ソースからデータを取得する関数。
  + `dataReaderByEntity`：外部ソースからデータを取得する関数。

    このタイプのデータリーダーを使用する場合、[GetPropertyValueHistory](https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_GetPropertyValueHistory.html)API オペレーションはこのコンポーネントタイプのプロパティに対するエンティティ固有のクエリのみをサポートします。（`componentName`\+`entityId`のプロパティ値履歴のみをリクエストできます。）
  + `dataReaderByComponentType`：外部ソースからデータを取得する関数。

    このタイプのデータリーダーを使用する場合、[GetPropertyValueHistory](https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_GetPropertyValueHistory.html)API オペレーションはこのコンポーネントタイプのプロパティに対するエンティティ間クエリのみをサポートします。（プロパティ値の履歴を要求できるのは、`componentTypeId`の場合のみです。）
  + `dataWriter`：外部ソースにデータを書き込む関数。
  + `schemaInitializer`：コンポーネントタイプを含むエンティティを作成するたびに、プロパティ値を自動的に初期化する関数。

  非抽象コンポーネントタイプには、3種類のデータリーダー関数のうちの1つが必要です。

  アラームを含むタイムストリームテレメトリコンポーネントを実装するLambda関数の例については、「[AWS IoT TwinMaker サンプル](https://github.com/aws-samples/aws-iot-twinmaker-samples/blob/main/src/modules/timestream_telemetry/lambda_function/udq_data_reader.py)」のデータリーダーを参照してください。
**注記**  
アラームコネクタは抽象アラームコンポーネントタイプを継承するため、Lambda関数は`alarm_key`値を返す必要があります。この値を返さないと、Grafanaはそれをアラームとして認識しません。これはアラームを返すすべてのコンポーネントに必要です。
+ **継承**：コンポーネントタイプは継承によってコードの再利用性を促進します。コンポーネントタイプは最大10個の親コンポーネントタイプを継承できます。

  `extendsFrom`パラメータを使用して、コンポーネントタイプがプロパティと機能を継承するコンポーネントタイプを指定します。
+  **IsSingleton**：一部のコンポーネントには、位置座標など、1つのエンティティに複数回含めることができないプロパティが含まれています。`isSingleton`パラメータの値を`true`に設定すると、コンポーネントタイプをエンティティに1回だけ含めることができます。

## プロパティ定義を作成
<a name="twinmaker-component-types-property-def"></a>

次の表は、`PropertyDefinitionRequest`のパラメータの説明です。


| パラメータ | 説明 | 
| --- | --- | 
| `isExternalId` | プロパティが外部に保存されているプロパティ値の一意の識別子 ( AWS IoT SiteWise アセット ID など) であるかどうかを指定するブール値。<br />このプロパティのデフォルト値は`false`です。 | 
| `isStoredExternally` | プロパティ値を外部に保存するかどうかを指定するブール値。<br />このプロパティのデフォルト値は`false`です。 | 
| `isTimeSeries` | プロパティが時系列データで構成されるかどうかを指定するブール値。<br />このプロパティのデフォルト値は`false`です。 | 
| `isRequiredInEntity` | そのコンポーネントタイプを使用するエンティティ内のプロパティに値が必要かどうかを指定するブール値。 | 
| `dataType` | プロパティのデータ型 (文字列、マップ、リスト、測定単位など) [DataType](https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_DataType.html)を指定するオブジェクト。 | 
| `defaultValue` | [DataValue](https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_DataValue.html)プロパティのデフォルト値を指定するオブジェクト。 | 
| `configuration` |  string-to-string 外部データソースへの接続に必要な追加情報を指定するマップ。 | 

## 関数の作成
<a name="twinmaker-component-types-function"></a>

次の表は、`FunctionRequest`のパラメータの説明です。


| パラメータ | 説明 | 
| --- | --- | 
| ` implementedBy` | 外部データソースに接続する Lambda [DataConnector](https://docs.aws.amazon.com/iot-twinmaker/latest/apireference/API_DataConnector.html)関数を指定するオブジェクト。 | 
| `requiredProperties` | 関数が外部データソースから読み書きするために必要なプロパティのリスト。 | 
| `scope` | 関数のスコープ。ワークスペース全体をスコープとする関数には`Workspace`を使用します。コンポーネントを含むエンティティに限定されたスコープを持つ関数には`Entity`を使用します。 | 

コンポーネントタイプの作成と拡張の方法を示す例については、[コンポーネントタイプの例](twinmaker-component-types-examples.md)を参照してください。