Azure IoT Edge の GA (一般提供) について

Azure IoT 開発サポートチームの S.M です。   2018 年 6 月 27 日に Azure IoT Edge が GA (一般提供) となりました。IoT Edge は主に直接インターネット経由で IoT Hub に接続できないデバイスに対してクラウドテクノロジーを提供するための製品になります。GA に伴い行われた主な更新は以下の通りになります。   ● IoT EdgeのソースコードはGitHubから入手いただけるようになりました。   ● IoT Edge のランタイムはオープンソースコンテナーの Moby でサポートされるようになりました。 *Docker CE and Docker EEも引き続き利用可能ですが、Microsoft はこれら製品の不具合などに対して修正ができないことから、Moby の利用を推奨しています。なお、Preview時に作成いただいた既存のDockerベースのモジュールは引き続きそのままご利用いただけます。   ● IoT Edge デバイスの Certification プログラムが開始されました。なお、IoT Edge デバイスCertification の取得は必須ではございません。   ●…


IoT Hub、IoT Edge のゲートウェイとリーフデバイスの時刻について

IoT Hub、IoT Edge のゲートウェイとリーフデバイスの時刻が一致しない場合、接続が行えなくなる事象が発生する場合があります。   IoT Edge のゲートウェイは、リーフデバイスの代わりに、IoT Hub とセキュアな接続を行うために、SAS トークンを使用します。 そして、このSAS トークンは、生成を行うクライアントの現在時刻を元に有効期限を設定しており、1 時間に1 回生成され直されます。 実際、edgeHub のログに以下のように、 “Getting new token from the client…” のログが定期的に表示されます。   [INF] – Attempting to connect to IoT Hub for client <リーフデバイス名> via AMQP… [INF] – Existing token not found for <リーフデバイス名>. Getting new token from the client… [INF] – Device connection removed for device <リーフデバイス名>   – SAS…


Azure Portal の IoT Hub ブレードが正常に表示されない場合の切り分け方法

Azure IoT 開発サポートチームの S.M です。 Azure Portal 上で IoT Hub (またはその他サービスのブレードも含め) の表示が正常に行われない現象が発生した場合の切り分け方法についてご案内いたします。この現象は、ブレード内の表示内容に更新 (新しいサービスのボタンが追加された等) が行われた場合、ブラウザが持つキャッシュ情報との整合性がとれないため発生する場合があります。この現象をご確認いただいた際は、切り分けのため、ブラウザのキャッシュをクリアしていただくか、キャッシュの影響を受けないブラウザの InPrivate モードをご利用いただき、表示が改善されるかご確認ください。 こちらのブログでは Internet Explorer と Google Chrome について対処策をご紹介いたします。この方法は IoT Hub に限らず Azure ポータルの表示で何か問題があった際に、最初の切り分けとしてご案内させていただくことが多いものとなりますため、他サービス含め今後もし同様の事象がありました際にお役に立ちましたら幸いです。 なお、こちらの切り分けを行っていただいても問題が解決されない場合は弊社サポートまでお問い合わせください。 ————————————————————————  1. InPrivate ブラウズ モードの起動方法 (Internet Explorer) ———————————————————————— InPrivate ブラウズ モードでは、既存のブラウザー キャッシュやセッションに影響されない通信が可能となります。 そのため、ブラウザーのキャッシュなどの影響を受けている事象について、回避が可能となります。   Internet Explorer を起動します。 Ctrl + Shift + P を押下し InPrivate ブラウズ モードを起動します。…


クラウド側から IoT Edge 上のモジュールの状態を監視する方法

クラウド側から IoT Edge 上のモジュールの状態を監視する方法をご案内します。 ただし、Azure IoT Edge は現在プレビューであるため、一般公開時には変更となる可能性がございます点にご留意ください。   1. Azure ポータルから状態を確認 ======================= 以下の手順でAzure ポータルよりご確認いただくことができます。   (1)         Azure ポータルのIoT Hub の左側のペインから [IoT Edge (preview)] をクリックし、右側のペインで IoT Edge デバイスの デバイス ID をクリックします。     (2)         [デバイスの詳細] 画面の下部の Deployed Modules タブで$edgeAgent と$edgeHub などの各モジュールのRUNTIME STATUS がrunning となっていることが確認できます。     2. プログラムから確認する手順 ======================= プログラムから監視する場合は、HTTP REST API を利用することでモジュール ツインから状態を取得可能です。  …


Azure IoT Edge で透過的なゲートウェイ デバイスを作成する手順の一例

(更新 2018/07/20) – IoT Edge の一般提供 (GA) 開始後の情報について追記しました。   IoT Edge は現在プレビューですが、「透過的なゲートウェイとして動作する IoT Edge デバイスを作成する – プレビュー」のドキュメントの具体的な手順に関するご質問をいただいておりますので、私の手元で確認した手順を一つの構成例としてご案内します。   弊社が公開している構成例として、すでに以下のようなページがありますが、今回ご案内する手順では、両方を参考にして、後者の、IoT Edge のゲートウェイをLinux (ローカルPC 上の仮想マシン)、IoT デバイスをRaspberry Pi 3 としています。   ・IoT Edge のゲートウェイがWindows、IoT デバイスがRaspberry Pi 3 の例   IOT EDGE PYTHON RASPBERRYPI CONNET TRANSPARENT GATEWAY < https://github.com/Azure-Samples/iot-edge-python-raspberrypi-connect-transparent-gateway >   ・IoT Edge のゲートウェイとIoT デバイスをともにLinux のAzure VM 1 つの中に持つ例…


IoT Edge ランタイムのバージョンアップの手順

IoT Edge ランタイムのバージョンアップの手順をご案内します。 ただし、Azure IoT Edge は現在プレビューであるため、一般公開時には変更となる可能性がございます点にご留意ください。   IoT Edgeランタイムのバージョンアップの手順   IoT Edge ランタイムには、Edge Agent とEdge Hub が含まれるため、それぞれのバージョンアップの手順をご案内いたします。   1-1.      Edge Agent のバージョンアップ手順   Edge Agent は、プレビュー段階では、クラウドからバージョンアップする方法はありません。そのため、IoT Edge 上で以下のコマンドを実行します。   (A)         すでに IoT Edge ランタイムがデプロイされており、その Edge Agent のバージョンアップを行う場合   sudo iotedgectl update –image microsoft/azureiotedge-agent:1.0.0-preview022   上記コマンドの「microsoft/azureiotedge-agent:1.0.0-preview022」の部分は、以下のサイトで公開されているレポジトリからお選びいただけます。   microsoft/azureiotedge-agent < https://hub.docker.com/r/microsoft/azureiotedge-agent/tags/ >   IoT Edge ランタイム実行中に上記コマンドを実行していただくことができます。…


IoT Edge ランタイムの再起動が必要な場合について

IoT Edge は現在プレビューですが、IoT Edge ランタイムの再起動(iotedgectl restart)が必要な場合についてのご質問と回答をご案内します。   Q. IoT Edge ランタイムが再起動が必要な場合とは、どのようなオペレーションを実施した場合でしょうか?例えば、運用中にIoT Edge 配下に新規デバイスを追加した場合、IoT Edge ランタイムの再起動が必要になりますでしょうか?   A. IoT Edge ランタイムの再起動が必要となる場合は、「iotedgectl setup」のようなランタイム自体の設定変更を行った場合です。例えば、Edge ランタイムの接続文字列(connection string) を変更したり、モジュールのレジストリの資格情報(container registry credential) を追加する場合などが挙げられます。   IoT Edge配下に新規デバイスを追加した際、すなわちIoT Edge ゲートウェイに新しいリーフデバイスをMQTT プロトコルで接続する時に、IoT Edge ランタイムの再起動は必要ありません。   Azure ポータルからの変更([Specify Routes] でルート変更する場合も含む) では、IoT Edge ランタイムを再起動する必要はありません。     上記の内容がお役に立てば幸いです。   Azure IoT 開発サポートチーム 津田  


タイムアウトエラーについて (MQTT / IoT Device SDK for Java)

今回は IoT Device SDK for Java で MQTT プロトコルを利用した時のタイムアウト値について説明いたします。 Device SDK for Java における MQTT プロトコルでは、IoT Hub とのキープアライブのタイムアウト値として 230 秒という値が設定されております。このキープアライブタイムアウト値はハードコードされており、デバイス アプリ側からは変更することができません。また、キープアライブのインターバル値も 230 秒で、こちらも変更できません。 これは SDK の MqttConnection.java に定義されています。     //mqtt connection options     private static final int KEEP_ALIVE_INTERVAL = 230; ソースコードはこちら https://github.com/Azure/azure-iot-sdk-java/blob/master/device/iot-device-client/src/main/java/com/microsoft/azure/sdk/iot/device/transport/mqtt/MqttConnection.java タイムアウトが発生すると、次のようなエラーメッセージが出力されます。 Timed out as no activity, keepAlive=230,000 lastOutboundActivity=2,623,682,362,159 lastInboundActivity=2,623,672,132,304 time=2,623,672,592,158 lastPing=2,623,672,362,159 [水 03…


Azure IoT SDK の Long Term Support (LTS) Branch について

こんにちは。Azure IoT 開発サポートチームの S.M です。   Azure IoT SDK は概ね1か月に1回から2回更新されていますが、長期サポートが行われる LTS (Long Term Support) 版のブランチがリリースされています。詳細は 2018 年 2 月 12 日のアナウンスをご確認ください。原文および翻訳版の内容は以下のサイトからご確認いただけます。   Azure IoT SDKs released new Long-Term Support branch https://azure.microsoft.com/en-us/blog/iot-sdk-lts-branch/   Azure IoT SDK で新しい Long Term Support Branch をリリース https://blogs.technet.microsoft.com/jpitpro/2018/02/15/iot-sdk-lts-branch/    LTS版は6か月ごとにリリースされ、NuGet、PiPy、apt-get、Maven、NPM などの各パッケージマネージャーから入手いただけます。    頻繁にSDKのパージョンがアップデートされることにお悩みの方はLTS版のご活用をご検討ください。


IoT Hub のデータ保持期間について

IoT Hub のデータ保持期間についてのご質問と回答をご案内します。   Q. IoT Hub は Stream Analytics などにデータを送信できない場合は内部にデバイスからの情報を溜め込むようになっているようですが、この情報の保持期間はどのくらいになるでしょうか?また保持期間が存在する場合、保持期間は1日といった日単位になるのかそれともデータ容量によって溜め込む期間がきまるのでしょうか?   A. IoT Hub はデバイスから受け取ったメッセージデータを 1 日単位で保存しています。IoT Hub のデータを保存する期間を「リテンション期間」と呼んでおり、こちらは既定で1日となっています。なお、データの量には影響されません。データの保持期間は最大で7日まで保持するよう設定いただくことが可能です。この情報は下記資料にも公開されています。   ・デバイスからクラウドへのメッセージを組み込みのエンドポイントから読み取る https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-devguide-messages-read-builtin   ***上記資料より抜粋*** リテンション期間 このプロパティは、IoT Hub によってメッセージが保持される期間を日数で指定します。 既定は 1 日ですが、7 日間に増やすことができます。 ************************         上記の内容がお役に立てば幸いです。   Azure IoT 開発サポートチーム 津田