แบบฝึกหัด - ตั้งค่าการสื่อสารระหว่างฮับ IoT และ IoT Edge

เสร็จสมบูรณ์เมื่อ

แบบฝึกหัดนี้ใช้ Azure CLI ใน Azure Cloud Shell เพื่อเรียกใช้คําสั่งที่จําเป็น

สกรีนช็อตแสดงวิธีการเชื่อมต่อกับ Azure Cloud Shell

ติดตั้งส่วนขยาย Azure IoT

เพิ่มส่วนขยาย Azure IoT ไปยังอินสแตนซ์ Cloud Shell Azure CLI

az extension add --name azure-iot

โน้ต

บทความนี้ใช้ส่วนขยาย Azure IoT เวอร์ชันใหม่ล่าสุดที่เรียกว่า azure-iot เวอร์ชันดั้งเดิมจะเรียกว่าazure-cli-iot-ext คุณควรมีการติดตั้งเวอร์ชันเดียวเท่านั้นในแต่ละครั้ง เมื่อต้องการตรวจสอบว่ามีการติดตั้งส่วนขยายใดไว้ ให้เรียกใช้az extension list

เรียกใช้ az extension remove --name azure-cli-iot-ext เพื่อเอาส่วนขยายรุ่นดั้งเดิมออก

เรียกใช้ az extension add --name azure-iot เพื่อเพิ่มเวอร์ชันใหม่ของส่วนขยาย

สร้างกลุ่มทรัพยากร

สร้างกลุ่มทรัพยากรที่มีชื่อว่า "IoTEdgeResources" โดยการเรียกใช้คําสั่งต่อไปนี้:

az group create --name IoTEdgeResources --location eastus2

เอาต์พุตจะคล้ายกับรายการต่อไปนี้:

สกรีนช็อตของการสร้างกลุ่มทรัพยากร

สร้างฮับ IoT

โค้ดต่อไปนี้สร้างฮับ ระดับ F1 ฟรีในกลุ่มทรัพยากร "IoTEdgeResources" แทนที่ {hub_name} ด้วยชื่อที่ไม่ซ้ํากันสําหรับฮับ IoT ของคุณ

az iot hub create --resource-group IoTEdgeResources --name {hub_name} --sku F1 --partition-count 2

โน้ต

ถ้าคุณได้รับข้อผิดพลาดเนื่องจากมีฮับฟรีหนึ่งตัวอยู่แล้วในการสมัครใช้งานของคุณ ให้เปลี่ยน SKU เป็น S1 การสมัครใช้งานแต่ละครั้งสามารถมีฮับ IoT ฟรีได้เพียงหนึ่งฮับเท่านั้น ถ้าคุณได้รับข้อผิดพลาดว่าไม่มีชื่อฮับ IoT นั่นหมายความว่าบุคคลอื่นมีฮับที่มีชื่อนั้นอยู่แล้ว

ลงทะเบียนอุปกรณ์ IoT Edge

ใน Azure Cloud Shell ให้ทําตามขั้นตอนเหล่านี้เพื่อสร้างอุปกรณ์ที่ชื่อว่า "myEdgeDevice" ในฮับของคุณ

สร้างข้อมูลประจําตัวอุปกรณ์

อุปกรณ์ IoT Edge ทํางานและมีการจัดการแตกต่างจากอุปกรณ์ IoT ทั่วไป --edge-enabledใช้ค่าสถานะเพื่อประกาศข้อมูลประจําตัวนี้เป็นอุปกรณ์ IoT Edge

สําคัญ

ถ้าคุณเห็นข้อผิดพลาดเกี่ยวกับ "คีย์นโยบาย iothubowner" ให้ตรวจสอบให้แน่ใจว่า Cloud Shell ของคุณใช้ส่วนขยายเวอร์ชัน azure-iot ล่าสุด

คําสั่งต่อไปนี้สร้างข้อมูลประจําตัวของอุปกรณ์:

az iot hub device-identity create --hub-name {hub_name} --device-id myEdgeDevice --edge-enabled

ภาพประกอบแสดงการสร้างข้อมูลประจําตัวอุปกรณ์

เรียกใช้สตริงการเชื่อมต่อ

เมื่อต้องการเรียกใช้สตริงการเชื่อมต่อสําหรับอุปกรณ์ของคุณ ซึ่งเชื่อมโยงอุปกรณ์ทางกายภาพของคุณกับข้อมูลประจําตัวใน IoT Hub ให้ใช้คําสั่งนี้:

az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name} --output table

เอาต์พุตจะคล้ายกับรายการต่อไปนี้:

HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyNodeDevice;SharedAccessKey={YourSharedAccessKey}

คัดลอกค่าของคีย์ connectionString จากผลลัพธ์ JSON และบันทึก ค่านี้คือ สตริงการเชื่อมต่ออุปกรณ์ ซึ่งใช้เพื่อกําหนดค่ารันไทม์ IoT Edge ในส่วนถัดไป

ปรับใช้อุปกรณ์ IoT Edge

ใช้คําสั่ง CLI นี้เพื่อสร้างอุปกรณ์ IoT Edge ของคุณตามเทมเพลต iotedge-vm-deploy ที่สร้างไว้ล่วงหน้า คัดลอกคําสั่งลงในตัวแก้ไขข้อความ แทนที่ตัวแทนข้อความด้วยข้อมูลของคุณ แล้ววางลงในหน้าต่าง bash หรือ Cloud Shell ของคุณ:

az deployment group create \
--resource-group IoTEdgeResources \
--template-uri "https://aka.ms/iotedge-vm-deploy" \
--parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' \
--parameters adminUsername='azureuser' \
--parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name
<REPLACE_WITH_HUB_NAME> -o tsv) \
--parameters authenticationType='password' \
--parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"

ตรวจสอบให้แน่ใจว่ารหัสผ่านของคุณ (adminPasswordOrKey) มีความยาวอย่างน้อย 12 อักขระ และมีสามอักขระต่อไปนี้: อักขระตัวพิมพ์เล็ก อักขระตัวพิมพ์ใหญ่ ตัวเลข และอักขระพิเศษ

อาจใช้เวลาสักครู่ในการสร้างและเริ่มเครื่องเสมือนใหม่ หลังจากการปรับใช้เสร็จสมบูรณ์ คุณจะได้รับผลลัพธ์ที่จัดรูปแบบ JSON ใน CLI ที่ประกอบด้วยข้อมูล SSH เพื่อเชื่อมต่อกับเครื่องเสมือน คัดลอกค่าของรายการ SSH สาธารณะ ในส่วน ผลลัพธ์ :

สกรีนช็อตที่แสดง SSH สาธารณะ

ดูสถานะรันไทม์ IoT Edge

ใช้คําสั่งนี้เพื่อเชื่อมต่อกับเครื่องเสมือนของคุณ แทนที่ azureuser ถ้าคุณใช้ชื่อผู้ใช้อื่นในระหว่างการปรับใช้ VM แทนที่ <DNS-name> ด้วยชื่อ DNS ของเครื่องของคุณ

ssh <admin-username>@<DNS-name>

ตรวจสอบว่ามีการกําหนดค่าอุปกรณ์ IoT Edge หรือไม่

เพื่อตรวจสอบว่า daemon การรักษาความปลอดภัยของ IoT Edge ทํางานเป็นบริการของระบบ หรือไม่ ให้ใช้ iotedge คําสั่ง

สําคัญ

คุณจําเป็นต้องมีสิทธิ์การใช้งานที่ยกระดับเพื่อเรียกใช้คําสั่ง iotedge

เรียกใช้คําสั่งต่อไปนี้เพื่อตรวจสอบสถานะของอุปกรณ์ IoT Edge:

sudo systemctl status iotedge

ผลลัพธ์ที่ได้ควรมีลักษณะดังนี้:

สกรีนช็อตแสดงสถานะของ Daemon Azure IoT Edge

สกรีนช็อตที่แสดงรายการโมดูลที่ทํางานบนอุปกรณ์เสมือน

ตอนนี้อุปกรณ์ IoT Edge ของคุณได้รับการกําหนดค่าแล้ว พร้อมแล้วที่จะเรียกใช้มอดูลที่ปรับใช้ระบบคลาวด์

หากต้องการแก้ไขปัญหาบริการ ให้เรียกใช้บันทึกบริการ

journalctl -u iotedge

ดูมอดูลทั้งหมดที่ทํางานบนอุปกรณ์ IoT Edge ของคุณ เนื่องจากบริการเพิ่งเริ่มต้นเป็นครั้งแรก มีเพียง โมดูล edgeAgent เท่านั้นที่ทํางานอยู่ โมดูล edgeAgent จะทํางานตามค่าเริ่มต้นและช่วยในการติดตั้งและเริ่มโมดูลเพิ่มเติมใด ๆ ที่คุณปรับใช้กับอุปกรณ์ของคุณ

sudo iotedge list