สมัครรับข้อมูลกิจกรรม

เหตุการณ์เป็นแบบอะซิงโครนัสและจัดการโดย Google Cloud Pub/Sub ในหัวข้อเดียวต่อ Projectเหตุการณ์จะให้ข้อมูลอัปเดตสำหรับอุปกรณ์และโครงสร้างทั้งหมด และรับประกันการรับเหตุการณ์ ตราบใดที่ผู้ใช้ยังไม่ได้เพิกถอนโทเค็นการเข้าถึงและข้อความเหตุการณ์ยังไม่หมดอายุ

เหตุการณ์เป็นฟีเจอร์ที่ไม่บังคับของ SDM API ซึ่งสามารถนำไปใช้และยืนยันได้อย่างง่ายดายโดยใช้โปรเจ็กต์ Google Cloud

เปิดใช้กิจกรรม

คุณเปิดใช้เหตุการณ์ได้ใน Device Access คอนโซล เลือกโปรเจ็กต์ใน คอนโซล หากยังไม่ได้เลือก

ไปที่ 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

จดรหัสหัวข้อไว้ คุณจะต้องใช้รหัสดังกล่าวเพื่อ เปิดใช้เหตุการณ์ให้เสร็จสมบูรณ์ ดูข้อมูลเพิ่มเติมได้ที่สร้างหัวข้อ

วิธีเปิดใช้กิจกรรม

  1. เลือกเปิดใช้เหตุการณ์ แล้วคลิกสร้างโปรเจ็กต์
  2. คลิกไอคอน สำหรับหัวข้อ Pub/Sub แล้วเลือกเปิดใช้เหตุการณ์ด้วยหัวข้อ PubSub
  3. ป้อนรหัสหัวข้อ Pub/Sub ที่ได้รับหรือสร้างไว้ก่อนหน้านี้

คัดลอกรหัสหัวข้อ คุณจะต้องใช้รหัสนี้เพื่อสร้างการสมัครใช้บริการหัวข้อเพื่อให้ดึงข้อความเหตุการณ์ได้

สร้างการสมัครใช้บริการแบบดึงข้อมูล

การสมัครใช้บริการแบบดึงคือการที่ผู้สมัครใช้บริการเริ่มส่งคำขอไปยังเซิร์ฟเวอร์ Pub/Sub สำหรับข้อความเหตุการณ์ที่อยู่ในคิว วิธีนี้เป็นวิธีที่ง่ายและรวดเร็วในการยืนยันว่าระบบกำลังสร้างเหตุการณ์สำหรับอุปกรณ์ที่ได้รับอนุญาต

เปิด Cloud Shell สำหรับโปรเจ็กต์ Google Cloud โดยทำดังนี้

ไปที่ Google Cloud Shell

ที่พรอมต์ของ 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 ใหม่

หากต้องการสร้างด้วยตนเอง ให้ทำอย่างใดอย่างหนึ่งต่อไปนี้

  1. เปลี่ยนสถานะของอุปกรณ์ด้วยตนเอง เช่น เปลี่ยนโหมดของ ตัวควบคุมอุณหภูมิ Nest
  2. ทริกเกอร์เหตุการณ์ เช่น การเคลื่อนไหว คน หรือเสียงใน Google Nest Cam Indoor
  3. เรียกใช้คำสั่งอุปกรณ์ โดยใช้ SDM API

ดูข้อความ

คุณดูข้อความเหตุการณ์ได้ในโปรเจ็กต์ Google Cloud ในส่วนการสมัครใช้บริการ Pub/Sub ดังนี้

ไปที่การสมัครใช้บริการ Google Cloud Pub/Sub

  1. คลิกรหัสการสมัครใช้บริการที่สร้างไว้ก่อนหน้านี้
  2. ในหน้าจอรายละเอียดการสมัครใช้บริการ คุณควรเห็นกิจกรรมสำหรับแผนภูมิจำนวนข้อความที่ยังไม่ได้รับทราบ ซึ่งหมายความว่าคุณได้รับการแจ้งเตือนเหตุการณ์ ผ่านการสมัครใช้บริการแล้ว หากไม่เห็นกิจกรรมใดๆ ให้รอสักครู่ หรือสร้างเหตุการณ์เพิ่มเติม
  3. คลิก ดูข้อความเพื่อเปิดแผงข้อความ
  4. คลิกดึงเพื่อดูข้อความ โดยควรสอดคล้องกับการดำเนินการ ที่คุณใช้สร้างเหตุการณ์

นอกจากนี้ คุณยังดูข้อความใน Cloud Shell ได้ด้วยคำสั่ง pull พื้นฐาน ดังนี้

gcloud pubsub subscriptions pull subscription-id

ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทการสมัครใช้บริการ รวมถึงประเภทของเหตุการณ์ที่ SDM API ส่งและวิธีใช้ได้ที่เหตุการณ์

จัดการข้อความ

คุณควรรับทราบและลบข้อความออกเป็นประจำเพื่อให้การสมัครใช้บริการ สะอาดและหลีกเลี่ยงการส่งข้อความที่ซ้ำกันไปยังผู้สมัครใช้บริการรายอื่น คุณล้างข้อมูลข้อความการสมัครใช้บริการทั้งหมดได้ด้วยตนเองในส่วนการสมัครใช้บริการ Pub/Sub

ไปที่การสมัครใช้บริการ Google Cloud Pub/Sub

  1. คลิกรหัสการสมัครใช้บริการ
  2. คุณรับทราบและล้างข้อมูลได้ 2-3 วิธี ดังนี้
    1. คลิก ดูข้อความเพื่อเปิดแผงข้อความ เลือกช่องทำเครื่องหมายเปิดใช้ข้อความ ACK แล้วคลิก PULL เพื่อดูและรับทราบข้อความทั้งหมด
    2. คลิก ลบข้อความเพื่อลบข้อความทั้งหมดที่มีอยู่อย่างถาวรโดยการตอบรับโดยไม่ต้องดู คลิกPURGEเพื่อยืนยัน

นอกจากนี้ คุณยังล้างข้อความใน Cloud Shell ได้โดยใช้แฟล็ก --auto-ack กับคำสั่ง pull พื้นฐาน

gcloud pubsub subscriptions pull subscription-id --auto-ack

จัดการการสมัครใช้บริการ

คุณกำหนดค่าการสมัครใช้บริการได้หลายวิธีตามที่อธิบายไว้ใน การใช้พร็อพเพอร์ตี้การสมัครใช้บริการ

แม้ว่าคุณจะเลือกวิธีจัดการการสมัครใช้บริการและข้อความได้ตามต้องการ แต่สำหรับแอปพลิเคชันเวอร์ชันที่ใช้งานจริง เราขอแนะนำให้คุณใช้บัญชีบริการสำหรับการตรวจสอบสิทธิ์ แทนที่จะใช้บัญชีผู้ใช้เหมือนที่ผ่านมาในคู่มือเริ่มต้นฉบับย่อนี้ บัญชีบริการใช้โดยแอปพลิเคชันหรือเครื่องเสมือน ไม่ใช่บุคคล และมีคีย์บัญชีที่ไม่ซ้ำกันของตัวเอง

ดูข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์บัญชีบริการด้วย Device Accessได้ที่ เหตุการณ์