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

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

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 "Attribuer un message" et "Générer une erreur"

Lors de la définition d'une charge utile JSON à l'aide d'une stratégie "Attribuer un message" ou "Augmenter les erreurs", les utilisateurs devaient parfois recourir à des solutions de contournement pour s'assurer qu'un message JSON était correctement formaté au moment de l'exécution, par exemple en commençant la charge utile par une barre oblique inverse "\" ou en spécifiant un préfixe et un suffixe sur l'élément de charge utile, même si aucune variable n'était utilisée dans le message.

Avec cette amélioration, aucune solution de contournement n'est nécessaire pour garantir une mise en forme correcte des messages JSON. De plus, les variables peuvent être spécifiées à l'aide d'accolades sans créer de JSON non valide. Par exemple, la requête 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 à 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 la documentation de référence sur la stratégie de message d'affectation et la stratégie sur les erreurs de déclenchement. (APIRT-1160).

Améliorations apportées aux règles XML vers JSON

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

  • Lors de la conversion, traitez certains éléments XML comme des tableaux. Pour ce faire, placez les valeurs entre crochets "[ ]" dans le document JSON.
  • Supprimer ou supprimer des niveaux de la hiérarchie des documents XML dans le document JSON final.

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

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

Lorsque vous définissez des chemins d'accès aux 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 une valeur après /team et tous les chemins d'accès aux ressources après invoices/. Voici un exemple d'URI autorisé pour un appel d'API : proxyBasePath/team/finance/invoices/company/a.

Après cette version, si les chemins d'accès aux ressources de produits d'API existants cessent de fonctionner comme prévu, définissez la propriété suivante dans votre organisation afin de rétablir le 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 suivants: MD5, SHA-1, SHA256 et 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'accroche Java

Lors de l'importation d'une ressource JAR Java vers un proxy d'API, un code d'état HTTP 400 est renvoyé (au lieu d'un code 500) si la version de la ressource Java est incompatible avec la version de Java compatible avec Edge, répertoriée dans Logiciels et versions compatibles. (MGMT-3420)

Validation des ressources proxy d'API

Lorsque des fichiers de ressources de proxy d'API (tels que des fichiers JavaScript ou JAR Java) sont stockés au niveau de l'environnement ou de l'organisation, le framework de validation ne vous oblige plus à inclure ces ressources au niveau du proxy d'API dans un groupe de proxys pour que l'importation réussisse la validation. La validation des ressources s'effectue désormais au moment du déploiement et non lors de l'importation. (MGMT-1430)

Configurer le délai avant expiration pour les proxys d'API individuels

Vous pouvez configurer les proxys d'API pour qu'ils expirent après un délai spécifié (avec un état de délai d'expiration de la passerelle 504). Le cas d'utilisation principal concerne les clients de cloud privé dont l'exécution prend plus de temps que les proxys d'API. Par exemple, supposons que vous ayez besoin que des proxys spécifiques expirent 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 cet exemple de trois minutes:

  1. Assurez-vous d'abord de configurer l'équilibreur de charge, le routeur et le processeur de messages pour qu'ils expirent au bout de trois minutes.
  2. Configurez ensuite les proxys appropriés pour qu'ils expirent 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 avant expiration 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é pour l'équilibreur de charge, le routeur et le processeur de messages, plus élevés. Configurez donc d'autres proxys d'API qui ne nécessitent pas de délais d'inactivité plus longs pour utiliser des délais d'inactivité inférieurs. Par exemple, la commande suivante définit un proxy d'API pour qu'il expire après une minute:
    <Property name="api.timeout">60000</Property>

Les clients Cloud, qui ne peuvent pas modifier les délais avant expiration Edge, peuvent également configurer un délai avant expiration du proxy d'API, à condition que celui-ci soit inférieur au délai avant expiration du processeur de messages Edge standard de 57 secondes.

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

TLS/SSL pour les règles de journalisation des messages

<KeyStore> et <TrustStore> peuvent être définis dans la configuration SSLInfo de la règle de journalisation des messages, ce qui autorise les protocoles TLS/SSL unidirectionnels avec un service de journalisation. La configuration de SSLInfo sur la règle de journalisation des messages s'effectue de la même manière que sur un proxy TargetEndpoint. Toutefois, Message Logging TLS/SSL 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 pendant la suppression du magasin de confiance associé ou lorsque le certificat valide du magasin de confiance est supprimé
MGMT-3404 L'affichage et la récupération des journaux Node.js et le déploiement de proxys sont très lents
MGMT-3400 L'appel à l'API de gestion /userroles échoue si le nom de l'utilisateur qui effectue cet appel est précédé d'un signe "+"
MGMT-3368 java.lang.ArrayIndexOutOfBoundsException: 1, lors de l'importation d'un groupe de proxys d'API contenant le répertoire resources/node/resources
MGMT-3364 OAuthV2: vérification redirect_uri
MGMT-3319 Lister les entrées d'un coffre-fort dont l'une d'elles contient une valeur nulle ne fonctionne pas pour les organisations (CPS et non-CPS)
MGMT-3226 L'interrogation au niveau de l'organisation/de l'environnement ne doit pas extraire toutes les données provoquant l'échec de l'API
La version 160302 comportait un bug qui empêchait l'affichage de la liste des ressources au niveau de l'organisation/de l'environnement si la taille cumulée des ressources était supérieure à 16 Mo. Ce correctif s'en charge.
AXAPP-2429 L'API Analytics qui utilise Response_status_code renvoie une erreur d'accès aux données
AXAPP-2386 Corriger le contenu des rapports vides dans les rapports Analytics quotidiens envoyés par e-mail
AXAPP-2347 Je ne reçois pas d'e-mails récapitulant quotidiennement les données analytiques
APIRT-3141 Les appels Java échouent lors de l'appel de la nouvelle ExecutionResult() , car le constructeur est désormais privé
APIRT-3140 La règle ServiceCall ne fonctionne pas dans les appels de l'API HEAD
APIRT-3131 Erreur createBy affichée pour un proxy d'API lors de l'utilisation de la monétisation avec un fournisseur d'authentification externe
APIRT-3121 Une modification apportée au fichier de ressources de l'organisation n'est pas efficace à 100%
APIRT-3117 MP a atteint 100% d'utilisation du processeur et a cessé de diffuser le trafic
APIRT-3016 Erreurs "Call timed out" (Expiration du délai d'appel) du routeur lors des déploiements
APIRT-2975 Échec de l'importation du groupe de certificats
APIRT-2955 Impossible de masquer certains attributs des données de réponse JSON pour l'en-tête de type de contenu FHIR-complaint "application/json+fhir"
APIRT-2946 La règle OAuthV2-RefreshToken ne masque pas les attributs, même si l'affichage est défini sur "false"
APIRT-2908 L'application de TLS 1.2 pour les appels d'API internes est requise après la mise à jour de TLS 1.2 sur l'hôte virtuel.
APIRT-2901 Les réponses compressées avec Gzip renvoyées depuis le cache sont compressées en double
APIRT-2873 Les MP génèrent une exception NullPointerException liée à VerifyAPIKey après la suppression de produits/développeurs/proxys
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 Échecs de trafic fréquents dans une organisation spécifique
APIRT-2685 Le trafic ne peut pas circuler, car une erreur inconnue est générée
APIRT-2647 Erreur "Le flux d'entrée sous-jacent renvoie zéro octet" avec nonprod/dev
APIRT-2630 Problèmes intermittents lors des tentatives de lecture de la valeur du cache
APIRT-2620 Pool de threads distinct pour certaines étapes de blocage
APIRT-2610 java.lang.ClassCastException avec stratégie de cache de réponse
APIRT-2608 Erreur d'analyse des en-têtes Last-Modified dans les stratégies de cache de réponse
APIRT-2605 Les variables"organisation" et "environnement" ne doivent pas être remplacées via des règles
APIRT-2566 La règle OAuthV2 renvoie un en-tête WWW-Authenticate incorrect
APIRT-2491 Échec de la mise à jour de TargetServer en raison du délai avant expiration du RPC entre la gestion et les MP
APIRT-2386 Un champ d'application de chaîne vide est créé dans un produit d'API avec un champ d'application OAuth autorisé vide
APIRT-2383 Les stratégies de transformation XSL ne semblent consigner aucune donnée en cas d'erreur
APIRT-2364 Les variables de flux de défaillance OAuth ne sont pas mises à jour en cas d'erreur
APIRT-2216 Événements envoyés par le serveur – Flux d'événements présentant des problèmes en production
APIRT-2079 L'appel cURL de débogage ne s'arrête pas après l'expiration du délai pour la session créée
APIRT-1495 La protection contre les menaces XML n'intercepte pas le type de contenu
APIRT-347 La stratégie XSL n'est pas correctement validée à l'importation (elle n'affecte pas les résultats aux variables de sortie comme indiqué)