16.08.17 - Notes de version d'Apigee Edge pour le cloud public

Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.

Le mardi 30 août 2016, nous avons lancé une nouvelle version d'Apigee Edge pour le cloud public.

Nouvelles fonctionnalités et mises à jour

Vous trouverez ci-dessous les nouvelles fonctionnalités et mises à jour offertes par cette version.

Charges utiles JSON dans les messages "Assign" et "Raise Fault"

Lors de la définition d'une charge utile JSON à l'aide d'une règle AssignMessage ou RaiseFault, les utilisateurs devaient parfois utiliser des solutions de contournement pour s'assurer qu'un message JSON était correctement mis en forme au moment de l'exécution, par exemple en commençant la charge utile par une barre oblique inverse "\" ou en spécifiant un variablePrefix et un variableSuffix sur l'élément Payload, même si aucune variable n'était utilisée dans le message.

Grâce à cette amélioration, aucune solution de contournement n'est nécessaire pour garantir la mise en forme correcte des messages JSON. De plus, les variables peuvent être spécifiées à l'aide d'accolades sans créer de fichier JSON non valide. Par exemple, la commande suivante insère la valeur de message.content dans le message JSON :

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

Si vous avez utilisé une solution de contournement, votre code continuera de fonctionner tel quel. Vous pouvez également utiliser variablePrefix et variableSuffix au lieu d'accolades pour indiquer les variables.

Consultez l'élément <Set><Payload> dans les documents de référence sur la règle AssignMessage et la règle RaiseFault. (APIRT-1160)

Améliorations apportées à la règle XML vers JSON

La règle XML vers JSON a été améliorée avec les fonctionnalités suivantes. Vous pouvez configurer la règle pour :

  • Traitez certains éléments XML comme des tableaux lors de la conversion, ce qui place les valeurs entre crochets "[ ]" dans le document JSON.
  • Supprime ou élimine des niveaux de la hiérarchie du document XML dans le document JSON final.

Pour en savoir plus, consultez Règle XML vers JSON. (APIRT-1144)

Plusieurs caractères génériques dans les chemins d'accès aux ressources des produits d'API

Lorsque vous définissez des chemins de ressources dans un produit d'API, vous pouvez inclure des caractères génériques à plusieurs endroits dans un chemin de ressource. Par exemple, /team/*/invoices/** autorise les appels d'API avec n'importe quelle valeur après /team et n'importe quel chemin de ressource après invoices/. Un URI autorisé lors d'un appel d'API serait proxyBasePath/team/finance/invoices/company/a.

Si, après cette version, les chemins d'accès aux ressources de vos produits API existants ne fonctionnent plus comme prévu, définissez la propriété suivante sur votre organisation pour revenir au comportement précédent : features.enableStandardWildCardMatchForAPIProductResources = true

(MGMT-3273)

Fonctions de chiffrement en JavaScript

Un nouvel ensemble de fonctions JavaScript crypto hautes performances est disponible pour créer, obtenir et mettre à jour les objets de hachage suivants : MD5, SHA-1, SHA256, SHA512. L'objet crypto vous permet également d'obtenir la date dans différents formats. Pour en savoir plus, consultez la page Modèle d'objet JavaScript. (APIRT-2886)

Vérification de la version JAR de l'appel Java

Lorsque vous importez une ressource JAR Java dans un proxy d'API, un code d'état HTTP 400 est renvoyé (au lieu de 500) si la version de la ressource Java n'est pas compatible avec la version de Java acceptée par Edge, listée dans Logiciels et versions compatibles. (MGMT-3420)

Validation des ressources de proxy d'API

Lorsque vous stockez des fichiers de ressources de proxy d'API (tels que des fichiers JAR JavaScript ou Java) au niveau de l'environnement ou de l'organisation, le framework de validation ne vous oblige plus à inclure également ces ressources au niveau du proxy d'API dans un bundle de proxy pour que l'importation soit validée. La validation des ressources a désormais lieu au moment du déploiement, et non de l'importation. (MGMT-1430)

Configurer le délai d'inactivité pour des proxys d'API individuels

Vous pouvez configurer des proxys d'API pour qu'ils expirent au bout d'une période spécifiée (avec un état 504 Gateway Timeout). Le principal cas d'utilisation est destiné aux clients de cloud privé qui disposent de proxys d'API dont l'exécution prend plus de temps. Par exemple, supposons que vous ayez besoin que des proxys spécifiques dépassent le délai au bout de trois minutes. Vous pouvez utiliser une nouvelle propriété api.timeout dans la configuration d'un proxy d'API. Voici comment procéder avec l'exemple de trois minutes :

  1. Commencez par configurer l'équilibreur de charge, le routeur et le processeur de messages pour qu'ils dépassent le délai au bout de trois minutes.
  2. Configurez ensuite les proxys concernés pour qu'ils dépassent le délai au bout de trois minutes. Spécifiez la valeur en millisecondes. Exemple :
    <ProxyEndpoint name="default">
      <HTTPProxyConnection>
        <BasePath>/v1/weather</BasePath>
        <Properties>
          <!-- api.timeout is in milliseconeds -->
          <Property name="api.timeout">180000</Property>
        </Properties>
        ...
  3. Notez toutefois que l'augmentation des délais d'inactivité du système peut entraîner des problèmes de performances, car tous les proxys sans paramètre api.timeout utilisent les nouveaux délais d'inactivité plus élevés de l'équilibreur de charge, du routeur et du processeur de messages. Configurez donc d'autres proxys d'API qui ne nécessitent pas de délais d'inactivité plus longs afin d'utiliser des délais d'inactivité plus courts. Par exemple, la commande suivante définit le délai d'inactivité d'un proxy d'API au bout d'une minute :
    <Property name="api.timeout">60000</Property>

Les clients Cloud, qui ne peuvent pas modifier les délais d'inactivité Edge, peuvent également configurer un délai d'inactivité du proxy d'API, tant que ce délai est inférieur au délai d'inactivité du processeur de messages Edge standard de 57 secondes.

Vous ne pouvez pas remplir la valeur avec une variable. Cette propriété est décrite dans la documentation de référence sur les propriétés des points de terminaison. (APIRT-1778)

Règle TLS/SSL pour la journalisation des messages

<KeyStore> et <TrustStore> peuvent être définis dans la configuration SSLInfo de la règle de journalisation des messages, ce qui permet d'utiliser TLS/SSL unidirectionnel et bidirectionnel avec un service de journalisation. Vous configurez SSLInfo dans la règle Message Logging de la même manière que dans un TargetEndpoint de proxy. Toutefois, le protocole TLS/SSL de la journalisation des messages n'est compatible qu'avec le protocole TCP. (APIRT-1858)

Bugs résolus

Les bugs suivants sont résolus dans cette version. Cette liste s'adresse principalement aux utilisateurs qui veulent vérifier si leurs demandes d'assistance ont été corrigées. Elle n'est pas conçue pour fournir des informations détaillées à tous les utilisateurs.

ID du problème Description
SECENG-609 Les appels d'exécution n'échouent pas lors de la suppression du truststore associé ou lorsque le certificat valide du truststore est supprimé.
MGMT-3404 L'affichage/la récupération des journaux Node.js et le déploiement des proxys sont très lents
MGMT-3400 L'appel à l'API de gestion /userroles échoue si le nom de l'utilisateur qui effectue l'appel contient un signe "+".
MGMT-3368 java.lang.ArrayIndexOutOfBoundsException: 1, lors de l'importation d'un bundle de proxy d'API contenant un répertoire resources/node/resources
MGMT-3364 OAuthV2 : vérification de redirect_uri
MGMT-3319 L'affichage des entrées d'un coffre-fort contenant une entrée avec une valeur nulle ne fonctionne pas pour les organisations (CPS et non CPS)
MGMT-3226 Les requêtes au niveau de l'organisation/de l'environnement ne doivent pas extraire toutes les données, ce qui entraînerait l'échec de l'API.
La version 160302 comportait un bug qui entraînait l'échec de la liste des ressources au niveau de l'organisation/de l'environnement si la taille cumulée des ressources dépassait 16 Mo. Ce correctif résout ce problème.
AXAPP-2429 L'API Analytics utilisant response_status_code renvoie une erreur d'accès aux données
AXAPP-2386 Corriger le contenu vide des rapports quotidiens par e-mail dans Analytics
AXAPP-2347 Je ne reçois pas les e-mails récapitulatifs quotidiens sur les données analytiques
APIRT-3141 Les appels Java échouent lors de l'appel de new ExecutionResult() , car le constructeur a été rendu privé.
APIRT-3140 La règle ServiceCallout ne fonctionne pas dans les appels d'API HEAD
APIRT-3131 Le champ "createdBy" est incorrect pour un proxy d'API lorsque la monétisation est utilisée avec un fournisseur d'authentification externe
APIRT-3121 La modification apportée au fichier de ressources de l'organisation n'est pas efficace à 100 %
APIRT-3117 Le MP a atteint 100 % d'utilisation du processeur et a cessé de diffuser du trafic
APIRT-3016 Erreurs "Délai d'appel expiré" du routeur lors des déploiements
APIRT-2975 Échec de l'importation du bundle de certificats
APIRT-2955 Impossible de masquer certains attributs des données de réponse JSON pour l'en-tête Content-Type 'application/json+fhir' conforme à FHIR
APIRT-2946 La règle OAuthV2-RefreshToken n'affiche pas les attributs même si la valeur "display" est définie sur "false"
APIRT-2908 L'application de TLS1.2 pour les appels d'API internes est requise après la mise à jour de TLS1.2 sur l'hôte virtuel.
APIRT-2901 Les réponses compressées au format Gzip renvoyées depuis le cache sont doublement compressées
APIRT-2873 Les MP génèrent une exception NullPointerException liée à VerifyAPIKey après la suppression de produits/développeurs/proxies.
APIRT-2871 Règles IOIntensive apparaissant deux fois dans Trace
APIRT-2825 Erreur grammaticale dans la réponse d'erreur du jeton d'accès
APIRT-2750 Nombre élevé d'échecs de trafic dans une organisation spécifique
APIRT-2685 Le trafic ne peut pas transiter en raison d'une erreur inconnue.
APIRT-2647 Erreur "Le flux d'entrée sous-jacent a renvoyé zéro octet" avec nonprod/dev
APIRT-2630 Problèmes intermittents lors de la tentative de lecture de la valeur à partir du cache
APIRT-2620 Pool de threads distinct pour certaines étapes bloquantes
APIRT-2610 java.lang.ClassCastException avec la règle Response Cache
APIRT-2608 Erreur d'analyse des en-têtes "Last-Modified" dans les règles de mise en cache des réponses
APIRT-2605 Les variables"organization" et "environment" ne doivent pas pouvoir être écrasées par des règles.
APIRT-2566 La règle OAuthV2 renvoie un en-tête WWW-Authenticate mal formé
APIRT-2491 Échec de la mise à jour de TargetServer en raison du délai avant expiration du RPC entre la gestion et mps
APIRT-2386 Un champ d'application de chaîne vide est créé dans un produit d'API avec des champs d'application OAuth autorisés vides
APIRT-2383 Les règles de transformation XSL ne semblent enregistrer aucune donnée en cas d'erreur.
APIRT-2364 Les variables de flux d'erreur OAuth ne sont pas mises à jour en cas d'erreur
APIRT-2216 Événements envoyés par le serveur : problèmes liés au flux d'événements en production
APIRT-2079 L'appel cURL DEBUG ne s'arrête pas après l'expiration du délai avant expiration pour la session créée.
APIRT-1495 La protection contre les menaces XML ne détecte pas le type de contenu FHIR
APIRT-347 La règle XSL n'est pas correctement validée lors de l'importation (n'attribue pas de résultats aux variables de sortie comme indiqué dans la documentation).