2017-12-14 8 views
1

Python、Docker、iotedgectlがインストールされたAzure上で動作する標準D2s v3(2 vcpus、8 GBメモリ)を使用しています。Azure IoT Edgeランタイムのセットアップに失敗しました。

私は

iotedgectl setup --connection-string "HostName=***.azure-devices.net;DeviceId=***;SharedAccessKey=***" --auto-cert-gen-force-no-passwords 

を実行すると、私はすべてのアイデア次のエラー

ERROR: Error parsing user input data: Invalid hostname. Hostname cannot be empty or greater than 64 characters: ****.nwq4jyrgm4zejiseat2enywp0h.fx.internal.cloudapp.net. 
ERROR: Please fix any input values and re-run 'iotedgectl setup' 
ERROR: Errors were observed. Return Code: 1 

を取得しますか?

答えて

2

IoT Edgeランタイムでは、エッジハブのTLSサーバー証明書を生成するためにホスト名が必要です。これにより、モジュールとリーフデバイス(ゲートウェイシナリオ用)間の検証可能なTLS接続が可能になります。 RFC3280によると、SSL証明書の共通名の最大長は64文字です。 (ub-common-name-lengthを検索する)。

このエラーは、ホスト名がこの制限を超えていることを示しています。既定では、iotedgectlツールはホストマシンのホスト名を検出して使用します。残念ながら、Azure Windows VMは非常に長いホスト名を持っています。

これを解決するには、ホスト名を設定し、自動検出ので、同様にバイパスすることができます:あなたはゲートウェイとしてのIoTエッジを使用することに興味がある場合

iotedgectl setup --connection-string "<conn string>" --auto-cert-gen-force-no-passwords --edge-hostname <a shorter hostname> 

、より多くの情報がここにあります:https://docs.microsoft.com/en-us/azure/iot-edge/how-to-create-transparent-gateway

関連する問題