คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
คุณสามารถแก้ไขข้อบกพร่องของส่วนขยายโดยใช้ข้อความที่มองเห็นได้ใน 2 ที่ ได้แก่ เครื่องมือติดตามและบันทึกส่วนขยาย ในบางครั้ง เมื่อส่วนขยายไม่ทำงาน การระบุปัญหาอาจต้องใช้ข้อมูลจากทั้ง 2 ที่
เครื่องมือติดตาม Apigee Edge คือที่ที่คุณทดสอบและแก้ไขโค้ดพร็อกซี API ซ้ำๆ ในขณะที่คุณพัฒนา ข้อความการติดตามมีข้อผิดพลาดจากโค้ดพร็อกซี API รวมถึงพร็อกซี API และการกำหนดค่านโยบาย
ข้อผิดพลาดเกี่ยวกับส่วนขยายที่ปรากฏในเครื่องมือติดตามมักมีรายละเอียดไม่มากนัก ยกเว้นการระบุว่าคำขอราคาเสนอส่วนขยายใดล้มเหลว รวมถึงรหัสข้อผิดพลาด HTTP เมื่อคุณไม่พบประโยชน์ใดในนี้เลย สิ่งที่ควรตรวจสอบเป็นลำดับถัดไปคือบันทึกสำหรับส่วนขยายที่คุณใช้อยู่
ส่วนขยายจะสร้างรายการบันทึกระหว่างรันไทม์ (บันทึกส่วนขยายจะมีให้สำหรับผู้ดูแลระบบองค์กรเท่านั้น)
บันทึกเหล่านี้รวมถึงรายการที่แสดงผลโดยทรัพยากรภายนอกที่ส่วนขยายถูกกำหนดค่าไว้ให้โต้ตอบด้วย ตัวอย่างเช่น หากมีการกำหนดค่าข้อมูลเข้าสู่ระบบของทรัพยากรภายนอกในส่วนขยายไม่ถูกต้อง ข้อผิดพลาดก็มีแนวโน้มที่จะปรากฏที่นี่
บันทึกยังรวมรายการจากโค้ดส่วนขยายภายในด้วย ขณะอ่านบันทึก โปรดทราบว่าบางรายการไม่เกี่ยวข้องกับข้อผิดพลาดที่คุณกำลังแก้ไข โดยปกติแล้วรายการบันทึกที่เกี่ยวข้องกับส่วนขยายจะขึ้นต้นด้วยคำว่า
details
เช่นเดียวกับในรายการบันทึกต่อไปนี้จากส่วนขยาย Cloud Pub/Subdetails: 'Invalid resource name given (name=projects/example-test-123456/topic/extension-example). Refer to https://cloud.google.com/pubsub/docs/admin#resource_names for more information.'
ประเภทข้อผิดพลาดและสาเหตุ
ขั้นตอนการประมวลผลคำขอส่วนขยายจากนโยบาย Extension callout ในพร็อกซี API ผ่านส่วนขยายไปยังทรัพยากรภายนอก แล้วส่งกลับเข้าไปอีกครั้ง ดังนั้นข้อผิดพลาดอาจเกิดขึ้นที่ตำแหน่งใดก็ได้ดังกล่าว
ข้อผิดพลาดที่คุณพบอาจอยู่ในหมวดหมู่ต่อไปนี้
ข้อผิดพลาดในการกำหนดค่าส่วนขยาย
ซึ่งเป็นการกำหนดค่าที่ผู้ดูแลระบบขององค์กรทำเมื่อเพิ่มส่วนขยายในสภาพแวดล้อม
เช่น หากคุณกำหนดค่าส่วนขยาย Cloud Logging ด้วยรหัสโปรเจ็กต์ Google Cloud ที่ไม่ถูกต้อง Google Cloud Logging จะแสดงข้อผิดพลาดไปยังส่วนขยาย รายละเอียดเกี่ยวกับข้อผิดพลาดเหล่านี้มักจะอยู่ในบันทึกของส่วนขยาย
หลักฐานในเครื่องมือติดตาม
ในตัวแก้ไขพร็อกซี ข้อผิดพลาดเหล่านี้มักจะแสดงเป็นข้อผิดพลาดระดับ 4xx
หรือ
5xx
อย่างไรก็ตาม ตัวแก้ไขพร็อกซีจะไม่แสดงข้อมูลเฉพาะเกี่ยวกับ
สาเหตุของข้อผิดพลาด ยกเว้นข้อความว่าส่วนขยายนั้นแสดงข้อผิดพลาด
{
"fault": {
"faultstring":"Execution of ConnectorCallout Logging-Extension failed. Reason: Connector returned error statuscode=500",
"detail": {
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
หลักฐานในบันทึกส่วนขยาย
หากมีรายละเอียดเกี่ยวกับข้อผิดพลาดประเภทนี้ คุณจะเห็นข้อผิดพลาดดังกล่าวในรายการบันทึกของส่วนขยาย ข้อความแสดงข้อผิดพลาดต่อไปนี้ที่แสดงผลโดยบริการ Cloud Pub/Sub ซึ่งเป็นผลมาจากรหัสโปรเจ็กต์ที่มีรูปแบบไม่ถูกต้อง
details: 'Project does not exist: example-test-12345'
ข้อผิดพลาดในการกำหนดค่านโยบาย Extensionวิส
ข้อผิดพลาดเหล่านี้เกิดขึ้นเมื่อนโยบาย Extensionคำขอราคาเสนอ กำหนดค่าไม่ถูกต้อง ไม่ว่าจะผ่านข้อผิดพลาดทางไวยากรณ์ในการกำหนดค่านโยบาย หรือผ่านคีย์หรือค่าการกำหนดค่าที่ไม่ถูกต้อง ข้อผิดพลาดเหล่านี้มีอยู่ 2 รูปแบบ ขึ้นอยู่กับการกำหนดค่านโยบายนั้นๆ ดังนี้
ค่าที่ไม่ถูกต้องได้รับการประเมินโดยทรัพยากรภายนอก
ข้อผิดพลาดนี้อาจเกิดขึ้นเมื่อข้อผิดพลาดของการกำหนดค่าปรากฏว่าถูกต้องสำหรับส่วนขยาย แต่ไม่ถูกต้องสำหรับทรัพยากรภายนอก เช่น หากส่วนขยายส่งรหัสฐานข้อมูลที่ไม่ถูกต้องไปยัง Cloud Spanner แล้ว Cloud Spanner จะส่งกลับข้อผิดพลาดที่บันทึกไว้ในบันทึกของส่วนขยาย
details: 'Database not found: projects/example-test-123456/instances/spanner-extension-example-db/databases/my-business-d'
กรณีนี้อาจเกิดขึ้นกับ JSON ของการกำหนดค่าที่ไม่ถูกต้องในองค์ประกอบ
<Input>
ของนโยบายด้วย สำหรับส่วนขยายบางรายการ JSON ส่วนหนึ่งจะประมวลผลโดยส่วนขยายและส่งไปยังทรัพยากร เช่น JSON สำหรับการกำหนดค่าส่วนขยาย Cloud Logging ประกอบด้วยออบเจ็กต์metadata
ซึ่งมีเนื้อหาที่ส่งไปยัง Cloud Logging ชื่อคีย์ที่ไม่ถูกต้อง เช่นtyp
แทนที่จะเป็นtype
อาจแสดงข้อผิดพลาดจากทรัพยากรภายนอกที่ปรากฏเป็นรายการในบันทึกของส่วนขยายdetails: 'Resource type cannot be empty'
ส่วนขยายประเมินค่าที่ไม่ถูกต้อง
ข้อผิดพลาดเหล่านี้รวมถึงข้อผิดพลาดทางไวยากรณ์ในส่วนที่ประเมินตามนโยบายของ JSON ขององค์ประกอบ
<Input>
การสะกดผิดในชื่อการดำเนินการในองค์ประกอบ<Action>
และอื่นๆ ข้อผิดพลาดเหล่านี้มักจะปรากฏในเครื่องมือติดตาม แต่จะไม่ปรากฏในบันทึกของส่วนขยาย
หลักฐานในเครื่องมือติดตาม
ในตัวแก้ไขพร็อกซี ข้อผิดพลาดเหล่านี้มักจะแสดงเป็นข้อผิดพลาดระดับ 4xx
หรือ
5xx
อย่างไรก็ตาม ตัวแก้ไขพร็อกซีจะไม่แสดงข้อมูลเฉพาะเกี่ยวกับ
สาเหตุของข้อผิดพลาด ยกเว้นข้อความว่าส่วนขยายนั้นแสดงข้อผิดพลาด ข้อผิดพลาดต่อไปนี้จะปรากฏในเครื่องมือติดตามเมื่อสะกดชื่อการดำเนินการในส่วนขยาย Cloud Firestore ผิด
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404","detail":
{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
หลักฐานในบันทึกส่วนขยาย
เมื่อการกำหนดค่านโยบายทำให้เกิดข้อผิดพลาดในการประมวลผลในทรัพยากรภายนอก ข้อผิดพลาดดังกล่าวมักจะปรากฏในบันทึก
ข้อผิดพลาดที่เกี่ยวข้องกับคำขอของส่วนขยายที่ส่งไปยังทรัพยากร
นี่คือข้อผิดพลาดที่คำขอไปยังทรัพยากรภายนอกไม่สำเร็จด้วยเหตุผลที่ไม่เกี่ยวข้องกับส่วนขยาย
ตัวอย่างเช่น สมมติว่าคุณใช้ส่วนขยาย Cloud Spanner เพื่อเพิ่มแถวลงในฐานข้อมูล แต่ค่าคีย์หลักของแถวถูกใช้ในแถวที่มีอยู่แล้ว Cloud Spanner จะส่งกลับข้อผิดพลาดไปยังส่วนขยาย ซึ่งจะเป็นการเพิ่มข้อผิดพลาดลงในบันทึกของส่วนขยาย
หลักฐานในเครื่องมือติดตาม
ในตัวแก้ไขพร็อกซี ข้อผิดพลาดเหล่านี้มักจะแสดงเป็นข้อผิดพลาดระดับ 4xx
หรือ 5xx
อย่างไรก็ตาม ตัวแก้ไขพร็อกซีจะไม่แสดงคำอธิบายเฉพาะเกี่ยวกับสาเหตุของข้อผิดพลาด ยกเว้นข้อความว่าส่วนขยายแสดงข้อผิดพลาด
{
"fault":{
"faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404",
"detail":{
"errorcode":"steps.connectorcallout.ExecutionFailed"
}
}
}
หลักฐานในบันทึกส่วนขยาย
ซึ่งโดยปกติในบันทึกจะมีรายการที่มีข้อความจากทรัพยากรภายนอกนั้นเอง ข้อความบันทึกต่อไปนี้จาก Cloud Spanner อธิบายข้อผิดพลาดที่มีอยู่ของค่าคีย์หลัก
details: 'Row [jonesy42] in table user already exists'