Fehlerbehebung bei Bereitstellungsfehler von PythonScript-Richtlinien

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

InvalidResourceUrlFormat

Fehlermeldung

Die Bereitstellung eines API-Proxys über die Edge-Benutzeroberfläche oder die Edge-Verwaltungs-API schlägt mit dieser Fehlermeldung fehl:

Error Deploying Revision revision_number to environment
Invalid resource url format. Resource url is invalid_URL.

Beispiel für Fehlermeldung

Error Deploying Revision 2 to prod
Invalid resource url format. Resource url is py:myscript.py.

Beispiel-Screenshot

Ursache

Wenn das Format der Ressourcen-URL im <ResourceURL>-Element oder im <IncludeURL>-Element der PythonScript ungültig ist, schlägt die Bereitstellung des API-Proxys fehl.

Das korrekte Format sieht so aus:

<ResourceURL>py://file_name.py</ResourceURL>
<IncludeURL>py://file_name.py</IncludeURL>

Wenn beispielsweise das <ResourceURL>-Element wie unten gezeigt angegeben ist, schlägt die Bereitstellung des API-Proxys fehl, weil er nicht dem festgelegten Muster folgt:

<ResourceURL>py:myscript.py</ResourceURL>

Diagnose

  1. Ermitteln Sie das ungültige Ressourcen-URL-Format, das in der PythonScript-Richtlinie verwendet wird. Diese Information finden Sie in der Fehlermeldung. Im folgenden Fehler ist das ungültige Ressourcen-URL-Format beispielsweise py:myscript.py.

    Invalid resource url format. Resource url is py:myscript.py.
    
  2. Untersuchen Sie alle PythonScript-Richtlinien im entsprechenden API-Proxy, in dem der Fehler aufgetreten ist. Wenn es eine PythonScript-Richtlinie gibt, bei der die im <ResourceURL>- oder <IncludeURL>-Element angegebene Ressourcen-URL mit dem in Schritt 1 oben angegebenen ungültigen Eintrag übereinstimmt, ist dies die Ursache des Fehlers.

    Die folgende Richtlinie gibt beispielsweise die Ressourcen-URL als py:myscript.py an, was dem Inhalt der Fehlermeldung entspricht:

    <?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>
    

    Da die Ressourcen-URL als py:myscript.py angegeben und ungültig ist, schlägt die Bereitstellung des API-Proxys mit dem folgenden Fehler fehl:

    Invalid resource url format. Resource url is py:myscript.py.
    

Auflösung

Überprüfen Sie, ob das im <ResourceURL>-Element der PythonScript-Richtlinie angegebene Ressourcen-URL-Format gültig ist. Beispiel:

<?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

Fehlermeldung

Die Bereitstellung eines API-Proxys über die Edge-Benutzeroberfläche oder die Edge-Verwaltungs-API schlägt mit dieser Fehlermeldung fehl:

Error Deploying Revision revision_number to environment
Invalid resource url ref invalid_reference in policy policy_name in org_name

Beispiel für Fehlermeldung

Error Deploying Revision 2 to prod
Invalid resource url ref py://myscript.py in policy Python_script in myorg

Beispiel-Screenshot

Ursache

Wenn sich die Elemente <ResourceURL> und <IncludeURL> auf eine nicht vorhandene PythonScript-Datei beziehen, schlägt die Bereitstellung des API-Proxys fehl. Wenn Sie ein Proxy-Bundle von Ihrem lokalen Computer bereitstellen, müssen die PythonScript-Quelldateien unter /apiproxy/resources/py(im API-Proxy-Bereich) gespeichert sein.

In der Edge-Benutzeroberfläche werden die PythonScript-Quelldateien unter py im Abschnitt "Skripts" im Navigatorbereich des API-Proxy-Editors angezeigt, wie unten dargestellt:

Sie können Ressourcendateien auch in Repositories auf Organisations- und Umgebungsebene speichern, um PythonScript-Code beispielsweise für alle Proxys in einer Organisation oder Umgebung verfügbar zu machen. Wenn in der Richtlinie angegebene Ressourcendateien nicht gefunden werden können, tritt dieser Fehler auf.

Diagnose

  1. Ermitteln Sie die PythonScript-Richtlinie, in der der Fehler aufgetreten ist, sowie die ungültige Ressourcen-URL-Referenz. Diese Information finden Sie in der Fehlermeldung. Im folgenden Fehler lautet der Richtlinienname beispielsweise Python_script und die Referenz der Ressourcen-URL ist py://myscript.py:

    Invalid resource url ref py://myscript.py in policy Python_script in myorg
    
  2. Überprüfen Sie, ob die in der fehlgeschlagenen PythonScript-Richtlinie angegebene Ressourcen-URL-Referenz mit dem in der Fehlermeldung angegebenen Wert übereinstimmt (Schritt 1). Die folgende Richtlinie gibt beispielsweise die Ressourcen-URL-Referenz als py://myscript.py an, die mit dem Inhalt der Fehlermeldung übereinstimmt:

    <?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. Prüfen Sie, ob die in Schritt 1 identifizierte Datei Teil des spezifischen API-Proxy-Bundles ist oder im Organisations- oder Umgebungsbereich vorhanden ist.

    1. Führen Sie einen der folgenden Schritte aus, um zu prüfen, ob die Datei zum jeweiligen API-Proxy-Bundle gehört:
      1. Prüfen Sie in der Edge-Benutzeroberfläche, ob sich diese Datei im Abschnitt „Scripts“ des API-Proxys befindet.
      2. Laden Sie das API-Proxy-Bundle herunter und prüfen Sie, ob die Datei vorhanden ist.
    2. Wenn die Datei nicht Teil des spezifischen API-Proxy-Bundles ist, prüfen Sie, ob sie auf Organisations- oder Umgebungsebene vorhanden ist. Sie können die Resource Files API für diese Prüfung verwenden.

    Wenn die Datei nicht auf API-Proxy-, Organisations- oder Umgebungsebene vorhanden ist, ist das die Ursache des Fehlers.

    Im obigen Beispiel lautet der ungültige PythonScript-Dateiname myscript.py. Im folgenden Screenshot wird die Datei, die in der Richtlinie als Ressourcen-URL angegeben ist, nicht im Bereich "Skripts" angezeigt. Außerdem ist die Datei auf Organisations- oder Umgebungsebene nicht vorhanden. Entsprechend schlägt die Bereitstellung des API-Proxys mit folgendem Fehler fehl:

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

Auflösung

Achten Sie darauf, dass die in den Elementen <ResourceURL> und <IncludeURL> angegebenen PythonScript-Dateien auf eine gültige Datei verweisen, die auf API-Proxy-, Organisations- oder Umgebungsebene vorhanden ist.

Zur Korrigierung des oben dargestellten PythonScript-Richtlinie fügen Sie die Datei "myscript.py" zum API-Proxy-Bundle hinzu. Im Screenshot unten sehen Sie, dass die in <ResourceURL>- und <IncludeURL>-Elementen angegebenen PythonScript-Dateien im Abschnitt "Skripts" des API-Proxy-Bundles sichtbar sind: