2017-12-14 1 views
1

Ich habe Standard D2s v3 (2 vcpus, 8 GB Arbeitsspeicher) auf Azure mit Python, Docker und iotedgectl installiert.Setup der Azure IoT Edge konnte nicht ausgeführt werden: Ungültiger Hostname

Als ich

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

bekomme ich folgende Fehler

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 

irgendwelche Ideen?

Antwort

2

Die IoT Edge-Laufzeitumgebung erfordert einen Hostnamen zum Generieren eines TLS-Serverzertifikats für den Edge-Hub. Dies ermöglicht überprüfbare TLS-Verbindungen zwischen Modulen und Blattgeräten (für Gateway-Szenarien). Pro RFC3280 beträgt die maximale Länge des allgemeinen Namens für ein SSL-Zertifikat 64 Zeichen. (Suche nach ub-common-name-length).

Dieser Fehler zeigt an, dass der Hostname diesen Grenzwert überschreitet. Standardmäßig erkennt und verwendet das Tool iotedgectl den Hostnamen des Host-Computers. Leider haben Azure Windows-VMs sehr lange Hostnamen.

Um dies zu beheben, können Sie den Hostnamen festlegen können und umgehen die automatische Erkennung in etwa so:

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

Wenn Sie sich mit der IoT Edge-als Gateway interessiert sind, gibt es mehr Informationen hier: https://docs.microsoft.com/en-us/azure/iot-edge/how-to-create-transparent-gateway

Verwandte Themen