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

คุณกำลังดูเอกสารประกอบของ 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 1 to test
Invalid resource url format. Resource url is jsc:add_variables.js.

ตัวอย่างภาพหน้าจอ

สาเหตุ

หากรูปแบบของ URL ทรัพยากรที่ระบุภายใน <ResourceURL> หรือองค์ประกอบ <IncludeURL> ของนโยบาย JavaScript ไม่ถูกต้อง จะทำให้ใช้งานพร็อกซี API ไม่สำเร็จ

รูปแบบที่ถูกต้องในการระบุ URL ของทรัพยากรดังที่แสดงด้านล่าง

<ResourceURL>jsc://<file_name>.js</ResourceURL>
<IncludeURL>jsc://<file_name>.js</IncludeURL>

ตัวอย่างเช่น หากมีการระบุองค์ประกอบ <ResourceURL> ดังที่แสดงด้านล่าง การทำให้พร็อกซี API ใช้งานได้จะไม่สำเร็จเนื่องจากไม่เป็นไปตามรูปแบบที่กำหนด

<ResourceURL>jsc:add_variables.js</ResourceURL>

การวินิจฉัย

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

      Error Deploying Revision 1 to test
        Invalid resource url format. Resource url is jsc:add_variables.js.
    
  2. ตรวจสอบนโยบาย JavaScript ทั้งหมดในพร็อกซี API ที่เฉพาะเจาะจงซึ่งเกิดความล้มเหลว หากมีนโยบาย JavaScript ที่ URL ทรัพยากรที่ระบุใน <ResourceURL> หรือองค์ประกอบ <IncludeURL> ตรงกับรายการที่ไม่ถูกต้องซึ่งระบุไว้ในขั้นตอนที่ 1 ด้านบน นั่นเป็นสาเหตุของข้อผิดพลาด

    เช่น นโยบายต่อไปนี้ระบุ URL ของทรัพยากรเป็น jsc:add_variables.js ซึ่งตรงกับสิ่งที่อยู่ในข้อความแสดงข้อผิดพลาด

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-TotalVariable">
        <DisplayName>js-TotalVariable</DisplayName>
        <Properties/>
        <ResourceURL>jsc:add_variables.js</ResourceURL>
    </Javascript>
    

    เนื่องจาก URL ของทรัพยากรมีการระบุเป็น jsc:add_variables.js ซึ่งไม่ถูกต้อง การใช้งานพร็อกซี API จะล้มเหลวโดยมีข้อผิดพลาด:

    Invalid resource url format. Resource url is jsc:add_variables.js.
    

ความละเอียด

ตรวจสอบว่ารูปแบบ URL ทรัพยากรที่ระบุในองค์ประกอบ <ResourceURL> หรือ <IncludeURL> ของนโยบาย JavaScript ถูกต้อง เช่น

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-TotalVariable">
    <DisplayName>js-TotalVariable</DisplayName>
    <Properties/>
    <ResourceURL>jsc://add_variables.js</ResourceURL>
</Javascript>

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 8 to test
Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval

ตัวอย่างภาพหน้าจอ

สาเหตุ

ถ้าองค์ประกอบ <ResourceURL> และ <IncludeURL> อ้างอิงถึงไฟล์ JavaScript ที่ไม่มีอยู่ จะทำให้ใช้งานพร็อกซี API ไม่สำเร็จ

หากคุณกำลังทำให้กลุ่มพร็อกซีใช้งานได้จากเครื่องภายใน ไฟล์ต้นฉบับ JavaScript ต้องจัดเก็บไว้ใน /apiproxy/resources/jsc ในกรณีนี้ ไฟล์แหล่งที่มาจะกำหนดขอบเขตเป็นพร็อกซี API

ใน Edge UI ไฟล์ต้นฉบับของ JavaScript จะปรากฏภายใต้ jsc ในส่วนสคริปต์ของแผงการนำทางของเครื่องมือแก้ไขพร็อกซี API นอกจากนี้คุณยังจัดเก็บไฟล์ทรัพยากรในที่เก็บระดับองค์กรและสภาพแวดล้อมได้ด้วย (เช่น เพื่อทำให้โค้ด JavaScript ใช้ได้กับพร็อกซีทั้งหมดในองค์กรหรือสภาพแวดล้อม เป็นต้น)

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

การวินิจฉัย

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

    Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval
    
  2. ตรวจสอบว่าการอ้างอิง URL ทรัพยากรที่ระบุในนโยบาย JavaScript ที่ล้มเหลวตรงกับค่าที่ระบุในข้อความแสดงข้อผิดพลาด (ขั้นตอนที่ 1 ด้านบน) เช่น นโยบายต่อไปนี้ระบุการอ้างอิง URL ทรัพยากรเป็น jsc://dependent_js.js ซึ่งตรงกับสิ่งที่อยู่ในข้อความแสดงข้อผิดพลาด

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-TotalVariable">
      <DisplayName>js-TotalVariable</DisplayName>
      <Properties/>
      <ResourceURL>jsc://add_variables.js</ResourceURL>
      <IncludeURL>jsc://dependent_js.js</IncludeURL>
    </Javascript>
    
  3. ตรวจสอบว่าไฟล์แหล่งที่มาที่ระบุในไฟล์ขั้นตอนที่ 1 เป็นส่วนหนึ่งของกลุ่มพร็อกซี API ที่เฉพาะเจาะจง หรืออยู่ในขอบเขตองค์กรหรือสภาพแวดล้อมหรือไม่

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

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

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

    Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval
    

ความละเอียด

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

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

WrongResourceType

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

การติดตั้งใช้งานพร็อกซี API ผ่าน Edge UI หรือ Edge Management API ล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดนี้

Error Deploying Revision revision_number to environment
Resource JavaScript_file is the wrong type. It is invalid_type: but Javascript steps use type jsc:.

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Deploying Revision 2 to test
Resource js_checkType.js is the wrong type. It is node: but Javascript steps use type jsc:.

ตัวอย่างภาพหน้าจอ

สาเหตุ

ข้อผิดพลาดนี้จะเกิดขึ้นระหว่างการทำให้ใช้งานได้หากองค์ประกอบ <ResourceURL> และ <IncludeURL> ของนโยบาย JavaScript อ้างอิงถึงทรัพยากรประเภทอื่นนอกเหนือจาก jsc (ไฟล์ JavaScript)

ตัวอย่างเช่น หากมีการประกาศองค์ประกอบ <IncludeURL> ตามที่แสดงด้านล่าง จะทำให้พร็อกซี API ใช้งานได้ไม่สำเร็จ

<IncludeURL>node://javascript-dependency.js</IncludeURL>

เนื่องจากหมายถึงประเภททรัพยากร node ซึ่งไม่ถูกต้อง

การวินิจฉัย

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

    Resource js_checkType.js is the wrong type. It is node: but Javascript steps use type jsc:.
    
  2. ตรวจสอบนโยบาย JavaScript ทั้งหมดในพร็อกซี API ที่เฉพาะเจาะจงซึ่งเกิดความล้มเหลว หากมีนโยบาย JavaScript ที่ทรัพยากรที่ระบุใน <ResourceURL> หรือองค์ประกอบ <IncludeURL> ตรงกับประเภททรัพยากรที่ไม่ถูกต้องที่ระบุไว้ในขั้นตอนที่ 1 ด้านบน ก็จะทำให้เกิดข้อผิดพลาด

    เช่น นโยบายต่อไปนี้ระบุประเภททรัพยากรเป็น node ซึ่งตรงกับสิ่งที่อยู่ในข้อความแสดงข้อผิดพลาด

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-TotalVariable">
        <DisplayName>js-TotalVariable</DisplayName>
        <Properties/>
        <ResourceURL>node://js_checkType.js</ResourceURL>
        <IncludeURL>jsc://javascript-dependency.js</IncludeURL>
    </Javascript>
    

    เนื่องจากมีการระบุประเภททรัพยากรเป็น node ซึ่งไม่ถูกต้อง การติดตั้งใช้งานพร็อกซี API จะล้มเหลวโดยมีข้อผิดพลาด:

    Resource js_checkType.js is the wrong type. It is node: but Javascript steps use type jsc:.
    

ความละเอียด

ตรวจสอบว่าองค์ประกอบ <ResourceURL> และ <IncludeURL> ในนโยบาย JavaScript อ้างอิงถึงประเภททรัพยากร jsc เสมอ

หากต้องการแก้ไขตัวอย่างที่แสดงข้างต้น ให้แก้ไของค์ประกอบ <ResourceURL> ให้มีประเภททรัพยากรเป็น jsc

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-TotalVariable">
    <DisplayName>js-TotalVariable</DisplayName>
    <Properties/>
    <ResourceURL>jsc://js_checkType.js</ResourceURL>
    <IncludeURL>jsc://javascript-dependency.js</IncludeURL>
</Javascript>

NoResourceURLOrSource

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

การติดตั้งใช้งานพร็อกซี API ผ่าน Edge UI หรือ Edge Management API ล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดนี้

Error Saving Revision revision_number
Bundle is invalid. Errors:[Entity : Policy-policy_name, No ResourceURL or Source;].

ตัวอย่างข้อความแสดงข้อผิดพลาด

Error Saving Revision 10
Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].

ตัวอย่างภาพหน้าจอ

สาเหตุ

การทำให้นโยบาย JavaScript ใช้งานได้อาจล้มเหลวโดยมีข้อผิดพลาดนี้ในสถานการณ์ต่อไปนี้

  1. หากไม่ได้ประกาศองค์ประกอบ <ResourceURL> หรือไม่ได้กำหนด URL ทรัพยากรภายในองค์ประกอบนี้ องค์ประกอบ <ResourceURL> เป็นองค์ประกอบที่จำเป็น
  2. ระบบประกาศองค์ประกอบ <IncludeURL> แต่ไม่ได้กำหนด URL ของทรัพยากรภายในองค์ประกอบนี้ องค์ประกอบ <IncludeURL> เป็นตัวเลือกที่ไม่บังคับ แต่หากประกาศไว้ ต้องระบุ URL ของทรัพยากรภายในองค์ประกอบ <IncludeURL>

ตัวอย่างเช่น หากมีการประกาศองค์ประกอบ <IncludeURL> ตามที่แสดงด้านล่าง จะทำให้พร็อกซี API ใช้งานได้ไม่สำเร็จ

<IncludeURL></IncludeURL>

การวินิจฉัย

  1. ระบุนโยบาย JavaScript ที่เกิดข้อผิดพลาด คุณดูข้อมูลนี้ได้จากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ Policy-js-example

    Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].
    
  2. ในไฟล์ XML ของนโยบาย JavaScript ที่ล้มเหลว ให้ทำการตรวจสอบต่อไปนี้

    1. ต้องประกาศองค์ประกอบ <ResourceURL> และองค์ประกอบต้องกำหนด URL ของทรัพยากร
    2. หากมีการประกาศองค์ประกอบ <IncludeURL> คุณต้องระบุ URL ทรัพยากรภายใน คุณจะประกาศองค์ประกอบ <IncludeURL> หรือไม่ก็ได้

    หากการตรวจสอบข้างต้นล้มเหลว นั่นเป็นสาเหตุของข้อผิดพลาด

    ตัวอย่างที่ 1: นโยบายต่อไปนี้ไม่ได้ประกาศองค์ประกอบ <ResourceURL>

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-example">
        <DisplayName>js-example</DisplayName>
        <Properties/>
    </Javascript>
    

    เนื่องจากไม่มีการประกาศองค์ประกอบ <ResourceURL> การติดตั้งใช้งานพร็อกซี API จะล้มเหลวโดยมีข้อผิดพลาด:

    Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].
    

    ตัวอย่างที่ 2: นโยบายต่อไปนี้มีองค์ประกอบ <IncludeURL> ที่ว่างเปล่า

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-example">
      <DisplayName>js-example</DisplayName>
      <Properties/>
      <ResourceURL>jsc://check_var.js</ResourceURL>
      <IncludeURL></IncludeURL>
  </Javascript>

เนื่องจากองค์ประกอบ <IncludeURL> ไม่มี URL ทรัพยากร การติดตั้งใช้งานพร็อกซี API จะล้มเหลวโดยมีข้อผิดพลาด:

  Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].

ความละเอียด

โปรดตรวจสอบข้อมูลต่อไปนี้ในนโยบาย JavaScript

  1. ระบบประกาศองค์ประกอบ <ResourceURL> และกำหนด URL ของทรัพยากรภายในองค์ประกอบนี้ องค์ประกอบ <ResourceURL> เป็นองค์ประกอบที่จำเป็น
  2. หากมีการประกาศองค์ประกอบ <IncludeURL> คุณต้องกำหนด URL ของทรัพยากรที่รวมภายในองค์ประกอบนี้ องค์ประกอบ <IncludeURL> นั้นไม่บังคับ แต่หากประกาศแล้ว คุณจะต้องระบุ URL ของทรัพยากรภายในองค์ประกอบ <IncludeURL>

    หากต้องการแก้ไขตัวอย่าง 1 ที่แสดงข้างต้น ให้ใส่องค์ประกอบ <ResourceURL> ที่มีไฟล์ JavaScript ที่ถูกต้อง ดังนี้

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-example">
        <DisplayName>js-example</DisplayName>
        <Properties/>
        <ResourceURL>jsc://check_var.js</ResourceURL>
    </Javascript>
    

    หากต้องการแก้ไขตัวอย่างที่ 2 ที่แสดงข้างต้น ให้ใส่ไฟล์ JavaScript ที่ถูกต้องในองค์ประกอบ <IncludeURL>

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-example">
        <DisplayName>js-example</DisplayName>
        <Properties/>
        <ResourceURL>jsc://check_var.js</ResourceURL>
        <IncludeURL>jsc://js_dependency.js</IncludeURL>
    </Javascript>