การแก้ปัญหาข้อผิดพลาดในการทำให้นโยบาย PythonScript ใช้งานได้

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
info

InvalidResourceUrlFormat

ข้อความแสดงข้อผิดพลาด

การติดตั้งใช้งานพร็อกซี API ผ่าน UI ของ Edge หรือ 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>

การวินิจฉัย

  1. ระบุรูปแบบ URL ของทรัพยากรที่ไม่ถูกต้องที่ใช้ในนโยบาย PythonScript คุณดูข้อมูลนี้ได้จากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ รูปแบบ URL ของทรัพยากรที่ไม่ถูกต้องคือ py:myscript.py

    Invalid resource url format. Resource url is py:myscript.py.
  2. ตรวจสอบนโยบาย 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 ผ่าน UI ของ Edge หรือ 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)

ใน UI ของ Edge ไฟล์ต้นฉบับ PythonScript จะปรากฏในส่วน py ในส่วนสคริปต์ ของแผง Navigator ของตัวแก้ไขพร็อกซี API ดังที่แสดงด้านล่าง

นอกจากนี้ คุณยังจัดเก็บไฟล์ทรัพยากรในที่เก็บระดับองค์กรและสภาพแวดล้อมได้ด้วย (เช่น เพื่อให้โค้ด PythonScript พร้อมใช้งานกับพร็อกซีทั้งหมดในองค์กรหรือสภาพแวดล้อม) หากไม่พบไฟล์ทรัพยากรที่ระบุไว้ในนโยบาย ข้อผิดพลาดนี้จะเกิดขึ้น

การวินิจฉัย

  1. ระบุนโยบาย PythonScript ที่เกิดข้อผิดพลาดและการอ้างอิง URL ของทรัพยากรที่ไม่ถูกต้อง คุณดูข้อมูลนี้ได้จากข้อความแสดงข้อผิดพลาด เช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ Python_script และการอ้างอิง URL ของทรัพยากรที่ไม่ถูกต้องคือ py://myscript.py

    Invalid resource url ref py://myscript.py in policy Python_script in myorg
  2. ตรวจสอบว่าการอ้างอิง 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>
  3. ตรวจสอบว่าไฟล์ที่ระบุในขั้นตอนที่ 1 เป็นส่วนหนึ่งของชุดพร็อกซี API ที่เฉพาะเจาะจง หรือมีอยู่ที่ขอบเขตขององค์กรหรือสภาพแวดล้อม

    1. หากต้องการตรวจสอบว่าไฟล์เป็นส่วนหนึ่งของชุดพร็อกซี API ที่เฉพาะเจาะจงหรือไม่ ให้ทำตามขั้นตอนใดขั้นตอนหนึ่งต่อไปนี้
      1. ใน UI ของ Edge ให้ตรวจสอบว่าไฟล์นี้อยู่ในส่วนสคริปต์ของพร็อกซี API หรือไม่
      2. ดาวน์โหลดแพ็กเกจพร็อกซี API แล้วค้นหาว่ามีไฟล์อยู่หรือไม่
    2. หากไฟล์ไม่ได้เป็นส่วนหนึ่งของชุดพร็อกซี API ที่เฉพาะเจาะจง ให้ตรวจสอบว่ามีอยู่ที่ระดับองค์กรหรือสภาพแวดล้อมหรือไม่ คุณสามารถใช้ Resource Files API ในการตรวจสอบนี้ได้

    หากไม่มีไฟล์ดังกล่าวในระดับพร็อกซี API, องค์กร หรือสภาพแวดล้อม แสดงว่านั่นคือสาเหตุของข้อผิดพลาด

    ในตัวอย่างด้านบน ชื่อไฟล์ PythonScript ที่ไม่ถูกต้องคือ myscript.py ในภาพหน้าจอด้านล่าง โปรดสังเกตว่าไฟล์ที่ระบุเป็น URL ของทรัพยากรในนโยบายจะไม่ปรากฏในส่วนสคริปต์ นอกจากนี้ ยังไม่มีไฟล์ในระดับองค์กรหรือสภาพแวดล้อมด้วย ดังนั้น การติดตั้งใช้งานพร็อกซี API จึงล้มเหลวโดยมีข้อผิดพลาดดังนี้

    Invalid resource url ref py://myscript.py in policy Python_script in myorg

ความละเอียด

ตรวจสอบว่าไฟล์ PythonScript ที่ระบุในองค์ประกอบ <ResourceURL> และ <IncludeURL> อ้างอิงถึงไฟล์ที่ถูกต้องซึ่งมีอยู่ที่ระดับ API Proxy, องค์กร หรือสภาพแวดล้อม

หากต้องการแก้ไขนโยบาย PythonScript ตัวอย่างที่แสดงด้านบน ให้เพิ่มไฟล์ myscript.py ลงในชุด API Proxy ในภาพหน้าจอด้านล่าง คุณจะเห็นว่าไฟล์ PythonScript ที่ระบุในองค์ประกอบ <ResourceURL> และ <IncludeURL> จะปรากฏในส่วนสคริปต์ของชุดพร็อกซี API