レジストリによるモノの管理方法 - AWS IoT Core

レジストリによるモノの管理方法

レジストリを操作するには、AWS IoT コンソール、AWS IoT API、または AWS CLI を使用します。以下の各セクションでは、CLI を使用して Registry を操作する方法を示します。

モノのオブジェクトに名前を付ける場合:

  • モノの名前で個人を特定できる情報を使用しないでください。モノの名前は、暗号化されていない通信やレポートに表示されることがあります。

  • モノの名前にコロン文字 (:) を使用しないでください。他の AWS IoT サービスではコロン文字が区切り文字として使用されているため、モノの名前を含む文字列が誤って解析される可能性があります。

モノの作成

次のコマンドは、CLI で AWS IoT の CreateThing コマンドを使用してモノを作成する方法を示しています。モノの作成後に名前を変更することはできません。モノの名前を変更するには、新しいモノを作成して、新しい名前を付け、古いモノを削除する必要があります。

$ aws iot create-thing --thing-name "MyLightBulb" --attribute-payload "{\"attributes\": {\"wattage\":\"75\", \"model\":\"123\"}}"

CreateThing コマンドを実行すると、新しいモノの名前と Amazon リソースネーム (ARN) が表示されます。

{ "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/MyLightBulb", "thingName": "MyLightBulb", "thingId": "12345678abcdefgh12345678ijklmnop12345678" }
注記

モノの名前に個人を特定できる情報を使用することはお勧めしません。

モノのリスト表示

ListThings コマンドを使用すると、アカウント内のモノをすべてリスト表示できます。

$ aws iot list-things
{ "things": [ { "attributes": { "model": "123", "wattage": "75" }, "version": 1, "thingName": "MyLightBulb" }, { "attributes": { "numOfStates":"3" }, "version": 11, "thingName": "MyWallSwitch" } ] }

ListThings コマンドを使用して、特定のモノタイプのすべてのものを検索できます。

$ aws iot list-things --thing-type-name "LightBulb"
{ "things": [ { "thingTypeName": "LightBulb", "attributes": { "model": "123", "wattage": "75" }, "version": 1, "thingName": "MyRGBLight" }, { "thingTypeName": "LightBulb", "attributes": { "model": "123", "wattage": "75" }, "version": 1, "thingName": "MySecondLightBulb" } ] }

ListThings コマンドを使用して、特定の属性値を持つすべてのモノを検索できます。このコマンドは、検索可能な属性のみを検索します。

$ aws iot list-things --attribute-name "wattage" --attribute-value "75"
{ "things": [ { "thingTypeName": "StopLight", "attributes": { "model": "123", "wattage": "75" }, "version": 3, "thingName": "MyLightBulb" }, { "thingTypeName": "LightBulb", "attributes": { "model": "123", "wattage": "75" }, "version": 1, "thingName": "MyRGBLight" }, { "thingTypeName": "LightBulb", "attributes": { "model": "123", "wattage": "75" }, "version": 1, "thingName": "MySecondLightBulb" } ] }

フリートインデックス作成が有効になっている場合、search-index コマンドを使用して、検索可能および検索不能なモノの属性、デバイスシャドウ値、および接続値を検索できます。search-index コマンドを使用してクエリできる内容の詳細については、モノのクエリの例 および search-index コマンドの CLI リファレンスを参照してください。

モノを記述する

DescribeThing コマンドを使用して、モノに関するより詳細な情報を表示できます。

$ aws iot describe-thing --thing-name "MyLightBulb" { "version": 3, "thingName": "MyLightBulb", "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/MyLightBulb", "thingId": "12345678abcdefgh12345678ijklmnop12345678", "defaultClientId": "MyLightBulb", "thingTypeName": "StopLight", "attributes": { "model": "123", "wattage": "75" } }

モノの更新

UpdateThing コマンドを使用すると、モノを更新できます。このコマンドはモノの属性だけを更新する点に注意してください。モノの名前を変更することはできません。モノの名前を変更するには、新しいモノを作成して、新しい名前を付け、古いモノを削除する必要があります。

$ aws iot update-thing --thing-name "MyLightBulb" --attribute-payload "{\"attributes\": {\"wattage\":\"150\", \"model\":\"456\"}}"

UpdateThing コマンドでは、出力が生成されません。DescribeThing コマンドを使用して、結果を表示できます。

$ aws iot describe-thing --thing-name "MyLightBulb" { "attributes": { "model": "456", "wattage": "150" }, "version": 2, "thingName": "MyLightBulb" }

モノの削除

DeleteThing コマンドを使用すると、モノを削除できます。

$ aws iot delete-thing --thing-name "MyThing"

このコマンドは、削除が成功した場合、または存在しないモノが指定された場合、エラーなしで正常に終了します。

モノにプリンシパルをアタッチする

物理デバイスが AWS IoT と通信するには X.509 証明書を持っている必要があります。Registry 内でデバイスを表しているモノと、デバイスの証明書を関連付けることができます。証明書をモノにアタッチするには、AttachThingPrincipal コマンドを使用します。

$ aws iot attach-thing-principal --thing-name "MyLightBulb" --principal "arn:aws:iot:us-east-1:123456789012:cert/a0c01f5835079de0a7514643d68ef8414ab739a1e94ee4162977b02b12842847"

AttachThingPrincipal コマンドでは、出力が生成されません。

モノからプリンシパルをデタッチする

DetachThingPrincipal コマンドを使用すると、モノから証明書をデタッチできます。

$ aws iot detach-thing-principal --thing-name "MyLightBulb" --principal "arn:aws:iot:us-east-1:123456789012:cert/a0c01f5835079de0a7514643d68ef8414ab739a1e94ee4162977b02b12842847"

DetachThingPrincipal コマンドでは、出力が生成されません。