คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
คุณสามารถแก้ไขข้อบกพร่องของส่วนขยายได้โดยใช้ข้อความที่มองเห็นได้ใน 2 ที่ ได้แก่ เครื่องมือ Trace และบันทึกของส่วนขยาย เมื่อส่วนขยายไม่ทำงาน การระบุปัญหาอาจต้องใช้ข้อมูลจากทั้ง 2 ที่
เครื่องมือ Trace ของ Apigee Edge เป็นที่ที่คุณใช้ทดสอบและแก้ไขโค้ดพร็อกซี API ซ้ำๆ ขณะพัฒนา ข้อความ Trace จะมีข้อผิดพลาดจากโค้ดพร็อกซี API ซึ่งรวมถึงการกำหนดค่าพร็อกซี API และนโยบาย
ข้อผิดพลาดที่เกี่ยวข้องกับส่วนขยายซึ่งปรากฏในเครื่องมือ Trace มักจะไม่มีรายละเอียดมากนัก นอกเหนือจากการระบุว่าการเรียกใช้ส่วนขยายใดล้มเหลว พร้อมกับรหัสข้อผิดพลาด HTTP หากไม่พบข้อมูลที่เป็นประโยชน์ในเครื่องมือ Trace ให้ดูที่บันทึกของส่วนขยายที่คุณใช้อยู่
ส่วนขยายจะสร้างรายการบันทึกในขณะรันไทม์ (บันทึกของส่วนขยายมีไว้สำหรับผู้ดูแลระบบขององค์กรเท่านั้น)
บันทึกเหล่านี้จะมีรายการที่แสดงผลโดยทรัพยากรภายนอกที่กำหนดค่าให้ส่วนขยายโต้ตอบด้วย ตัวอย่างเช่น หากกำหนดค่าข้อมูลเข้าสู่ระบบของทรัพยากรภายนอกในส่วนขยายไม่ถูกต้อง ข้อผิดพลาดมีแนวโน้มที่จะปรากฏที่นี่
นอกจากนี้ บันทึกยังรวมถึงรายการจากโค้ดส่วนขยายภายในด้วย เมื่อดูบันทึก โปรดทราบว่าบางรายการอาจไม่เกี่ยวข้องกับข้อผิดพลาดที่คุณกำลังแก้ไข รายการบันทึกที่เกี่ยวข้องกับส่วนขยายมักจะขึ้นต้นด้วยคำว่า
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.'
ประเภทและสาเหตุของข้อผิดพลาด
การประมวลผลคำขอของส่วนขยายจะเริ่มจากนโยบาย ExtensionCallout ในพร็อกซี API ผ่านส่วนขยาย ไปยังทรัพยากรภายนอก แล้วกลับมาอีกครั้ง ดังนั้นข้อผิดพลาดจึงอาจเกิดขึ้นได้ในที่ใดที่หนึ่ง
ข้อผิดพลาดที่คุณเห็นอาจอยู่ในหมวดหมู่ต่อไปนี้
ข้อผิดพลาดในการกำหนดค่าส่วนขยาย
การกำหนดค่านี้เป็นสิ่งที่ผู้ดูแลระบบองค์กรทำเมื่อเพิ่มส่วนขยายลงในสภาพแวดล้อม
ตัวอย่างเช่น หากคุณกำหนดค่าส่วนขยาย Cloud Logging ด้วยรหัสโปรเจ็กต์ Google Cloud ที่ไม่ถูกต้อง Google Cloud Logging จะแสดงข้อผิดพลาดไปยังส่วนขยาย โดยปกติแล้วรายละเอียดเกี่ยวกับข้อผิดพลาดเหล่านี้จะอยู่ในบันทึกของส่วนขยาย
หลักฐานในเครื่องมือ Trace
ในเครื่องมือแก้ไขพร็อกซี ข้อผิดพลาดเหล่านี้มักจะปรากฏเป็นข้อผิดพลาดระดับ 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'
ข้อผิดพลาดในการกำหนดค่านโยบาย ExtensionCallout
ข้อผิดพลาดเหล่านี้เกิดขึ้นเมื่อกำหนดค่านโยบาย ExtensionCallout ไม่ถูกต้อง ไม่ว่าจะเป็นข้อผิดพลาดเกี่ยวกับไวยากรณ์ในการกำหนดค่านโยบาย หรือคีย์หรือค่าการกำหนดค่าไม่ถูกต้อง ข้อผิดพลาดเหล่านี้มี 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>และอื่นๆ ข้อผิดพลาดเหล่านี้มักจะปรากฏในเครื่องมือ Trace แต่ไม่ปรากฏในบันทึกของส่วนขยาย
หลักฐานในเครื่องมือ Trace
ในเครื่องมือแก้ไขพร็อกซี ข้อผิดพลาดเหล่านี้มักจะปรากฏเป็นข้อผิดพลาดระดับ 4xx- หรือ
5xx- อย่างไรก็ตาม เครื่องมือแก้ไขพร็อกซีจะไม่แสดงรายละเอียดเกี่ยวกับสาเหตุของข้อผิดพลาด
นอกเหนือจากการระบุว่าส่วนขยายแสดงข้อผิดพลาด
ข้อผิดพลาดต่อไปนี้จะปรากฏในเครื่องมือ Trace เมื่อสะกดชื่อการดำเนินการผิดใน
ส่วนขยาย 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 จะแสดงข้อผิดพลาดไปยังส่วนขยาย ซึ่งจะเพิ่มข้อผิดพลาดลงในบันทึกของส่วนขยาย
หลักฐานในเครื่องมือ Trace
ในเครื่องมือแก้ไขพร็อกซี ข้อผิดพลาดเหล่านี้มักจะปรากฏเป็นข้อผิดพลาดระดับ 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'