16.08.17 – Versionshinweise zu Apigee Edge for Public Cloud

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zuApigee X wechseln.
info

Am Dienstag, 30. August 2016, haben wir eine neue Version von Apigee Edge für die Public Cloud veröffentlicht.

Neue Features und Updates

Im Folgenden sind die neuen Features und Aktualisierungen in diesem Release aufgeführt:

JSON-Nutzlasten in „Nachricht zuweisen“ und „Fehler auslösen“

Wenn eine JSON-Nutzlast mit einer Richtlinie vom Typ „Nachricht zuweisen“ oder „Fehler auslösen“ festgelegt wurde, mussten Nutzer manchmal Problemumgehungen verwenden, um sicherzustellen, dass eine JSON-Nachricht zur Laufzeit ordnungsgemäß formatiert wurde. Dazu gehörte beispielsweise, die Nutzlast mit einem umgekehrten Schrägstrich „\“ zu beginnen oder ein „variablePrefix“ und „variableSuffix“ für das Element „Payload“ anzugeben, auch wenn in der Nachricht keine Variablen verwendet wurden.

Mit dieser Verbesserung sind keine Problemumgehungen mehr erforderlich, um eine ordnungsgemäße JSON-Nachrichtenformatierung zu gewährleisten. Variablen können mit geschweiften Klammern angegeben werden, ohne ungültiges JSON zu erstellen. Im folgenden Beispiel wird der Wert von „message.content“ in die JSON-Nachricht eingefügt:

<Payload contentType="application/json">{"message" : "{message.content}"}</Payload>

Wenn Sie eine Problemumgehung verwendet haben, funktioniert Ihr Code weiterhin wie bisher. Sie können auch „variablePrefix“ und „variableSuffix“ anstelle von geschweiften Klammern verwenden, um Variablen anzugeben.

Weitere Informationen finden Sie im Element <Set><Payload> in den Referenzdokumenten zur Richtlinie „Nachricht zuweisen“ und zur Richtlinie „Fehler auslösen“. (APIRT-1160)

Verbesserungen der Richtlinie „XML-zu-JSON“

Die Richtlinie „XML-zu-JSON“ wurde um die folgenden Funktionen erweitert. Sie können die Richtlinie so konfigurieren, dass:

  • einige XML-Elemente während der Konvertierung als Arrays behandelt werden, wodurch die Werte im JSON-Dokument in eckige Klammern „[ ]“ gesetzt werden.
  • Ebenen der XML-Dokumenthierarchie im endgültigen JSON-Dokument entfernt oder gelöscht werden.

Weitere Informationen finden Sie unter XML zu JSON-Richtlinie. (APIRT-1144)

Mehrere Platzhalter in Ressourcenpfaden von API-Produkten

Beim Definieren von Ressourcenpfaden in API-Produkten können Sie Platzhalter an mehreren Stellen in einem Ressourcenpfad einfügen. Mit /team/*/invoices/** sind beispielsweise API-Aufrufe mit einem beliebigen Wert nach /team und beliebigen Ressourcenpfaden nach invoices/ zulässig. Ein zulässiger URI für einen API-Aufruf wäre proxyBasePath/team/finance/invoices/company/a.

Wenn Ihre vorhandenen Ressourcenpfade für API-Produkte nach diesem Release nicht mehr wie erwartet funktionieren, legen Sie die folgende Property für Ihre Organisation fest, um zum vorherigen Verhalten zurückzukehren: features.enableStandardWildCardMatchForAPIProductResources = true

(MGMT-3273)

Kryptofunktionen in JavaScript

Es ist eine neue Reihe von leistungsstarken JavaScript-crypto-Funktionen verfügbar, mit denen Sie die folgenden Hash-Objekte erstellen, abrufen und aktualisieren können: MD5, SHA-1, SHA256, SHA512. Mit dem Krypto-Objekt können Sie auch das Datum in verschiedenen Formaten abrufen. Weitere Informationen finden Sie unter JavaScript-Objektmodell. (APIRT-2886)

Überprüfung der JAR-Version für Java-Callouts

Wenn Sie eine Java-JAR-Ressource in einen API-Proxy hochladen, wird der HTTP-Statuscode 400 zurückgegeben (anstelle von 500), wenn die Version der Java-Ressource nicht mit der von Edge unterstützten Java-Version kompatibel ist, die unter Unterstützte Software und unterstützte Versionen aufgeführt ist. (MGMT-3420)

Validierung von API-Proxy-Ressourcen

Wenn Sie API-Proxy-Ressourcendateien (z. B. JavaScript- oder Java-JARs) auf der Umgebungsebene oder Organisationsebene gespeichert haben, müssen Sie diese Ressourcen nicht mehr auf API-Proxy-Ebene in ein Proxy-Bundle aufnehmen, damit die Validierung beim Import erfolgreich ist. Die Ressourcenvalidierung erfolgt jetzt zur Bereitstellungszeit und nicht zur Importzeit. (MGMT-1430)

Zeitlimit für einzelne API-Proxys konfigurieren

Sie können API-Proxys so konfigurieren, dass nach einer bestimmten Zeit eine Zeitüberschreitung auftritt (mit dem Status „504 Gateway Timeout“ ). Der primäre Anwendungsfall sind Private Cloud-Kunden, deren API-Proxys länger ausgeführt werden. Angenommen, Sie benötigen bestimmte Proxy-Zeitüberschreitungen nach 3 Minuten. Sie können in der Konfiguration für einen API-Proxy die neue api.timeout Property verwenden. So geht das mit dem 3-Minuten-Beispiel:

  1. Konfigurieren Sie zuerst den Load-Balancer, den Router und den Nachrichtenprozessor so, dass nach 3 Minuten eine Zeitüberschreitung auftritt.
  2. Konfigurieren Sie anschließend die relevanten Proxy-Zeitüberschreitungen nach 3 Minuten. Geben Sie den Wert in Millisekunden an. Beispiel:
    <ProxyEndpoint name="default">
      <HTTPProxyConnection>
        <BasePath>/v1/weather</BasePath>
        <Properties>
          <!-- api.timeout is in milliseconeds -->
          <Property name="api.timeout">180000</Property>
        </Properties>
        ...
  3. Beachten Sie jedoch, dass das Erhöhen der Systemzeitüberschreitungen zu Leistungsproblemen führen kann, da alle Proxys ohne die Einstellung „api.timeout“ die neuen, höheren Zeitüberschreitungen für Load-Balancer, Router und Nachrichtenprozessoren verwenden. Konfigurieren Sie daher andere API-Proxys, für die keine längeren Zeitüberschreitungen erforderlich sind, so, dass sie niedrigere Zeitüberschreitungen verwenden. Im folgenden Beispiel wird festgelegt, dass ein API-Proxy nach 1 Minute mit einer Zeitüberschreitung abläuft:
    <Property name="api.timeout">60000</Property>

Cloud-Kunden, die die Edge-Zeitüberschreitungen nicht ändern können, können auch ein API-Proxy-Zeitlimit konfigurieren, solange das Zeitlimit kürzer als das standardmäßige Edge-Zeitlimit für Nachrichtenprozessoren von 57 Sekunden ist.

Sie können den Wert nicht mit einer Variablen festlegen. Diese Property wird in der Referenz für Endpunktattribute behandelt. (APIRT-1778)

TLS/SSL für die Richtlinie „Nachrichtenprotokollierung“

<KeyStore> und <TrustStore> können in der SSLInfo-Konfiguration für die Richtlinie „Nachrichtenprotokollierung“ festgelegt werden, wodurch unidirektionales und bidirektionales TLS/SSL mit einem Protokollierungsdienst möglich ist. Sie konfigurieren SSLInfo für die Richtlinie „Nachrichtenprotokollierung“ genauso wie für einen TargetEndpoint eines Proxys TargetEndpoint. TLS/SSL für die Nachrichtenprotokollierung unterstützt jedoch nur das TCP-Protokoll. (APIRT-1858)

Fehlerkorrekturen

Folgende Fehler wurden in diesem Release behoben. Diese Liste ist hauptsächlich für Nutzer gedacht, die prüfen möchten, ob ihre Support-Tickets erfolgreich bearbeitet wurden. Sie enthält keine detaillierten Informationen für allgemeine Nutzer.

Problem-ID Beschreibung
SECENG-609 Laufzeitaufrufe schlagen nicht fehl, wenn der zugehörige Truststore gelöscht wird oder wenn das gültige Zertifikat im Truststore gelöscht wird
MGMT-3404 Das Aufrufen/Abrufen von Node.js-Logs und das Bereitstellen von Proxys ist sehr langsam
MGMT-3400 Aufruf der Management API „/userroles“ schlägt fehl, wenn der Nutzer, der den Aufruf ausführt, ein „+“-Zeichen im Namen hat
MGMT-3368 java.lang.ArrayIndexOutOfBoundsException: 1 beim Importieren eines API-Proxy-Bundles das das Verzeichnis „resources/node/resources“ enthält
MGMT-3364 OAuthV2: Überprüfung von „redirect_uri“
MGMT-3319 Das Auflisten von Einträgen in einem Vault, der in einem der Einträge einen Nullwert hat, funktioniert nicht für Organisationen (CPS und Nicht-CPS)
MGMT-3226 Beim Abfragen auf Organisationsebene/Umgebungsebene sollten nicht alle Daten abgerufen werden, da sonst die API fehlschlägt
In Release 160302 gab es einen Fehler, bei dem die Auflistung von Ressourcen auf Organisationsebene/Umgebungsebene fehlschlug, wenn die Gesamtgröße der Ressourcen über 16 MB lag. Dieser Fehler wurde behoben.
AXAPP-2429 Die Analytics API gibt bei Verwendung von „response_status_code“ einen Fehler beim Datenzugriff zurück
AXAPP-2386 Leere Berichte in täglichen Analytics-E-Mail-Berichten beheben
AXAPP-2347 Keine täglichen E-Mails mit der Analytics-Zusammenfassung erhalten
APIRT-3141 Java-Callouts schlagen beim Aufrufen von „new ExecutionResult()“ fehl, da der Konstruktor privat gemacht wurde
APIRT-3140 Die ServiceCallout-Richtlinie funktioniert nicht in HEAD-API-Aufrufen
APIRT-3131 Bei Verwendung der Monetarisierung mit einem externen Authentifizierungsanbieter wird für einen API-Proxy der falsche Wert für „createdBy“ angezeigt
APIRT-3121 Änderungen an der Ressourcendatei der Organisation werden nicht zu 100% übernommen
APIRT-3117 Der Nachrichtenprozessor hat eine CPU-Auslastung von 100% erreicht und verarbeitet keinen Traffic mehr
APIRT-3016 Fehler „Call timed out“ des Routers bei Bereitstellungen
APIRT-2975 Fehler beim Hochladen des Zertifikat-Bundles
APIRT-2955 Bestimmte Attribute von JSON-Antwortdaten können für den FHIR-konformen Content-Type-Header „application/json+fhir“ nicht maskiert werden
APIRT-2946 Die OAuthV2-RefreshToken-Richtlinie blendet Attribute nicht aus, obwohl „display“ auf „false“ gesetzt ist
APIRT-2908 Nach dem TLS 1.2-Update für den virtuellen Host muss TLS 1.2 für interne API-Aufrufe erzwungen werden
APIRT-2901 Aus dem Cache zurückgegebene gzippte Antworten werden doppelt komprimiert
APIRT-2873 Nachrichtenprozessoren geben nach dem Löschen von Produkten/Entwicklern/Proxys eine NullPointerException im Zusammenhang mit „VerifyAPIKey“ aus
APIRT-2871 E/A-intensive Richtlinien werden in Trace zweimal angezeigt
APIRT-2825 Grammatikfehler in der Fehlermeldung für das Zugriffstoken
APIRT-2750 Hohe Anzahl von Trafficfehlern in einer bestimmten Organisation
APIRT-2685 Traffic kann nicht fließen, da ein unbekannter Fehler ausgelöst wird
APIRT-2647 Fehler „Underlying input stream returned zero bytes“ bei Nicht-Produktions-/Entwicklungsumgebungen
APIRT-2630 Zeitweise Probleme beim Lesen von Werten aus dem Cache
APIRT-2620 Separate Threadpools für einige blockierende Schritte
APIRT-2610 java.lang.ClassCastException bei der Antwort-Cache-Richtlinie
APIRT-2608 Fehler beim Parsen von „Last-Modified“-Headern in Antwort-Cache-Richtlinien
APIRT-2605 Die Variablen „organization“ und „environment“ dürfen nicht über Richtlinien überschrieben werden
APIRT-2566 Die OAuthV2-Richtlinie gibt einen fehlerhaften WWW-Authenticate-Header zurück
APIRT-2491 TargetServer-Update aufgrund von RPC-Zeitüberschreitung zwischen Management und Nachrichtenprozessoren fehlgeschlagen
APIRT-2386 In einem API-Produkt mit leeren „Allowed OAuth scopes“ wird ein leerer Stringbereich erstellt
APIRT-2383 XSL-Transformationsrichtlinien protokollieren bei einem Fehler keine Daten
APIRT-2364 OAuth-Fehlerablaufvariablen werden bei einem Fehler nicht aktualisiert
APIRT-2216 Servergesendete Ereignisse – Probleme mit dem Ereignisstream in der Produktionsumgebung
APIRT-2079 Der DEBUG-cURL-Aufruf wird nicht beendet, nachdem das Zeitlimit für die erstellte Sitzung abgelaufen ist
APIRT-1495 XML-Bedrohungsschutz erkennt den FHIR-Content-Type nicht
APIRT-347 Die XSL-Richtlinie wird beim Import nicht ordnungsgemäß validiert (weist keine Ergebnisse den Ausgabevariablen zu, wie dokumentiert)