เหตุการณ์เป็นแบบไม่พร้อมกันและจัดการโดย Google Cloud Pub/Sub ในหัวข้อเดียวต่อ Projectเหตุการณ์จะให้ข้อมูลอัปเดตสำหรับอุปกรณ์และโครงสร้างทั้งหมด และรับประกันการรับเหตุการณ์ ตราบใดที่ผู้ใช้ยังไม่ได้เพิกถอนโทเค็นเพื่อการเข้าถึงและข้อความเหตุการณ์ยังไม่หมดอายุ
เหตุการณ์เป็นฟีเจอร์ที่ไม่บังคับของ SDM API ซึ่งสามารถนำไปใช้และยืนยันได้อย่างง่ายดายโดยใช้โปรเจ็กต์ Google Cloud
เปิดใช้กิจกรรม
คุณเปิดใช้เหตุการณ์ได้ใน Device Access คอนโซล เลือกโปรเจ็กต์ใน Console หากยังไม่ได้เลือก
หากคุณเปิดใช้เหตุการณ์แล้ว (เช่น ระหว่างการสร้างโปรเจ็กต์) ช่องหัวข้อ Pub/Sub ในส่วนเปิดใช้หัวข้อ Pubsub สำหรับเหตุการณ์ ควรมีค่าอยู่แล้ว ซึ่งเรียกว่ารหัสหัวข้อ ในรูปแบบเดิมคือ
projects/sdm-prod/topics/enterprise-project-id
รูปแบบหัวข้อนี้โฮสต์โดย Google และจะยังคงอยู่สำหรับโปรเจ็กต์ของคุณจนกว่า คุณจะปิดใช้หัวข้อ Pub/Sub ที่โฮสต์โดย Google หากเปิดใช้อีกครั้งในภายหลัง ระบบจะ เปลี่ยนไปใช้หัวข้อ Pub/Sub ที่โฮสต์ด้วยตนเอง
หัวข้อ Pub/Sub ที่โฮสต์ด้วยตนเองสามารถสร้างหรือเปลี่ยนแปลงได้ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของนักพัฒนาแอปเอง นอกจากนี้ นักพัฒนาแอปยังมีหน้าที่รับผิดชอบค่าใช้จ่ายทั้งหมดที่เกี่ยวข้องกับการใช้ 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 เปลี่ยนแปลง ระบบจะส่งเหตุการณ์สำหรับลักษณะอุณหภูมิ โดยอัตโนมัติพร้อมค่า ambientTemperatureCelsius ใหม่
หากต้องการสร้างด้วยตนเอง ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้
- เปลี่ยนสถานะของอุปกรณ์ด้วยตนเอง เช่น เปลี่ยนโหมดของ ตัวควบคุมอุณหภูมิ Nest
- ทริกเกอร์เหตุการณ์ เช่น การเคลื่อนไหว คน หรือเสียงใน Google Nest Cam Indoor
- เรียกใช้คำสั่งอุปกรณ์ โดยใช้ SDM API
ดูข้อความ
คุณดูข้อความเหตุการณ์ได้ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google ในส่วนการสมัครใช้บริการ Pub/Sub ดังนี้
ไปที่การสมัครใช้บริการ Google Cloud Pub/Sub
- คลิกรหัสการสมัครใช้บริการที่คุณสร้างไว้ก่อนหน้านี้
- ในหน้าจอรายละเอียดการสมัครใช้บริการ คุณควรเห็นกิจกรรมสำหรับแผนภูมิจำนวนข้อความที่ยังไม่ได้ตอบรับ ซึ่งแสดงว่าข้อความเหตุการณ์มาถึงการสมัครใช้บริการแล้ว หากไม่เห็นกิจกรรมใดๆ ให้รอสักครู่หรือสร้างเหตุการณ์เพิ่มเติม
- คลิก ดูข้อความเพื่อเปิดแผงข้อความ
- คลิกดึงเพื่อดูข้อความ ซึ่งควรสอดคล้องกับการดำเนินการ ที่คุณใช้สร้างเหตุการณ์
นอกจากนี้ คุณยังดูข้อความใน Cloud Shell ได้ด้วยคำสั่ง pull พื้นฐาน ดังนี้
gcloud pubsub subscriptions pull subscription-idดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทการสมัครใช้บริการ รวมถึงประเภทของเหตุการณ์ที่ SDM API ส่งและวิธีใช้ได้ที่เหตุการณ์
จัดการข้อความ
คุณควรรับทราบและลบข้อความออกเป็นประจำเพื่อให้การสมัครใช้บริการ สะอาดและหลีกเลี่ยงการส่งข้อความที่ซ้ำกันไปยังผู้สมัครใช้บริการรายอื่น คุณลบข้อความการสมัครใช้บริการทั้งหมดได้ด้วยตนเองในส่วนการสมัครใช้บริการ Pub/Sub โดยทำดังนี้
ไปที่การสมัครใช้บริการ Google Cloud Pub/Sub
- คลิกรหัสการสมัครใช้บริการ
- คุณรับทราบและล้างข้อมูลได้หลายวิธี ดังนี้
- คลิก ดูข้อความเพื่อเปิดแผงข้อความ เลือกช่องทำเครื่องหมายเปิดใช้ข้อความ ACK แล้วคลิก PULL เพื่อดูและรับทราบข้อความทั้งหมด
- คลิก ลบข้อความ เพื่อลบข้อความทั้งหมดที่มีอยู่อย่างถาวรโดยการตอบรับโดยไม่ต้องดูข้อความ คลิกลบเพื่อยืนยัน
นอกจากนี้ คุณยังล้างข้อความใน Cloud Shell ได้โดยใช้แฟล็ก --auto-ack กับคำสั่ง pull พื้นฐาน
gcloud pubsub subscriptions pull subscription-id --auto-ackจัดการการสมัครใช้บริการ
คุณกำหนดค่าการสมัครใช้บริการได้หลายวิธีตามที่อธิบายไว้ใน การใช้พร็อพเพอร์ตี้การสมัครใช้บริการ
แม้ว่าคุณจะเลือกวิธีจัดการการสมัครใช้บริการและข้อความได้ตามต้องการ แต่สำหรับแอปพลิเคชันเวอร์ชันที่ใช้งานจริง เราขอแนะนำให้คุณใช้บัญชีบริการเพื่อการตรวจสอบสิทธิ์ แทนที่จะใช้บัญชีผู้ใช้เหมือนที่ผ่านมาในคู่มือเริ่มต้นฉบับย่อนี้ บัญชีบริการใช้โดยแอปพลิเคชันหรือเครื่องเสมือน ไม่ใช่บุคคล และมีคีย์บัญชีที่ไม่ซ้ำกันของตัวเอง
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์บัญชีบริการด้วย Device Accessได้ที่ เหตุการณ์