メニュー
AWS Greengrass
開発者ガイド

デバイス定義の作成

デバイス定義は、AWS Greengrass グループのメンバーである AWS Greengrass デバイス (モノ) および関連付けられている設定データのリストです。このデータでは、どのデバイスでローカルの Thing Shadow データと AWS IoT を同期させるかを指定します。このシナリオのデバイスリストは、ロボットアームとスイッチで構成されています。そのため、AWS IoT モノの RobotArm_ThingSwitch_Thing をデバイスリストに追加する必要があります。

最初に、デバイスリストを作成します。

Copy
aws greengrass create-device-definition --name "DeviceDefinitionName"

--name 引数は、デバイス定義の名前を指定します。

CLI コマンド create-device-definition の出力は次のようになります。

Copy
{ "LastUpdatedTimestamp": "2017-05-17T00:00:00.000Z", "CreationTimestamp":"2017-05-17T00:00:00.000Z", "Id":"c595e5c8-5dd0-4b3b-8262-0e94d4d18bfd", "Arn":"arn:aws:greengrass:us-west-2:123451234510:/greengrass/definition/devices/c595e5c8-5dd0-4b3b-8262-0e94d4d18bfd", "Name":"<DeviceDefinitionName>", }

次に、リストに AWS IoT モノを追加することで、デバイス定義バージョンを作成します。

Copy
aws greengrass create-device-definition-version --device-definition-id "<DeviceDefinitionId>" --devices '[ { "Id": "<DeviceElementId>", "CertificateArn": "<RobotArm-Cert-Arn>", "SyncShadow": true, "ThingArn": "<RobotArm_Thing-Arn>" }, { "Id": "<DeviceElementId>", "CertificateArn": "<Switch-Cert-Arn>", "SyncShadow": false, "ThingArn": "<Switch_Thing-Arn>" } ]'

CLI コマンド create-device-definition-version の引数

--device-definition-id

CLI コマンド create-device-definition から返されるデバイス定義の ID。前の例では、c595e5c8-5dd0-4b3b-8262-0e94d4d18bfd です。

--devices

デバイス定義バージョンのデバイスごとの JSON オブジェクトのリスト。

Id

リストの当該エントリの ID。

CertificateArn

デバイスの証明書の ARN。

SyncShadow

デバイスのシャドウをクラウドと同期させる必要がある場合は true。そうでない場合は、false です。

ThingArn

デバイスの ARN。

CLI コマンド create-device-definition-version の出力は次のようになります。

Copy
{ "Arn" : "arn:aws:greengrass:us-west-2:123451234510:/greengrass/definition/devices/c595e5c8-5dd0-4b3b-8262-0e94d4d18bfd/versions/3c57969a-3a98-4092-8388-cece2b39f009", "Id" : "c595e5c8-5dd0-4b3b-8262-0e94d4d18bfd", "Version" : "3c57969a-3a98-4092-8388-cece2b39f009", "CreationTimestamp" : "2017-05-17T18:18:28.393Z" }

CLI コマンド出力のデバイス定義バージョン ARN を保存します。後でリストをグループに追加するときに必要になります。

デバイス定義バージョンを表示するには、CLI コマンド get-device-definition-versionを使用します。

Copy
aws greengrass get-device-definition-version --device-definition-id DeviceDefinitionId --device-definition-version-id "<DeviceDefinitionVersionId>"

CLI コマンド get-device-definition-version の引数

--device-definition-id

CLI コマンド create-device-definition から返されるデバイス定義の ID。

--device-definition-version-id

CLI コマンド create-device-definition-version から返されるデバイス定義バージョンの ID。

CLI コマンド get-device-definition-version の出力は次のようになります。

Copy
{ "Definition": { "Devices": [ { "CertificateArn": "arn:aws:iot:us-west-2:123451234510:cert/a2909c1e38379f82fedf89011c98613fef6fa96071c3dd64a297fde6a414e150", "ThingArn": "arn:aws:iot:us-west-2:123451234510:thing/RobotArm_Thing", "SyncShadow": true, "Id": "robot-arm" }, { "CertificateArn": "arn:aws:iot:us-west-2:123451234510:cert/62017e65eb92d502459ba0f06211ba49c68a9d4763dd1901e2ea4dc73048ef15", "ThingArn": "arn:aws:iot:us-west-2:123451234510:thing/Switch_Thing", "SyncShadow": false, "Id": "switch" } ] }, "Version": "3c57969a-3a98-4092-8388-cece2b39f009", "CreationTimestamp": "2017-05-17T18:18:28.393Z", "Id": "c595e5c8-5dd0-4b3b-8262-0e94d4d18bfd", "Arn": "arn:aws:greengrass:us-west-2:123451234510:/greengrass/definition/devices/c595e5c8-5dd0-4b3b-8262-0e94d4d18bfd/versions/3c57969a-3a98-4092-8388-cece2b39f009" }

StorylineUpdate_RobotArmSyncShadow フィールドが true に設定されていることが確認できます。これにより、StorylineUpdate_RobotArm のローカルのシャドウステータスが同期されます。StorylineUpdate_RobotArm でシャドウが更新されるたびに、クラウドの AWS IoT シャドウにも更新が反映されます。