Fehlerbehebung bei Bereitstellungsfehler von PythonScript-Richtlinien

Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.

InvalidResourceUrlFormat

Fehlermeldung

Die Bereitstellung eines API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden 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

Fehler beim Bereitstellen von Überarbeitung 2 in "Prod".

Ursache

Wenn das Format der Ressourcen-URL im <ResourceURL>-Element oder im <IncludeURL>-Element der PythonScript-Richtlinie 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.
    

Lö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 Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden 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

Fehler beim Bereitstellen von Überarbeitung 2 in "Prod".

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 Apigee-Benutzeroberfläche werden die PythonScript-Quelldateien unter py im Bereich "Scripts" des API-Proxy-Editors angezeigt:

Abschnitt "Skripts" des API-Proxy-Editors.

Sie können auch Ressourcendateien in Repositories auf Umgebungsebene speichern, um beispielsweise PythonScript-Code für alle Proxys in einer 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 angegebene Datei Teil des spezifischen API-Proxy-Bundles ist oder im Umgebungsbereich vorhanden ist.

    1. Führen Sie einen der folgenden Schritte aus, um zu prüfen, ob die Datei Teil eines bestimmten API-Proxy-Bundles ist:
      1. Prüfen Sie in der Apigee-UI, ob sich diese Datei im Abschnitt "Skripts" 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 Umgebungsebene vorhanden ist. Sie können die Resource Files API für diese Prüfung verwenden.

    Wenn die Datei nicht auf API-Proxy- oder Umgebungsebene vorhanden ist, ist dies die Fehlerursache.

    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. Die Datei ist auch nicht auf der Umgebungsebene 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
    

Ungültige Ressourcen-URL.

Lö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- 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:

Abschnitt "Skripts" im API-Proxy-Bundle.