refresh_date: 2023-01-06
Google Cloud มีเครื่องมือให้คุณตรวจสอบความน่าเชื่อถือของโปรเจ็กต์ ด้วย Google Cloud Monitoring และแก้ไขข้อบกพร่องด้วยบันทึกข้อผิดพลาด Google Cloud Logging เมื่อใดก็ตามที่เกิดความล้มเหลวในการตอบสนองความตั้งใจของผู้ใช้ ไปป์ไลน์ข้อมูลวิเคราะห์ Google Home จะบันทึกความล้มเหลวนั้นในเมตริกของคุณ และ เผยแพร่บันทึกข้อผิดพลาดในบันทึกของโปรเจ็กต์
การแก้ปัญหาข้อผิดพลาดมี 2 ขั้นตอนดังนี้
- ตรวจสอบสถานะของโปรเจ็กต์ด้วยเมตริกสมาร์ทโฮม
- ตรวจสอบปัญหาโดยดูคำอธิบายข้อผิดพลาดโดยละเอียดใน บันทึกข้อผิดพลาด

การตรวจสอบข้อผิดพลาด
คุณสามารถใช้ Google Cloud Monitoring dashboards เพื่อเข้าถึงเมตริกของโปรเจ็กต์ แผนภูมิที่สำคัญบางส่วนซึ่งมีประโยชน์อย่างยิ่ง ในการตรวจสอบคุณภาพและแก้ไขข้อบกพร่องมีดังนี้
- แผนภูมิอัตราความสำเร็จเป็นแผนภูมิแรกที่ควรเริ่มดูเมื่อคุณตรวจสอบความน่าเชื่อถือของโปรเจ็กต์ การลดลงในแผนภูมินี้อาจ บ่งบอกถึงการหยุดทำงานสำหรับผู้ใช้บางส่วนหรือทั้งหมด เราขอแนะนำให้ ติดตามแผนภูมินี้อย่างใกล้ชิดเพื่อดูความผิดปกติหลังจากการเปลี่ยนแปลง หรือการอัปเดตโปรเจ็กต์แต่ละครั้ง
- แผนภูมิรายละเอียดข้อผิดพลาดจะมีประโยชน์มากที่สุดเมื่อต้อง แก้ปัญหาในการผสานรวม สำหรับข้อผิดพลาดทุกรายการที่ไฮไลต์ในแผนภูมิเปอร์เซ็นต์ความสำเร็จ รหัสข้อผิดพลาดจะแสดงในรายละเอียดข้อผิดพลาด คุณดูข้อผิดพลาดที่Google Home platformแจ้งและวิธีแก้ปัญหาได้ในตารางด้านล่าง
รหัสข้อผิดพลาดของแพลตฟอร์มที่พบบ่อย
รหัสข้อผิดพลาดที่พบบ่อยบางส่วนที่คุณอาจเห็นในบันทึกของโปรเจ็กต์เพื่อ ระบุปัญหาที่ Google Home platform ตรวจพบ ดูข้อมูลการแก้ปัญหาได้ใน ตารางต่อไปนี้ ดูรายการรหัสข้อผิดพลาดทั้งหมดได้ที่ ข้อผิดพลาดและข้อยกเว้น
| รหัสข้อผิดพลาด | คำอธิบาย | พาร์ทเนอร์ดำเนินการได้ |
|---|---|---|
AGENT_ISSUE |
เกิดปัญหาทั่วไปกับ Cloud Agent ของพาร์ทเนอร์
ตรวจสอบข้อยกเว้นที่ไม่ได้จัดการหรือข้อขัดข้องในบันทึก Fulfillment ของคุณ |
ใช่ |
AGENT_UNAVAILABLE_ERROR |
Google เข้าถึง URL การปฏิบัติตามคำสั่งของพาร์ทเนอร์ไม่ได้
ตรวจสอบว่าเซิร์ฟเวอร์ออนไลน์ ไฟร์วอลล์ไม่ได้บล็อก Google และ URL ถูกต้อง |
ใช่ |
BACKEND_FAILURE_URL_TIMEOUT |
คำขอของ Google หมดเวลาเมื่อพยายามเข้าถึงบริการของคุณ
ตรวจสอบว่าบริการของคุณออนไลน์ รับการเชื่อมต่อ และไม่ได้มีผู้ใช้เกินความจุ นอกจากนี้ ให้ตรวจสอบว่าอุปกรณ์เป้าหมาย เปิดอยู่ ออนไลน์ และซิงค์แล้ว |
|
BACKEND_FAILURE_URL_UNREACHABLE |
Google ได้รับรหัสข้อผิดพลาด HTTP 5xx จากบริการของคุณ
ใช้ requestId ใน Google Cloud Logging เพื่อตรวจสอบ
บันทึกบริการสมาร์ทโฮม ตรวจสอบเซิร์ฟเวอร์ขัดข้อง หมดเวลา
หรือข้อผิดพลาด 502/503 Gateway
|
|
COMMAND_FAILED |
เกิดข้อผิดพลาดทั่วไปในระหว่างการดำเนินการคำสั่ง
ตรวจสอบบันทึกการดำเนินการตามคำสั่งซื้อเพื่อดู requestId
ที่เฉพาะเจาะจงเพื่อหาสาเหตุที่แท้จริง
|
ใช่ |
EXECUTION_BACKEND_FAILURE_URL_ERROR |
Google ได้รับข้อผิดพลาด HTTP 4xx (นอกเหนือจาก 401) จากการดำเนินการตามคำสั่งของคุณ
ตรวจสอบบันทึกเว็บเซิร์ฟเวอร์เพื่อหาการตอบกลับ 403, 404 หรือ 400 |
ใช่ |
EXECUTION_BACKEND_FAILURE_URL_ROBOTED |
URL การปฏิบัติตามคำสั่งถูกบล็อกโดย robots.txt หรือตัวกรองความปลอดภัย
ตรวจสอบว่า Crawler/บริการของ Google เข้าถึงปลายทางการดำเนินการตามคำสั่งได้ |
ใช่ |
EXECUTION_BACKEND_FAILURE_URL_UNREACHABLE |
Google ได้รับข้อผิดพลาด HTTP 5xx จากบริการจัดการคำสั่งซื้อของคุณ
ตรวจสอบว่าบริการ URL ของปลายทางมีความเสถียร ถูกต้อง และเข้าถึงได้แบบสาธารณะ รวมถึงตรวจสอบว่าบริการกำลังทำงานอยู่ เพิ่มการตรวจสอบประสิทธิภาพการทำงานและการจัดการการลองใหม่ ตรวจสอบการขัดข้องของเซิร์ฟเวอร์ การหมดเวลา หรือข้อผิดพลาดของเกตเวย์ 502/503 |
ใช่ |
EXECUTION_BAILOUT_INVALID_RESPONSE |
การตอบกลับ JSON มีรูปแบบไม่ถูกต้องมากจนต้องยกเลิกการประมวลผล
ใช้เครื่องมือตรวจสอบ JSON เพื่อให้มั่นใจว่าการตอบกลับเป็นไปตาม สคีมา Intent อย่างเคร่งครัด |
ใช่ |
EXECUTION_GAL_BAD_3P_RESPONSE |
การลิงก์บัญชีไม่สำเร็จเนื่องจากรูปแบบในการตอบกลับโทเค็นไม่ถูกต้อง
ตรวจสอบว่ารูปแบบการตอบกลับของเซิร์ฟเวอร์ OAuth ตรงกับข้อกำหนดของ Google |
ใช่ |
EXECUTION_GAL_INSUFFICIENT_CAPABILITIES |
บัญชีของผู้ใช้ไม่มีสิทธิ์ที่จำเป็นสำหรับการดำเนินการนี้
ตรวจสอบขอบเขตที่ขอระหว่าง OAuth และตรวจสอบว่าตรงกับลักษณะที่จำเป็น |
ใช่ |
EXECUTION_GAL_MAYBE_UNLINKED_BY_3P |
ระบบคลาวด์ของพาร์ทเนอร์จะระบุว่าผู้ใช้ได้ยกเลิกการลิงก์บัญชีแล้ว
ตรวจสอบว่า agentUserIdการแมปมีความเสถียรและไม่ได้
ถูกล้าง
|
ใช่ |
EXECUTION_GAL_NOT_FOUND |
โทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรชของผู้ใช้ที่จัดเก็บไว้ใน Google ไม่ถูกต้องหรือ
รีเฟรชไม่ได้ ซึ่งทำให้ไม่สามารถตรวจสอบสิทธิ์และเข้าถึง
บริการของพาร์ทเนอร์ได้
ตรวจสอบว่าโทเค็นยังคงถูกต้องและซิงค์อยู่ จัดการการเปลี่ยนแปลงสถานะบัญชี อย่างเหมาะสม และกำหนดให้ผู้ใช้ลิงก์บัญชีอีกครั้งหาก มีการยืนยันว่าโทเค็นถูกเพิกถอน |
ใช่ |
EXECUTION_GAL_READ_ONLY_MODE_FOR_3P |
การผสานรวมอยู่ในสถานะอ่านอย่างเดียวในฝั่งพาร์ทเนอร์
ตรวจสอบว่าบัญชีของผู้ใช้ถูกระงับหรืออยู่ในโหมดการบำรุงรักษา "ดูอย่างเดียว" หรือไม่ |
ใช่ |
EXECUTION_GAL_UNLINKED_BY_3P |
บริการของบุคคลที่สามยกเลิกการลิงก์บัญชีโดยอัตโนมัติ
ตรวจสอบสาเหตุที่ระบบตัดการเชื่อมต่อผู้ใช้ (เช่น การรีเซ็ต ด้านความปลอดภัย) ตรวจสอบว่าเซิร์ฟเวอร์ OAuth ของพาร์ทเนอร์ตอบกลับ refresh_tokenคำขอของ Google
ในการออกโทเค็นเพื่อการเข้าถึงใหม่
ได้อย่างถูกต้องและราบรื่น
|
ใช่ |
EXECUTION_INVALID_JSON |
Google แยกวิเคราะห์เพย์โหลดการตอบกลับ JSON ไม่ได้
ตรวจสอบข้อผิดพลาดทางไวยากรณ์ วงเล็บที่ขาดหายไป หรืออักขระที่ไม่ถูกต้องใน คำตอบของคุณ |
ใช่ |
INVALID_AUTH_TOKEN |
Google ได้รับรหัสข้อผิดพลาด HTTP 401 จากบริการของคุณ
โทเค็นเพื่อการเข้าถึงยังไม่หมดอายุ แต่บริการของคุณทำให้โทเค็นดังกล่าวไม่ถูกต้อง ใช้ requestId ใน Google Cloud Logging เพื่อตรวจสอบ
บันทึกบริการสมาร์ทโฮม
|
|
INVALID_JSON |
โครงสร้างการตอบกลับไม่ถูกต้อง (เช่น ไม่มีช่องที่บังคับ
)
ตรวจสอบการตอบกลับกับ สคีมา JSON ของ Intent |
ใช่ |
MALFORMED_JSON |
โครงสร้าง JSON เสีย (เช่น สตริงหรือออบเจ็กต์ที่ไม่ได้ปิด)
ตรวจสอบว่า Fulfillment ใช้ไลบรารี JSON มาตรฐานเพื่อทำการซีเรียลไลซ์ การตอบกลับ |
ใช่ |
NOT_IMPLEMENTED |
พาร์ทเนอร์ไม่ได้ใช้ Intent หรือลักษณะที่ขอ
รวมเฉพาะลักษณะในคำตอบ SYNC ที่คุณได้
นำไปใช้จนครบถ้วนแล้ว
|
ใช่ |
OPEN_AUTH_FAILURE |
โทเค็นเพื่อการเข้าถึงของผู้ใช้หมดอายุและ Google รีเฟรชไม่ได้
หรือ Google ได้รับรหัสข้อผิดพลาด HTTP 401 จากบริการของคุณ
หากเห็นว่าอัตราของรหัสนี้เพิ่มขึ้น ให้ตรวจสอบว่าคุณเห็นอัตราข้อผิดพลาดที่เพิ่มขึ้นซึ่งเกี่ยวข้องกับ Intent สมาร์ทโฮมหรือคำขอโทเค็นการรีเฟรชด้วยหรือไม่ |
|
PARTNER_RESPONSE_INVALID_ERROR_CODE |
สตริง errorCode ที่แสดงผลไม่ได้อยู่ในรายการที่ Google รองรับ
แมปข้อผิดพลาดภายในกับ รายการข้อผิดพลาดอย่างเป็นทางการ |
ใช่ |
PARTNER_RESPONSE_INVALID_PAYLOAD |
ฟิลด์ payload ในการตอบกลับไม่ใช่ออบเจ็กต์ JSON ที่ถูกต้อง
ยืนยันโครงสร้างรูทของการตอบกลับ Fulfillment |
ใช่ |
PARTNER_RESPONSE_INVALID_STATUS |
การตอบกลับ status ไม่ใช่ SUCCESS, ERROR หรือ OFFLINE
ตรวจสอบว่าผลลัพธ์ของอุปกรณ์ทุกรายการในคำตอบมีสตริงสถานะที่ถูกต้อง |
ใช่ |
PARTNER_RESPONSE_MISSING_COMMANDS_AND_DEVICES |
การตอบกลับไม่มีผลลัพธ์สำหรับคำสั่ง/อุปกรณ์ที่ขอทั้งหมด
ตรวจสอบโครงสร้างการตอบกลับกับเอกสารประกอบสำหรับนักพัฒนาแอป Google Home ตรวจสอบว่าการตอบกลับไม่ได้ถูกตัดทอนหรือ ส่งคืนเนื้อหาที่ว่างเปล่าเนื่องจากข้อผิดพลาดภายในเซิร์ฟเวอร์ รายการทุกรายการในอาร์เรย์ commands ของคำขอต้องมีรายการคำตอบที่สอดคล้องกัน
|
ใช่ |
PARTNER_RESPONSE_MISSING_DEVICE |
ระบบได้ละเว้นอุปกรณ์บางอย่างที่ Google ร้องขอจากคำตอบ
ตรวจสอบว่าการตอบกลับมี ID ทุกรายการที่ระบุไว้ใน
เพย์โหลดคำขอ
|
ใช่ |
PARTNER_RESPONSE_MISSING_PAYLOAD |
การตอบกลับไม่มีช่อง payload ที่บังคับ
ตรวจสอบว่าออบเจ็กต์ JSON ระดับบนสุดมีคีย์ payload
|
ใช่ |
PARTNER_RESPONSE_NOT_OBJECT |
แยกวิเคราะห์การตอบกลับทั้งหมดเป็นออบเจ็กต์ JSON ไม่ได้
ตรวจสอบอักขระต่อท้ายหรือเนื้อหาที่ไม่ใช่ JSON ในเนื้อความการตอบกลับ HTTP ตรวจสอบว่า payload.commands[] เป็นออบเจ็กต์ JSON ที่ถูกต้อง
ซึ่งมีรหัส สถานะ และสถานะที่ไม่บังคับ
|
ใช่ |
REQUEST_ID_NOT_FOUND |
Google ไม่พบรหัสติดตามภายในสำหรับคำขอ
โดยปกติจะเป็นข้อผิดพลาดภายในแพลตฟอร์ม ให้ตรวจสอบการเพิ่มขึ้นอย่างรวดเร็วและติดต่อ ทีมสนับสนุน |
ใช่ |
RESOURCE_UNAVAILABLE |
ทรัพยากรที่ขอ (อุปกรณ์หรือลักษณะ) ไม่พร้อมใช้งาน
ตรวจสอบว่าอุปกรณ์ "ไม่ว่าง" หรือถูกปิดใช้ชั่วคราว |
ใช่ |
RESPONSE_TIMEOUT |
บริการ Fulfillment ไม่ตอบกลับภายใน 9 วินาที
เพิ่มประสิทธิภาพเวลาในการตอบสนองของแบ็กเอนด์ ตรวจสอบการค้นหา DB ที่ช้าหรือ ความหน่วงของเครือข่ายระดับภูมิภาค |
ใช่ |
RESPONSE_UNAVAILABLE |
ไม่ได้รับการตอบกลับจาก URL การปฏิบัติตามข้อกำหนดของพาร์ทเนอร์
ตรวจสอบว่าบริการทำงานอยู่และปลายทางไม่ขัดข้อง |
ใช่ |
TIMEOUT |
เกิดการหมดเวลาทั่วไปขณะประมวลผลเจตนา
ตรวจสอบบันทึกการหมดเวลาของบริการภายในระหว่างระบบคลาวด์กับ ฮับอุปกรณ์ |
ใช่ |
ข้อมูลบันทึกการค้นหา
เมื่อคุ้นเคยกับการตรวจสอบการผสานรวมโดยใช้เมตริกแล้ว ขั้นตอนถัดไปคือการแก้ปัญหาข้อผิดพลาดที่เฉพาะเจาะจงโดยใช้ Cloud Logging บันทึกข้อผิดพลาดคือรายการที่คล้ายกับ JSON ซึ่งมีช่องที่ประกอบด้วยข้อมูลที่เป็นประโยชน์ เช่น เวลา รหัสข้อผิดพลาด และรายละเอียดเกี่ยวกับเจตนาสมาร์ทโฮมต้นทาง
Google Cloud มีระบบหลายระบบที่ส่งบันทึกไปยังโปรเจ็กต์ของคุณตลอดเวลา คุณต้องเขียนการค้นหาเพื่อกรองบันทึก และค้นหาบันทึกที่ต้องการ ข้อความค้นหาอาจอิงตามช่วงเวลา ทรัพยากร ความรุนแรงของบันทึก หรือรายการที่กำหนดเอง
คุณสามารถใช้ปุ่มการค้นหาเพื่อช่วยสร้างตัวกรองที่กำหนดเอง
หากต้องการระบุช่วงเวลา ให้คลิกปุ่มเลือกช่วงเวลา แล้วเลือกตัวเลือกที่ต้องการ ซึ่งจะกรองบันทึกและแสดงบันทึกที่มาจากช่วงเวลาที่เลือก
หากต้องการระบุทรัพยากร ให้คลิกเมนูแบบเลื่อนลงทรัพยากร แล้วเลือกโปรเจ็กต์การดำเนินการของ Google Assistant ซึ่งจะเพิ่มตัวกรองในคำค้นหาเพื่อแสดงบันทึกที่มาจากโปรเจ็กต์
ใช้ปุ่มความรุนแรงเพื่อกรองตามฉุกเฉิน ข้อมูล แก้ไขข้อบกพร่อง และระดับบันทึกความรุนแรงอื่นๆ
นอกจากนี้ คุณยังใช้ช่องคำค้นหาใน Logs Explorer
เพื่อป้อนรายการที่กำหนดเองได้ด้วย เครื่องมือค้นหาที่ฟิลด์นี้ใช้รองรับทั้ง
การค้นหาพื้นฐาน เช่น การจับคู่สตริง และการค้นหาขั้นสูงกว่า เช่น
ตัวเปรียบเทียบ (<, >=, !=) และตัวดำเนินการบูลีน (AND, OR, NOT)
ตัวอย่างเช่น รายการที่กำหนดเองด้านล่างจะแสดงข้อผิดพลาดที่มาจากLIGHTประเภทอุปกรณ์
resource.type = "assistant_action_project" AND severity = ERROR AND jsonPayload.executionLog.executionResults.actionResults.device.deviceType = "LIGHT"
ไปที่คลังการค้นหา เพื่อดูตัวอย่างเพิ่มเติมสำหรับการค้นหาบันทึกอย่างมีประสิทธิภาพ
การทดสอบการแก้ไข
เมื่อระบุข้อผิดพลาดและใช้การอัปเดตเพื่อแก้ไขแล้ว เราขอแนะนำให้ทดสอบ การแก้ไขอย่างละเอียดด้วย Google Home Test Suite เรามีคู่มือผู้ใช้เกี่ยวกับ วิธีใช้ Test Suite ซึ่งจะแนะนําคุณตลอดการทดสอบการเปลี่ยนแปลง อย่างมีประสิทธิภาพ
แหล่งข้อมูลการเรียนรู้
เอกสารนี้จะแสดงขั้นตอนในการแก้ปัญหาข้อผิดพลาดในสมาร์ทโฮม แอ็กชัน นอกจากนี้ คุณยังดูข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขข้อบกพร่องได้ที่ Codelab ของเรา
- Codelab การแก้ไขข้อบกพร่องของสมาร์ทโฮม: คู่มือเริ่มต้นฉบับย่อสำหรับการแก้ไขข้อบกพร่องของการผสานรวมระบบคลาวด์ของสมาร์ทโฮม
- การแก้ไขข้อบกพร่องของ Codelab สำหรับ Local Home: คู่มือเริ่มต้นฉบับย่อสำหรับการแก้ไขข้อบกพร่องของการผสานรวมสมาร์ทโฮมในเครื่อง