команда aws iot-data и зарезервированные темы AWS ($)

Я новичок в AWS IoT и теперь пытаюсь поиграть с существующими ресурсами, чтобы понять основную концепцию. Я столкнулся со странным поведением при использовании команды aws iot-data при попытке опубликовать данные в одной из зарезервированных тем AWS. Допустим, я хочу обновить имя Shadow, называемое stubShadow какой-то stub вещи (я использую вкладку Test в AWS IoT Dashboard):

 aws iot-data update-thing-shadow --thing-name stub --shadow-name stubShadow \
    --cli-binary-format raw-in-base64-out \
    --payload '{"state":{"desired":{"ColorRGB":[0,11,11]}},"clientToken":"21b21b21-bfd2-4279-8c65-e2f697ff4fab"}' /dev/stdout

и он работает очень хорошо, я могу наблюдать $aws/things/stub/shadow/name/stubShadow/update/accepted тему на предмет обновлений.

Теперь я хочу опубликовать сообщение, используя аргумент topic. Вот пример:

aws iot-data publish --topic "$aws/things/stub/shadow/name/stubShadow/update" \
    --cli-binary-format raw-in-base64-out \
    --payload '{"state":{"reported":{"ColorRGB":[0,11,11]}},"clientToken":"21b21b21-bfd2-4279-8c65-e2f697ff4fab"}'

и ничего не происходит ... Интересно, что не так с этой командой с отправкой прямого сообщения в тему AWS Service? Я что-то упускаю? Потому что для обычных (созданных вручную) тем он работает хорошо.


person machin    schedule 19.10.2020    source источник


Ответы (1)


Как говорится в документе,

payload - это представление сообщения json в кодировке base64

{"state":{"reported":{"ColorRGB":[0,11,11]}}}

console.log(btoa(JSON.stringify({"state":{"reported":{"ColorRGB":[0,11,11]}}})))

полезная нагрузка: eyJzdGF0ZSI6eyJyZXBvcnRlZCI6eyJDb2xvclJHQiI6WzAsMTEsMTFdfX19

aws iot-data publish --topic "$aws/things/stub/shadow/name/stubShadow/update" --payload 'eyJzdGF0ZSI6eyJyZXBvcnRlZCI6eyJDb2xvclJHQiI6WzAsMTEsMTFdfX19'

person Ozan ERTÜRK    schedule 20.10.2020
comment
Удалось ли вам наблюдать изменения в среде AWS IoT Test, поскольку в моем случае результат такой же - ничего не происходит. - person machin; 25.10.2020
comment
Да, я смог увидеть изменения, вы также могли посмотреть страницу активности объекта вместо клиента - person Ozan ERTÜRK; 25.10.2020