...
※WSL環境の場合、これらの拡張機能をWSL環境でも有効にする必要があります。WSL内の任意プロジェクトを開いた状態(WSLで任意プロジェクトフォルダにcdした状態で code .
コマンドなどでVIsual Studio Codeを開く)で拡張機能メニューの「Install in WSL: Ubuntu-20.04」を押下してWSL内にもインストールしてください。
...
Info |
---|
「Install in WSL: Ubuntu-20.04」が表示されない場合、検索ウィンドウに「Dev Containers」と入力してDev Containersをインストールしてください。次に検索ウィンドウに「Remote Development」と入力してRemote Developmentをインストールしてください。 その後、一度Visual Studio Codeを終了させ再度 |
i-PROカメラをAzure IoTに登録する
事前に、i-PROカメラおよび開発用PCをインターネット接続し、Azure IoTと通信できる状態にしておいてください。ここでは下記図のようなネットワーク構成になっている想定で説明します。
...
Note |
---|
ファームウェアVer. 3.20以降では、セキュリティ対策のためにDocker拡張モジュール Ver. 1.01が動作しなくなります。00未満が動作しなくなります。 ファームウェアVer. 3.20以降では、Docker拡張モジュール Ver. 21.00をご使用下さい。00以降をご使用下さい。 初めにファームウェアをVer. 3.20に更新後、Docker拡張モジュールの更新してください。 |
...
Azure IoT Edge Hubにi-PROカメラを登録する
ご利用の環境に合わせ、以下の二通りの方法でi-PROカメラをAzure IoT Hubに登録することができます。
対象キーを使用したシングルデバイスのプロビジョニング
X.509証明書を用いたDPSを使用した大規模なプロビジョニング
対象キーを使用したシングルデバイスのプロビジョニング
Azure Portal にログインします。
...
IoT Hubを選択してリストから各自で準備した項目を選択します。ここでは例として「CV5xIoTHub2」を選択します。
...
Info |
---|
応答が表示されるまで初回は時間がかかります。 |
...
X.509証明書を用いたDPSを使用した大規模なプロビジョニング
Info |
---|
この方法はファームウェアバージョン V3.40 以降で対応しています。 この方法を使用してプロビジョニングする場合、詳細に付きましては Development Partner Portal よりお問い合わせください。 現時点では、X.509証明書を用いた方法のみ対応しており、TPM及び対象キーを用いることはできません。 |
Azure IoTでは大量のデバイスをプロビジョニングする方法として、DPS (Azure IoT Hub Device Provisioning Service) を用いた方法が用意されています。 i-PROカメラでは、X.509証明書を用いたDPSによるプロビジョニングに対応しています。
クラウド側の情報については、マイクロソフト社の以下説明ページをご覧ください。
Linux で X.509 証明書を使用して IoT Edge デバイスを大規模に作成する - Azure IoT Edge | Microsoft Learn
以下では、カメラの設定方法のみ記載いたします。
登録シーケンス
以下にプロビジョニングにおけるシーケンス図を示します。
Drawio | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
証明書及び鍵ファイルのアップロード
カメラ個別のX.509証明書及び秘密鍵は外部からカメラにアップロードする必要があります。 以下のCGIを使用してアップロードしてください。CGIの詳細は、 Development Partner Portal よりお問い合わせください。
Code Block |
---|
/cgi-bin/install_cert |
アップロードされる証明書+鍵ファイルのフォーマットはpem形式のフルチェーンの証明書ファイルに、pem形式の鍵ファイルを連結したものとなります。フォーマット例を以下に示します。 以下の例では、3枚の証明書のあとに秘密鍵を連結しています。
Code Block |
---|
-----BEGIN CERTIFICATE-----
MIIDYTCCAkmgAwIBAgIQVBOqzzK/dbtIE3elFjx46zANBgkqhkiG9w0BAQsFADAa
(snip)
qssA27k=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(snip)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(snip)
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCjNB6HddbzJRw9
(snip)
/eJWVZcY33jDbjK77NZBfdI=
-----END PRIVATE KEY----- |
curlを使用してアップロードする場合の文字列例を以下に示します。
Code Block |
---|
curl --anyauth -u admin:Admin123 -F "fileName=@AzureDpsCerts_key.pem" -F cause=AzureDPS -F Randomnum=XXXXXXXXXX -X POST http://192.168.0.10/cgi-bin/install_cert |
Azure IoTの設定
証明書と鍵をアップロードした後は、以下のcgiを送信することでプロビジョニングに必要な情報をカメラに設定することができます。idScopeはAzure Portalの対象のAzure IoT Hub Device Provisioning Service (DPS) の概要ページに表示される ID スコープの値を設定します。
Code Block |
---|
/cgi-bin/cadam.cgi?methodName=setConfigIoTComponent&componentType=AzureIoT&connectionType=DPS_X509&idScope=[idScope] |
curlを使用して設定を行う場合の文字列例を以下に示します。
Code Block |
---|
curl --anyauth -u admin:Admin123 http://192.168.0.10/cgi-bin/cadam.cgi?methodName=setConfigIoTComponent&componentType=AzureIoT&connectionType=DPS_X509&idScope=0XXXXXXXXXX |
プロビジョニングの開始
上記二項目の設定が終わった後は、以下のcgiを送信することでプロビジョニングを開始することができます。
Code Block |
---|
/cgi-bin/cadam.cgi?methodName=startIoTComponent |
成功した場合、Azure IoT Hubとの接続が確立します。
コンテナレジストリの準備
使用するコンテナレジストリの選択
...
メニューの「表示」->「コマンドパレット」から「Azure IoT Hub: IoT Hubを選択」を選択し、登録済みのサブスクリプション->IoT Hubを選択する。選択後、左下の「AZURE IOT HUB」以下にIoT Hubおよび登録されているデバイスが表示されます。
...
Info |
---|
メニューの「表示」->「コマンドパレット」から登録済みのサブスクリプションが表示されない場合、事前に該当するサブスクリプションを選択しておいてください。>「コマンドパレット」から登録済みのサブスクリプションが表示されない場合、コマンドパレットに「sub」と入力し該当するサブスクリプションを選択しておいてください。 |
これで開発環境の構築は完了です。
WSL環境でうまくいかない場合のチェックポイント
...