การแก้ปัญหาข้อผิดพลาดในการผสานรวม

Cloud-to-cloud    Matter

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

การแก้ปัญหาข้อผิดพลาดมี 2 ขั้นตอน ดังนี้

  1. ตรวจสอบสถานะของโปรเจ็กต์ด้วยเมตริกของสมาร์ทโฮม
  2. ตรวจสอบปัญหาโดยดูคำอธิบายข้อผิดพลาดโดยละเอียดในบันทึกข้อผิดพลาด

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

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

การตรวจสอบข้อผิดพลาด

คุณสามารถใช้ Google Cloud Monitoring dashboards เพื่อเข้าถึงเมตริกของโปรเจ็กต์ แผนภูมิที่สำคัญบางรายการมีประโยชน์อย่างยิ่งสำหรับการตรวจสอบคุณภาพและการแก้ปัญหา ดังนี้

  • แผนภูมิอัตราความสำเร็จ เป็นแผนภูมิแรกที่คุณควรเริ่มดูเมื่อตรวจสอบความน่าเชื่อถือของโปรเจ็กต์ การลดลงในแผนภูมินี้อาจบ่งบอกถึงการหยุดทำงานของฐานผู้ใช้บางส่วนหรือทั้งหมด เราขอแนะนำให้ตรวจสอบแผนภูมินี้อย่างใกล้ชิดเพื่อดูความผิดปกติหลังจากมีการเปลี่ยนแปลงหรืออัปเดตโปรเจ็กต์แต่ละครั้ง
  • แผนภูมิเวลาในการตอบสนองเปอร์เซ็นไทล์ที่ 95 เป็นตัวบ่งชี้ที่สำคัญว่า การผสานรวมCloud-to-cloud ทำงานได้ดีเพียงใดสำหรับผู้ใช้ ความผันผวนอย่างฉับพลันในแผนภูมินี้อาจบ่งบอกว่าระบบของคุณอาจไม่สามารถรับคำขอได้ทัน เราขอแนะนำให้ตรวจสอบแผนภูมินี้เป็นระยะเพื่อดูลักษณะการทำงานที่ไม่คาดคิด
  • แผนภูมิรายละเอียดข้อผิดพลาด มีประโยชน์มากที่สุดเมื่อต้องแก้ปัญหาในการผสานรวม ระบบจะแสดงรหัสข้อผิดพลาดในรายละเอียดข้อผิดพลาดสำหรับข้อผิดพลาดทุกรายการที่ไฮไลต์ในแผนภูมิเปอร์เซ็นต์ความสำเร็จ คุณสามารถดูข้อผิดพลาดที่แจ้ง โดย Google Home platform และวิธีแก้ปัญหา ได้ในตารางด้านล่าง

รหัสข้อผิดพลาดของแพลตฟอร์มที่พบบ่อย

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

รหัสข้อผิดพลาด คำอธิบาย พาร์ทเนอร์ดำเนินการได้
AGENT_ISSUE เกิดปัญหาทั่วไปกับ 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 เกิดความล้มเหลวทั่วไประหว่างการดำเนินการคำสั่ง

ตรวจสอบบันทึก Fulfillment สำหรับ requestId เพื่อหาสาเหตุของปัญหา
ใช่
EXECUTION_BACKEND_FAILURE_URL_ERROR Google ได้รับข้อผิดพลาด HTTP 4xx (นอกเหนือจาก 401) จากการตอบสนองของคุณ

ตรวจสอบบันทึกเว็บเซิร์ฟเวอร์เพื่อดูการตอบกลับ 403, 404 หรือ 400
ใช่
EXECUTION_BACKEND_FAILURE_URL_ROBOTED URL การตอบสนองถูกบล็อกโดย robots.txt หรือตัวกรองความปลอดภัย

ตรวจสอบว่าโปรแกรมรวบรวมข้อมูล/บริการของ Google เข้าถึงปลายทาง Fulfillment ได้
ใช่
EXECUTION_BACKEND_FAILURE_URL_UNREACHABLE Google ได้รับข้อผิดพลาด HTTP 5xx จากบริการการตอบสนองของคุณ

ตรวจสอบว่าบริการ URL ปลายทางเสถียร ถูกต้อง และเข้าถึงได้แบบสาธารณะ รวมถึงบริการทำงานอยู่ เพิ่มการตรวจสอบประสิทธิภาพการทำงานและการจัดการการลองใหม่ ตรวจสอบข้อขัดข้องของเซิร์ฟเวอร์ การหมดเวลา หรือข้อผิดพลาด 502/503 Gateway
ใช่
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 เกิดการหมดเวลาทั่วไปขณะประมวลผล Intent

ตรวจสอบบันทึกการหมดเวลาของบริการภายในระหว่างระบบคลาวด์กับ ฮับอุปกรณ์
ใช่

ข้อมูลบันทึกการค้นหา

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

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

ค้นหาบันทึกของระบบคลาวด์

คุณสามารถใช้ปุ่มการค้นหาเพื่อช่วยสร้างตัวกรองที่กำหนดเอง

สร้างการค้นหาใน Cloud Logs

หากต้องการระบุ ช่วงเวลา ให้คลิกปุ่มเลือกช่วงเวลา แล้วเลือกตัวเลือกใดตัวเลือกหนึ่งที่ให้ไว้ ซึ่งจะกรองบันทึกและแสดงบันทึกที่มาจากช่วงเวลาที่เลือก

หากต้องการระบุ ทรัพยากร ให้คลิกเมนูแบบเลื่อนลงทรัพยากร แล้วเลือกโปรเจ็กต์ Google Assistant Action ซึ่งจะเพิ่มตัวกรองในการค้นหาเพื่อแสดงบันทึกที่มาจากโปรเจ็กต์

ใช้ปุ่มความรุนแรง เพื่อกรองตามฉุกเฉิน ข้อมูล การแก้ไขข้อบกพร่อง และระดับความรุนแรงอื่นๆ ของบันทึก

นอกจากนี้ คุณยังใช้ช่องการค้นหาใน 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 ซึ่งจะแนะนำคุณทีละขั้นตอนในการทดสอบ การเปลี่ยนแปลงอย่างมีประสิทธิภาพ

แหล่งข้อมูลการเรียนรู้

เอกสารนี้แสดงขั้นตอนการแก้ปัญหาข้อผิดพลาดใน Smart Home Action นอกจากนี้ คุณยังดู Codelab ของเราเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการแก้ปัญหาได้ด้วย

  • Codelab การแก้ปัญหา Smart Home: คู่มือเริ่มต้นอย่างรวดเร็วสำหรับการแก้ปัญหาการผสานรวมระบบคลาวด์ของสมาร์ทโฮม
  • Codelab การแก้ปัญหา Local Home: คู่มือเริ่มต้นอย่างรวดเร็วสำหรับการแก้ปัญหาการผสานรวมในเครื่องของสมาร์ทโฮม