大瀧隆太(430)38この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。IoTはメッセージブローカーを基盤とするIoTデバイスとAWSサービスを連携させるサービスです。Shadowsがあります。Shadowsの概念と仕組みを図と実行例を用いてご紹介します。Shadowsを利用します。Shadows(デバイスの影像)を利用することができます。IoTがその内容を管理することで実現しています。状態情報は任意の項目が設定でき、デバイスが報告する項目(reported)とアプリケーション操作による望ましい項目(desired)のそれぞれが保存されます。ここでは例としてデバイスの稼働状態を示す'power'という項目を扱ってみましょう。デバイスの稼働状態がオフ、アプリケーションによってパワーオンが行われるとすると、reportedにはpower:off、desiredにはpower:onが入ることになります。APIによってデバイスと管理アプリケーションの両方からSubscribeもしくはポーリングし、変更があったらそれに合わせて処理を実行することになります。先ほどの管理アプリケーションによるパワーオンが行われる場合、デバイスはreported.powerとdesired.powerが異なることを検知し、パワーオン処理を実行、完了したらreported.power:onに変更します。Shadowsの状態をそれぞれ指すと説明できるわけですね。概念を紹介しましたので、実際に動かしてその様子を見てみましょう。APIでやってみます。IoTの管理画面から、状態情報を持つThingを作成します。thing]をクリックし、[Name]に適当なデバイス名(今回はsensor1)を入力、[Create]をクリックして作成します。APIの場合は、デバイス名を押さえておけばOKです。MQTTの場合は、Publishするトピック名($aws/things/<デバイス名>/shadow)を押さえておきましょう。初期のデバイスの状態としてパワーオフを登録します。update-thing-shadowコマンドで状態情報を更新します。ルート階層のstateは固定で、その下のreported以下に自由に要素を定義することができます。IoTからのレスポンスが格納されます。レスポンスにはstateに加えてリクエストのバージョンとリクエストのタイムスタンプなどが付与されます。1444490470}続いて、管理アプリケーションからパワーオンで更新してみます。1444490744}デバイスと管理アプリケーションで更新するためのAPI/Topicは共通ですが、それぞれreported/desiredで区別することがわかりますね。get-thing-shadowで確認してみます。IoTによって、デバイスと管理アプリケーションの両方の情報が扱われていることがわかりますね。state.deltaにはデバイスの状態と望ましい状態の差分が抽出されるので、デバイスからのSubscribe時に対応するべき処理を容易に判断することができます。いうことで、デバイス側でパワーオン処理を行ったとしてstate.reported.powerをonにアップデートします。outfile3.jsonでは、再度状態情報を見てみます。1444490932}state.deltaが無くなり、差分が無くなっていることがわかりますね。IoTによってインクリメントされるため、古いバージョンへの先祖帰りを防いだり、他のPublisherによる更新を検知する手段として利用できます。2の指定を入れたところ、既にバージョン3になっているため更新が拒否されました。CLIでの実行例をご紹介しました。SDKが利用されることが多いと思いますが、概念としては今回の例で十分ご理解いただけるのではないでしょうか。4,300,576ゲストブロガーです。株式会社ソラコムでソリューションアーキテクトやってます。クラウドの自動化やIoT周りについての記事を書きます。〜ITエンジニアのお仕事とホンネ〜2月19日に新卒向けの会社説明会〜ITエンジニアのお仕事とホンネ〜を開催します。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。使いたいときの注意点を書きました。EC2)環境において、不要な踏み台サーバをなくすことができる便利なアップデートです。環境をDockerで構築してみました。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介252SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健231こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。