如何使用注册表管理事物 - Amazon IoT Core
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

如何使用注册表管理事物

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

命名事物对象时:

  • 您不应在您的事物名称中使用个人身份信息。事物名称可以出现在未加密的通信和报告中。

  • 你不应该在事物名称中使用冒号字符 (:)。冒号字符被其他Amazon IoT服务,这可能会导致它们不正确地解析具有事物名称的字符串。

创建事物

以下命令说明如何使用 Amazon IoTCreateThing 命令从 CLI 创建事物。您无法在创建事物后更改其名称。要更改事物的名称,您必须创建一个新事物,为其指定新名称,然后删除旧事物。

$ 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命令,请参阅事物查询示例和 CLI 引用search-index命令。

描述事物

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

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

将委托人附加到事物

物理设备必须具有 X.509 证书才能与 Amazon IoT 通信。您可以将设备上的证书与 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 命令不会生成任何输出。