本記事はソラコムが提供する「SORACOM公式ブログ」に掲載された「SORACOM KryptonでAzure IoT Edgeデバイスを登録する」を再編集したものです。
こんにちは、ソラコムの須田(ニックネーム:kei)です。
SORACOM Kryptonはブートストラップの連携先としてAzure IoT Hub Device Provisioning Service(以降DPS)をサポートしています。本ブログでは、SORACOM Kryptonを使って、デバイスをAzure IoT EdgeとしてAzure IoT Hubへ登録する方法をご紹介します。
なお本ブログでは、SORACOM Kryptonを使ったAzure IoT Hubへのデバイス登録の詳細手順はリンク先のドキュメントを参照いただき、Azure IoT Edgeとして登録するための追加手順を中心にご紹介します。
SORACOM Kryptonとは
IoT において重要な課題の一つに、デバイスとクラウドサービス間の認証があります。たとえばデバイスのデータを Azure IoT Hub へ安全に送信したいのであれば、認証が必要です。このとき、証明書などの認証情報をどのようにデバイスへ配布すればよいでしょうか。デバイスが 1 台であれば PC をデバイスに接続して手作業で配布しても良いかもしれません。しかし 100 台、1000 台になったらどうでしょう。セキュア・プロビジョニングサービスの SORACOM Krypton は、デバイスへ認証情報を安全かつ効率的に配布するために利用できます。
手順
デバイスへAzure IoT Edgeをインストールする
事前にMicrosoftのドキュメントをもとにデバイスへIoT Edgeをインストールしておいてください。IoT Edgeの設定ファイルの編集や動作確認は『デバイスを登録する』、『動作確認をする』にて実施します。
事前セットアップ
ユーザードキュメントに沿ってAzureやSORACOMのセットアップ、IoT デバイスとSORACOM IoT SIM のセットアップをします。IoT デバイスはSORACOM Onyx LTE USBドングルで IoT SIM を利用しています。
Azure IoT Edgeデバイスとして登録する際は、「Azure IoT Hub Device Provisioning Service に登録グループを追加する」にて、「IoT Edge デバイス」をTrue
にしてください。
デバイスを登録する
デバイスをAzure IoT EdgeデバイスとしてAzure IoT Hubへ登録していきます。SORACOM KryptonのAPIを実行するまでの流れは『ステップ 6: Krypton を使用して IoT Hub にデバイスを登録して接続する』と同様です。以下のAPIを順次実行していきます。
- registerAzureIotDevice: Azure IoT Hubへのデバイスの登録
- getAzureIotDeviceRegistrationStatus: 登録したAzure IoT Hubデバイス用の認証情報の取得
2.で取得した認証情報をもとにAzure IoT Hubへ接続をします。Azure IoT Edgeデバイスとして接続する際には取得した認証情報をもとにAzure IoT Edgeの設定ファイル(config.toml)を作成する必要があります。
SORACOM Kryptonを介してAzure IoT Edgeデバイスを登録する場合、SORACOM Kryptonがデバイスに代わってDPSへデバイス登録のためのAPIを実行します。そして、デバイスはSORACOM KryptonのgetAzureIotDeviceRegistrationStatus APIにより取得したデバイス証明書を用いて、直接Azure IoT Hubへ接続します。そのため、Azure IoT Edgeの設定ファイルであるconfig.toml内で指定するprovisioning
のsource
はmanual
となります。デバイスが直接DPSと連携しないのでsource
はdps
とならない点に注意してください。
[provisioning] source = "manual" # getAzureIotDeviceRegistrationStatus APIのレスポンスにあるhostの値を指定 iothub_hostname = "IOTHUB_HOSTNAME" # getAzureIotDeviceRegistrationStatus APIのレスポンスにあるdeviceIdの値を指定 device_id = "DEVICE_ID" [provisioning.authentication] method = "x509" # getAzureIotDeviceRegistrationStatus APIのレスポンスにあるcertificateの値をファイル保存し、そのファイルパスを指定 identity_cert = "file:///<path to device cert>" # getAzureIotDeviceRegistrationStatus APIのレスポンスにあるprivateKeyの値をファイル保存し、そのファイルパスを指定 identity_pk = "file:///<path to private cert>"
動作確認をする
最後に動作確認を進めます。デバイス上でAzure IoT EdgeがAzure IoT Hubと連携し正常に稼働できているかを確認します。まず設定ファイルの内容をIoT Edgeへ反映します。
sudo iotedge config apply
次にMicrosoftドキュメントをもとにAzure IoT EdgeへモジュールデプロイとAzure IoT Edgeのランタイムの動作確認及びデプロイしたモジュールが動作していることを確認してください。Azure IoT Edgeのランタイムが正常に稼働し、edgeAgentモジュールのRuntime Status
がrunning
となっていればプロビジョニングは成功です。
さいごに
SORACOM Kryptonにより、デバイスをAzure IoT EdgeデバイスとしてAzure IoT Hubへ登録する方法をご紹介しました。SORACOM Kryptonを利用することで、デバイスの初期キッティングとしてAzure IoT Edgeのデバイス登録を自動化できます。ぜひお試しください。
― ソラコム須田(kei)
投稿 SORACOM KryptonでAzure IoT Edgeデバイスを登録する は SORACOM公式ブログ に最初に表示されました。
この連載の記事
-
第485回
デジタル
省電力通信LTE-M対応の小型マイコンボードをSORACOM IoTストアで提供開始、ローコードIoTアプリケーションビルダー「SORACOM Flux」の料金プランを発表 takuyaのほぼ週刊ソラコム 11/30-12/13 -
第484回
デジタル
AWS re:Invent 2024に見る、IoTの成熟と生成AIとの融合 -
第483回
デジタル
二歳半の子供を持つエンジニアの一日の働き方 -
第482回
デジタル
VPN 対応の産業用 LTE ルーターの価格改定【30%オフ】 -
第481回
デジタル
時間帯に応じたメール通知の構築方法 : SORACOM LTE-M Button と SORACOM Flux の活用 -
第480回
デジタル
SORACOM Flux 料金プランを発表しました -
第479回
デジタル
12/11-13 商業施設・店舗DX展に出展:最新IoTソリューションや事例をご紹介 -
第478回
デジタル
コープさっぽろが、クラウド型カメラ「ソラカメ」を全店舗で導入、現場主導の改善を実現、サーバールームの異常な温度上昇を通知する新規掲載レシピ takuyaのほぼ週刊ソラコム 11/16-11/29 -
第476回
デジタル
WebRTCとMedia over QUIC Transportの性能比較 -
第475回
デジタル
SORACOM Lagoon 3 の [Math] 機能で、複数データを組み合わせた通知の手順
この記事の編集者は以下の記事もオススメしています
-
デジタル
IoTの「時系列データ」をChatGPTで分析・未来予測するには? ― IoT-Tech Meetup レポート -
デジタル
IoTを体験できる、3つのワークショップのご紹介 【SORACOM Discovery 2023】 -
デジタル
グローバルDXもワンストップで支援|KDDI【SORACOM Discovery 2023】 -
デジタル
大規模事業から研究的PoCまで二人三脚でサポート|Fusic【SORACOM Discovery 2023】 -
デジタル
ソラカメ専用セルラーパック ルーター新機種(L13)提供開始 -
デジタル
ColaboratoryでChatGPTのAPIを使うには?― IoT-Tech Meetup #1