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