เหตุการณ์เป็นแบบอะซิงโครนัสและจัดการโดย Google Cloud Pub/Sub ในหัวข้อเดียวต่อ Projectเหตุการณ์จะให้ข้อมูลอัปเดตสำหรับอุปกรณ์และโครงสร้างทั้งหมด และรับประกันการรับเหตุการณ์ ตราบใดที่ผู้ใช้ยังไม่ได้เพิกถอนโทเค็นการเข้าถึงและข้อความเหตุการณ์ยังไม่หมดอายุ
เหตุการณ์เป็นฟีเจอร์ที่ไม่บังคับของ SDM API ซึ่งสามารถนำไปใช้และยืนยันได้อย่างง่ายดายโดยใช้โปรเจ็กต์ Google Cloud
เปิดใช้กิจกรรม
คุณเปิดใช้เหตุการณ์ได้ใน Device Access คอนโซล เลือกโปรเจ็กต์ใน คอนโซล หากยังไม่ได้เลือก
หากคุณเปิดใช้เหตุการณ์แล้ว (เช่น ระหว่างการสร้างโปรเจ็กต์) ช่องหัวข้อ Pub/Sub ในส่วนเปิดใช้หัวข้อ Pubsub สำหรับเหตุการณ์ ควรมีค่าอยู่แล้ว ซึ่งเรียกว่ารหัสหัวข้อ ในรูปแบบเดิมดังนี้
projects/sdm-prod/topics/enterprise-project-id
รูปแบบหัวข้อนี้โฮสต์โดย Google และจะยังคงอยู่สำหรับโปรเจ็กต์ของคุณ เว้นแต่คุณจะปิดใช้หัวข้อ Pub/Sub ที่โฮสต์โดย Google หากเปิดใช้ฟีเจอร์นี้อีกครั้งในภายหลัง ระบบจะ เปลี่ยนไปใช้หัวข้อ Pub/Sub ที่โฮสต์ด้วยตนเอง
หัวข้อ Pub/Sub ที่โฮสต์ด้วยตนเองสามารถสร้างหรือเปลี่ยนแปลงได้ในโปรเจ็กต์ Google Cloud ของนักพัฒนาแอปเอง นอกจากนี้ นักพัฒนาแอปยังมีหน้าที่รับผิดชอบค่าใช้จ่ายทั้งหมดที่เกี่ยวข้องกับการใช้ Pub/Sub ดูข้อมูลเพิ่มเติมได้ที่ราคา Pub/Sub
สร้างหัวข้อ Pub/Sub
gcloud pubsub topics create {topic} --message-retention-duration=0s
ให้สิทธิ์ SDM API ที่จำเป็นเพื่อเข้าถึงและ เผยแพร่ข้อมูลเหตุการณ์สำหรับรหัสหัวข้อของโปรเจ็กต์
gcloud pubsub topics add-iam-policy-binding projects/{project}/topics/{topic} \
--member="group:sdm-publisher@googlegroups.com" \
--role="roles/pubsub.publisher"
รูปแบบของรหัสหัวข้อที่สร้างใหม่จะเป็นดังนี้
projects/gcp-project-name/subscriptions/topic-id
จดรหัสหัวข้อไว้ คุณจะต้องใช้รหัสดังกล่าวเพื่อ เปิดใช้เหตุการณ์ให้เสร็จสมบูรณ์ ดูข้อมูลเพิ่มเติมได้ที่สร้างหัวข้อ
วิธีเปิดใช้กิจกรรม
- เลือกเปิดใช้เหตุการณ์ แล้วคลิกสร้างโปรเจ็กต์
- คลิกไอคอน สำหรับหัวข้อ Pub/Sub แล้วเลือกเปิดใช้เหตุการณ์ด้วยหัวข้อ PubSub
- ป้อนรหัสหัวข้อ Pub/Sub ที่ได้รับหรือสร้างไว้ก่อนหน้านี้
คัดลอกรหัสหัวข้อ คุณจะต้องใช้รหัสนี้เพื่อสร้างการสมัครใช้บริการหัวข้อเพื่อให้ดึงข้อความเหตุการณ์ได้
สร้างการสมัครใช้บริการแบบดึงข้อมูล
การสมัครใช้บริการแบบดึงคือการที่ผู้สมัครใช้บริการเริ่มส่งคำขอไปยังเซิร์ฟเวอร์ Pub/Sub สำหรับข้อความเหตุการณ์ที่อยู่ในคิว วิธีนี้เป็นวิธีที่ง่ายและรวดเร็วในการยืนยันว่าระบบกำลังสร้างเหตุการณ์สำหรับอุปกรณ์ที่ได้รับอนุญาต
เปิด Cloud Shell สำหรับโปรเจ็กต์ Google Cloud โดยทำดังนี้
ที่พรอมต์ของ Cloud Shell ให้เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างการสมัครรับข้อมูลแบบดึงไปยังหัวข้อ โดยใช้ subscription-id ที่คุณต้องการ และรหัสหัวข้อที่ไม่ซ้ำกัน
gcloud pubsub subscriptions create subscription-id --topic=projects/gcp-project-name/subscriptions/topic-id
Created subscription [projects/gcp-project-name/subscriptions/subscription-id].
เริ่มเหตุการณ์
หากต้องการเริ่มเหตุการณ์เป็นครั้งแรกเมื่อสร้างการสมัครใช้บริการ Pub/Sub แล้ว ให้เรียกใช้เพื่อแสดงรายการอุปกรณ์เป็นทริกเกอร์แบบครั้งเดียว
curl -X GET 'https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/devices' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer access-token'
ระบบจะเผยแพร่เหตุการณ์สำหรับโครงสร้างและอุปกรณ์ทั้งหมดหลังจากเรียก API นี้
สร้างเหตุการณ์
ระบบจะสร้างเหตุการณ์สำหรับการเปลี่ยนแปลงฟิลด์ลักษณะทั้งหมด ซึ่งบางส่วนเป็นแบบอัตโนมัติ และบางส่วนเป็นแบบกำหนดเอง
ตัวอย่างเช่น หากอุณหภูมิแวดล้อมใกล้กับ
Nest Thermostat เปลี่ยนแปลง ระบบจะส่งเหตุการณ์สำหรับลักษณะ
Temperature โดยอัตโนมัติพร้อมกับค่า ambientTemperatureCelsius
ใหม่
หากต้องการสร้างด้วยตนเอง ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้
- เปลี่ยนสถานะของอุปกรณ์ด้วยตนเอง เช่น เปลี่ยนโหมดของ ตัวควบคุมอุณหภูมิ Nest
- ทริกเกอร์เหตุการณ์ เช่น การเคลื่อนไหว คน หรือเสียงใน Google Nest Cam Indoor
- เรียกใช้คำสั่งอุปกรณ์ โดยใช้ SDM API
ดูข้อความ
คุณดูข้อความเหตุการณ์ได้ในโปรเจ็กต์ Google Cloud ในส่วนการสมัครใช้บริการ Pub/Sub ดังนี้
ไปที่การสมัครใช้บริการ Google Cloud Pub/Sub
- คลิกรหัสการสมัครใช้บริการที่สร้างไว้ก่อนหน้านี้
- ในหน้าจอรายละเอียดการสมัครใช้บริการ คุณควรเห็นกิจกรรมสำหรับแผนภูมิจำนวนข้อความที่ยังไม่ได้รับทราบ ซึ่งหมายความว่าคุณได้รับการแจ้งเตือนเหตุการณ์ ผ่านการสมัครใช้บริการแล้ว หากไม่เห็นกิจกรรมใดๆ ให้รอสักครู่ หรือสร้างเหตุการณ์เพิ่มเติม
- คลิก ดูข้อความเพื่อเปิดแผงข้อความ
- คลิกดึงเพื่อดูข้อความ โดยควรสอดคล้องกับการดำเนินการ ที่คุณใช้สร้างเหตุการณ์
นอกจากนี้ คุณยังดูข้อความใน Cloud Shell ได้ด้วยคำสั่ง pull
พื้นฐาน ดังนี้
gcloud pubsub subscriptions pull subscription-id
ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทการสมัครใช้บริการ รวมถึงประเภทของเหตุการณ์ที่ SDM API ส่งและวิธีใช้ได้ที่เหตุการณ์
จัดการข้อความ
คุณควรรับทราบและลบข้อความออกเป็นประจำเพื่อให้การสมัครใช้บริการ สะอาดและหลีกเลี่ยงการส่งข้อความที่ซ้ำกันไปยังผู้สมัครใช้บริการรายอื่น คุณล้างข้อมูลข้อความการสมัครใช้บริการทั้งหมดได้ด้วยตนเองในส่วนการสมัครใช้บริการ Pub/Sub
ไปที่การสมัครใช้บริการ Google Cloud Pub/Sub
- คลิกรหัสการสมัครใช้บริการ
- คุณรับทราบและล้างข้อมูลได้ 2-3 วิธี ดังนี้
- คลิก ดูข้อความเพื่อเปิดแผงข้อความ เลือกช่องทำเครื่องหมายเปิดใช้ข้อความ ACK แล้วคลิก PULL เพื่อดูและรับทราบข้อความทั้งหมด
- คลิก ลบข้อความเพื่อลบข้อความทั้งหมดที่มีอยู่อย่างถาวรโดยการตอบรับโดยไม่ต้องดู คลิกPURGEเพื่อยืนยัน
นอกจากนี้ คุณยังล้างข้อความใน Cloud Shell ได้โดยใช้แฟล็ก --auto-ack
กับคำสั่ง pull
พื้นฐาน
gcloud pubsub subscriptions pull subscription-id --auto-ack
จัดการการสมัครใช้บริการ
คุณกำหนดค่าการสมัครใช้บริการได้หลายวิธีตามที่อธิบายไว้ใน การใช้พร็อพเพอร์ตี้การสมัครใช้บริการ
แม้ว่าคุณจะเลือกวิธีจัดการการสมัครใช้บริการและข้อความได้ตามต้องการ แต่สำหรับแอปพลิเคชันเวอร์ชันที่ใช้งานจริง เราขอแนะนำให้คุณใช้บัญชีบริการสำหรับการตรวจสอบสิทธิ์ แทนที่จะใช้บัญชีผู้ใช้เหมือนที่ผ่านมาในคู่มือเริ่มต้นฉบับย่อนี้ บัญชีบริการใช้โดยแอปพลิเคชันหรือเครื่องเสมือน ไม่ใช่บุคคล และมีคีย์บัญชีที่ไม่ซ้ำกันของตัวเอง
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์บัญชีบริการด้วย Device Accessได้ที่ เหตุการณ์