פתרון בעיות בפריסת מדיניות JavaScript

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

InvalidResourceUrlFormat

הודעת השגיאה

כשפורסים שרת proxy של API דרך ממשק המשתמש של Edge או 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 לא תקין, הפריסה של שרת ה-proxy של ה-API תיכשל.

הפורמט הנכון לציון כתובת ה-URL של המשאב הוא:

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

לדוגמה, אם הרכיב <ResourceURL> מצוין כפי שמוצג בהמשך, הפריסה של שרת ה-proxy של ה-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 בשרת ה-proxy הספציפי של ה-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, והיא לא תקינה, הפריסה של שרת ה-proxy של ה-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

הודעת השגיאה

כשפורסים שרת proxy של API דרך ממשק המשתמש של 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 8 to test
Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval

צילום מסך לדוגמה

סיבה

אם הרכיבים <ResourceURL> ו-<IncludeURL> מפנים לקובץ JavaScript שלא קיים, הפריסה של שרת ה-proxy של ה-API תיכשל.

אם פורסים חבילת שרת proxy מהמחשב המקומי, קובצי המקור של JavaScript חייבים להיות מאוחסנים ב-/apiproxy/resources/jsc. במקרה כזה, קובצי המקור מוגבלים לשרת ה-API של ה-API.

בממשק המשתמש של Edge, קובצי המקור של ה-JavaScript מופיעים בקטע jsc בקטע Scripts שבחלונית הניווט של עורך ה-API של שרת ה-API. אפשר גם לאחסן קובצי משאבים במאגרים ברמת הארגון והסביבה (כדי שקוד JavaScript יהיה זמין לכל שרתי ה-proxy בארגון או ב-env, לדוגמה).

אם לא ניתן למצוא קובצי משאבים שצוינו במדיניות באף אחד מההיקפים הזמינים (שרת proxy, סביבה או ארגון), מתרחשת השגיאה הזו.

אבחון

  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 הוא חלק מחבילה ספציפית של שרת proxy ל-API, או שהוא קיים בהיקף של הארגון או הסביבה.

    1. כדי לבדוק אם הקובץ הוא חלק מחבילה ספציפית של שרת proxy ל-API, פועלים לפי אחד השלבים הבאים:
      1. בממשק המשתמש של Edge, צריך לבדוק אם הקובץ נמצא בקטע Scripts של שרת ה-API של שרת ה-proxy.
      2. יש להוריד את חבילת ה-API של שרת ה-proxy ולחפש אם הקובץ קיים.
    2. אם הקובץ לא נכלל בחבילה הספציפית של שרת ה-proxy של ה-API, צריך לבדוק אם הוא קיים ברמת הארגון או הסביבה. לביצוע החקירה הזו, תוכלו להשתמש ב-Resource Files API.

    אם הקובץ לא קיים ברמת שרת ה-proxy של ה-API, ברמת הארגון או ברמת הסביבה, זו הסיבה לשגיאה.

    בדוגמה שמתוארת למעלה, חשוב לזכור ששם קובץ ה-JavaScript הלא חוקי הוא dependent_js.js. בצילום המסך הבא, שימו לב שהקובץ שצוין ככתובת URL של משאב במדיניות לא מופיע בקטע 'סקריפטים'. לכן הוא לא חלק משרת ה-proxy של ה-API. אם גם הקובץ לא קיים ברמת הארגון או הסביבה, הפריסה של שרת ה-proxy של ה-API תיכשל ותופיע השגיאה:

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

רזולוציה

יש לוודא שקובצי ה-JavaScript שמצוינים ברכיבים <ResourceURL> ו-<IncludeURL> מפנים לקובץ חוקי שקיים ברמת שרת ה-proxy של ה-API, ברמת הארגון או ברמת הסביבה.

כדי לתקן את מדיניות JavaScript לדוגמה שמוצגת למעלה, צריך להוסיף את הקובץ dependent_js.js לחבילה של שרת proxy ל-API. בצילום המסך הבא אפשר לראות שקובצי ה-JavaScript שצוינו ברכיבים <ResourceURL> ו-<IncludeURL> גלויים בקטע 'סקריפטים' של חבילת ה-API Proxy.

WrongResourceType

הודעת השגיאה

כשפורסים שרת proxy של API דרך ממשק המשתמש של Edge או 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> מוצהר כפי שמוצג בהמשך, הפריסה של שרת ה-proxy של ה-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 בשרת ה-proxy הספציפי של ה-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 והוא לא חוקי, הפריסה של שרת ה-Proxy של 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

הודעת השגיאה

כשפורסים שרת proxy של API דרך ממשק המשתמש של Edge או 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> מוצהר כפי שמוצג בהמשך, הפריסה של שרת ה-proxy של ה-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>, פריסת שרת ה-proxy של ה-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 מסוג Proxy נכשלת ומוצגת השגיאה:

  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>