คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
InvalidResourceUrlFormat
ข้อความแสดงข้อผิดพลาด
การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้
Error Deploying Revision revision_number to environment Invalid resource url format. Resource url is invalid_URL.
ตัวอย่างข้อความแสดงข้อผิดพลาด
Error Deploying Revision 2 to prod Invalid resource url format. Resource url is py:myscript.py.
ตัวอย่างภาพหน้าจอ
สาเหตุ
หากรูปแบบของ URL ทรัพยากรที่ระบุภายในองค์ประกอบ <ResourceURL>
หรือ <IncludeURL>
ของ
นโยบาย PythonScript ไม่ถูกต้อง การทำให้พร็อกซี API ใช้งานได้จึงล้มเหลว
รูปแบบที่ถูกต้องแสดงอยู่ด้านล่างนี้
<ResourceURL>py://file_name.py</ResourceURL> <IncludeURL>py://file_name.py</IncludeURL>
ตัวอย่างเช่น หากระบุองค์ประกอบ <ResourceURL>
ตามที่แสดงด้านล่าง แอตทริบิวต์
การทำให้พร็อกซี API ใช้งานได้ล้มเหลวเนื่องจากไม่เป็นไปตามรูปแบบที่กำหนด:
<ResourceURL>py:myscript.py</ResourceURL>
การวินิจฉัย
ระบุรูปแบบ URL ของทรัพยากรที่ไม่ถูกต้องที่ใช้ในนโยบาย PythonScript คุณดูข้อมูลนี้ได้จากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น รูปแบบ URL ของแหล่งข้อมูลที่ไม่ถูกต้องในข้อผิดพลาดต่อไปนี้คือ
py:myscript.py
Invalid resource url format. Resource url is py:myscript.py.
ตรวจสอบนโยบาย PythonScript ทั้งหมดในพร็อกซี API ที่เกิดข้อผิดพลาด หากมีนโยบาย PythonScript ที่ URL ทรัพยากรที่ระบุในองค์ประกอบ
<ResourceURL>
หรือ<IncludeURL>
ตรงกับรายการที่ไม่ถูกต้องที่ระบุไว้ในขั้นตอนที่ 1 ด้านบน นั่นก็คือสาเหตุของข้อผิดพลาดตัวอย่างเช่น นโยบายต่อไปนี้ระบุ URL ทรัพยากรเป็น
py:myscript.py
ซึ่งตรงกับข้อความแสดงข้อผิดพลาด<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Script async="false" continueOnError="false" enabled="true" timeLimit="200" name="py-TotalVariable"> <DisplayName>py-TotalVariable</DisplayName> <Properties/> <ResourceURL>py:myscript.py</ResourceURL> </Script>
เนื่องจากระบุ URL ของทรัพยากรเป็น
py:myscript.py
ซึ่งไม่ถูกต้อง การทำให้พร็อกซี API ใช้งานได้จึงล้มเหลวโดยมีข้อผิดพลาดInvalid resource url format. Resource url is py:myscript.py.
ความละเอียด
ตรวจสอบว่ารูปแบบ URL ของทรัพยากรที่ระบุในองค์ประกอบ <ResourceURL>
ของนโยบาย PythonScript ถูกต้อง เช่น
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Script async="false" continueOnError="false" enabled="true" timeLimit="200" name="py-TotalVariable"> <DisplayName>py-TotalVariable</DisplayName> <Properties/> <ResourceURL>py://myscript.py</ResourceURL> </Script>
InvalidResourceUrlReference
ข้อความแสดงข้อผิดพลาด
การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้
Error Deploying Revision revision_number to environment Invalid resource url ref invalid_reference in policy policy_name in org_name
ตัวอย่างข้อความแสดงข้อผิดพลาด
Error Deploying Revision 2 to prod Invalid resource url ref py://myscript.py in policy Python_script in myorg
ตัวอย่างภาพหน้าจอ
สาเหตุ
หากองค์ประกอบ <ResourceURL>
และ <IncludeURL>
อ้างอิงถึงไฟล์ PythonScript
การทำให้ใช้งานได้ของพร็อกซี API ล้มเหลว
หากคุณกำลังทำให้แพ็กเกจพร็อกซีจากเครื่องภายในใช้งานได้ PythonScript
ไฟล์ต้นฉบับต้องจัดเก็บภายใต้ /apiproxy/resources/py
(ที่ขอบเขตพร็อกซี API)
ใน Edge UI ไฟล์ต้นฉบับ PythonScript จะปรากฏในส่วน py ในส่วนสคริปต์ ของแผงการนำทางของตัวแก้ไขพร็อกซี API ดังที่แสดงด้านล่าง
นอกจากนี้ คุณยังจัดเก็บไฟล์ทรัพยากรในที่เก็บระดับองค์กรและสภาพแวดล้อม (เพื่อให้โค้ด PythonScript พร้อมใช้งานสำหรับพร็อกซีทั้งหมดในองค์กรหรือ env เป็นต้น) หากไม่พบไฟล์ทรัพยากรที่ระบุในนโยบาย ระบบจะแสดงข้อผิดพลาดนี้
การวินิจฉัย
ระบุนโยบาย PythonScript ที่เกิดข้อผิดพลาดและการอ้างอิง URL ทรัพยากรที่ไม่ถูกต้อง คุณดูข้อมูลนี้ได้จากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ
Python_script
และการอ้างอิง URL ทรัพยากรที่ไม่ถูกต้องคือpy://myscript.py
Invalid resource url ref py://myscript.py in policy Python_script in myorg
ยืนยันว่าการอ้างอิง URL ทรัพยากรที่ระบุในนโยบาย PythonScript ที่ล้มเหลวตรงกับค่าที่ระบุในข้อความแสดงข้อผิดพลาด (ขั้นตอนที่ 1 ด้านบน) ตัวอย่างเช่น นโยบายต่อไปนี้ระบุการอ้างอิง URL ทรัพยากรเป็น
py://myscript.py
ซึ่งตรงกับสิ่งที่อยู่ในข้อความแสดงข้อผิดพลาด<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Script async="false" continueOnError="false" enabled="true" name="Python_script"> <DisplayName>Python-1</DisplayName> <Properties/> <ResourceURL>py://myscript.py</ResourceURL> </Script>
ตรวจสอบว่าไฟล์ที่ระบุในขั้นตอนที่ 1 เป็นส่วนหนึ่งของแพ็กเกจพร็อกซี API ที่เฉพาะเจาะจง หรืออยู่ในขอบเขตองค์กรหรือสภาพแวดล้อม
- หากต้องการตรวจสอบว่าไฟล์ดังกล่าวเป็นส่วนหนึ่งของแพ็กเกจพร็อกซี API ที่เฉพาะเจาะจงไหม ให้ทำตามขั้นตอนต่อไปนี้
- ใน Edge UI ให้ตรวจสอบว่าไฟล์นี้อยู่ในส่วนสคริปต์ของพร็อกซี API หรือไม่
- ดาวน์โหลดแพ็กเกจพร็อกซี API แล้วค้นหาว่ามีไฟล์อยู่หรือไม่
- หากไฟล์ไม่ได้เป็นส่วนหนึ่งของแพ็กเกจพร็อกซี API ที่เฉพาะเจาะจง ให้ตรวจสอบว่ามีไฟล์ดังกล่าวอยู่ในระดับองค์กรหรือสภาพแวดล้อมหรือไม่ คุณสามารถใช้ Resource Files API สำหรับการตรวจสอบนี้ได้
หากไม่มีไฟล์อยู่ที่ระดับพร็อกซี API, องค์กร หรือสภาพแวดล้อม ข้อผิดพลาดดังกล่าวคือสาเหตุของข้อผิดพลาด
ในตัวอย่างข้างต้น ชื่อไฟล์ PythonScript ที่ไม่ถูกต้องคือ myscript.py ในภาพหน้าจอด้านล่าง จะเห็นว่าไฟล์ที่ระบุในนโยบายเป็น URL ของทรัพยากรไม่ปรากฏในส่วนสคริปต์ และไม่อยู่ในระดับองค์กรหรือสภาพแวดล้อม ดังนั้นการทำให้พร็อกซี API ใช้งานได้จึงล้มเหลวโดยมีข้อผิดพลาดดังนี้
Invalid resource url ref py://myscript.py in policy Python_script in myorg
- หากต้องการตรวจสอบว่าไฟล์ดังกล่าวเป็นส่วนหนึ่งของแพ็กเกจพร็อกซี API ที่เฉพาะเจาะจงไหม ให้ทำตามขั้นตอนต่อไปนี้
ความละเอียด
ตรวจสอบว่าไฟล์ PythonScript ที่ระบุไว้ในองค์ประกอบ <ResourceURL>
และ <IncludeURL>
อ้างอิงถึงไฟล์ที่ถูกต้องที่มีอยู่ในระดับพร็อกซี API, องค์กร หรือสภาพแวดล้อม
หากต้องการแก้ไขตัวอย่างนโยบาย PythonScript ที่แสดงด้านบน ให้เพิ่มไฟล์ myscript.py ลงในแพ็กเกจพร็อกซี API ในภาพหน้าจอด้านล่าง คุณจะเห็นว่าไฟล์ PythonScript ที่ระบุไว้ในองค์ประกอบ <ResourceURL>
และ <IncludeURL>
อยู่ในส่วนสคริปต์ของแพ็กเกจพร็อกซี API