如何使用注册表管理事物 - AWS IoT Core

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

如何使用注册表管理事物

您可以使用 AWS IoT 控制台、 AWS IoT API 或与注册表 AWS CLI 进行交互。以下各部分展示了如何使用 CLI 与 Registry 进行交互。

命名事物对象时:
  • 请勿在事物名称中使用个人身份信息。事物名称可以出现在未加密的通信和报告中。

创建事物

以下命令显示如何使用 CLI 中的 AWS IoT CreateThing命令来创建事物。您无法在创建事物后更改其名称。要更改事物的名称,请创建一个新事物,为其指定新名称,然后删除旧事物。

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

CreateThing 命令显示新事物的名称和 Amazon Resource Name (ARN):

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

我们建议不要在您的事物名称中使用个人身份信息。

有关更多信息,请参阅《 AWS CLI 命令参考》中的 create-thing

列出事物

您可以使用 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" } ] }

有关更多信息,请参阅《 AWS CLI 命令参考》中的 list-things

描述事物

您可以使用 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" } }

有关更多信息,请参阅《命令参考》中的 describe- thing AWS CLI 。

更新事物

您可以使用 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" }

有关更多信息,请参阅《 AWS CLI 命令参考》中的 update-thing

删除事物

您可以使用 DeleteThing 命令删除事物:

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

如果删除成功或者您指定的事物不存在,此命令将成功返回且没有错误。

有关更多信息,请参阅《 AWS CLI 命令参考》中的 delete-thing

将委托人附加到事物

物理设备必须具有 X.509 证书才能与之通信。 AWS IoT您可以将设备上的证书与 Registry 中代表该设备的事物关联。要将证书附加到您的事物,请使用 AttachThingPrincipal 命令:

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

AttachThingPrincipal 命令不会生成任何输出。

有关更多信息,请参阅attach-thing-principal《 AWS CLI 命令参考》。

将委托人与事物分离

您可以使用 DetachThingPrincipal 命令将证书与事物分离:

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

DetachThingPrincipal 命令不会生成任何输出。

有关更多信息,请参阅detach-thing-principal《 AWS CLI 命令参考》。