已知AWS IoT事物名称,如何通过AWS CLI获取其影子名称?
获取AWS IoT事物的影子名称
当你已知AWS IoT事物名称,但aws iot describe-thing的返回结果(示例如下)里不包含影子名称,却需要用aws iot-data get-thing-shadow获取影子内容时,可以按以下方式处理:
{ "defaultClientId": "MyLightBulb", "thingName": "MyLightBulb", "thingId": "40da2e73-c6af-406e-b415-15acae538797", "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyLightBulb", "thingTypeName": "LightBulb", "attributes": { "model": "123", "wattage": "75" }, "version": 1 }
两种影子类型的获取方式
1. 默认影子
每个AWS IoT事物默认自带一个影子,名称固定为$default。直接使用这个名称即可调用命令:
aws iot-data get-thing-shadow --thing-name "你的事物名称" --shadow-name "$default" output.json
2. 自定义命名影子
如果是你或设备创建的自定义影子,AWS CLI没有直接列出事物所有影子的内置命令,但可以通过两种途径获取:
- 调用AWS IoT API:用
aws iot invoke-api调用影子列表接口,替换其中的事物名称和区域:
该命令会返回该事物下所有影子的名称列表,需要确保你的IAM账号有aws iot invoke-api --action GET --resource "/things/你的事物名称/shadows" --region 你的区域iot:GetThingShadows权限。 - 查看配置或设备日志:自定义影子由设备或应用创建,通常会在设备代码、部署配置或IoT控制台的影子历史记录中留存名称,也可以查看设备上报的MQTT交互日志确认。
内容的提问来源于stack exchange,提问作者Shane Bishop
相关产品推荐
相关产品推荐

