แบบฝึกหัด - ตั้งค่าการสื่อสารระหว่างฮับ IoT และ IoT Edge
แบบฝึกหัดนี้ใช้ Azure CLI ใน 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 สาธารณะ ในส่วน ผลลัพธ์ :
ดูสถานะรันไทม์ 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
ผลลัพธ์ที่ได้ควรมีลักษณะดังนี้:
ตอนนี้อุปกรณ์ IoT Edge ของคุณได้รับการกําหนดค่าแล้ว พร้อมแล้วที่จะเรียกใช้มอดูลที่ปรับใช้ระบบคลาวด์
หากต้องการแก้ไขปัญหาบริการ ให้เรียกใช้บันทึกบริการ
journalctl -u iotedge
ดูมอดูลทั้งหมดที่ทํางานบนอุปกรณ์ IoT Edge ของคุณ เนื่องจากบริการเพิ่งเริ่มต้นเป็นครั้งแรก มีเพียง โมดูล edgeAgent เท่านั้นที่ทํางานอยู่ โมดูล edgeAgent จะทํางานตามค่าเริ่มต้นและช่วยในการติดตั้งและเริ่มโมดูลเพิ่มเติมใด ๆ ที่คุณปรับใช้กับอุปกรณ์ของคุณ
sudo iotedge list