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“
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:
- Konfigurieren Sie zuerst den Load-Balancer, den Router und den Nachrichtenprozessor so, dass nach 3 Minuten eine Zeitüberschreitung auftritt.
- 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> ... - 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) |