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**.
info

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 règles Assign Message et Raise Fault

Lors de la définition d'une charge utile JSON à l'aide d'une règle Assign Message ou Raise Fault, 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, ils devaient commencer la charge utile par une barre oblique inverse "\" ou spécifier un élément variablePrefix et 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. Les variables peuvent être spécifiées à l'aide d'accolades sans créer de 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 des variables.

Consultez l'élément <Set><Payload> dans les documents de référence sur les règles Assign Message et Raise Fault. (APIRT-1160)

Améliorations de 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 :

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

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

Caractères génériques multiples dans les chemins d'accès aux 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 d'accès aux ressources. Par exemple, /team/*/invoices/** autorise les appels d'API avec une seule valeur après /team et tous les chemins d'accès aux ressources après invoices/. Un URI autorisé sur un appel d'API serait être proxyBasePath/team/finance/invoices/company/a.

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

(MGMT-3273)

Fonctions de cryptographie en JavaScript

Un nouvel ensemble de fonctions JavaScript hautes performances crypto est disponible pour créer, obtenir et mettre à jour les objets de hachage suivants : MD5, SHA-1, SHA256, SHA512. L'objet cryptographie vous permet également d'obtenir la date dans différents formats. Pour en savoir plus, consultez la section 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 Java compatible avec Edge, répertorié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 JavaScript ou JAR 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 réussisse la validation. La validation des ressources a désormais lieu au moment du déploiement, et non au moment de l'importation. (MGMT-1430)

Configurer le délai d'inactivité pour des proxy 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. Supposons, par exemple, que vous ayez besoin que des proxys spécifiques expirent au bout de trois minutes. Vous pouvez utiliser une nouvelle api.timeout propriété 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 après 3 minutes.
  2. Configurez ensuite les proxys concerné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 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 renseigner 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)

TLS/SSL pour la règle 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 permet d'utiliser TLS/SSL unidirectionnel et bidirectionnel avec un service de journalisation. Vous configurez SSLInfo sur la règle de journalisation des messages de la même manière que vous sur un TargetEndpoint de proxy TargetEndpoint. Toutefois, 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 magasin de confiance associé ou lorsque le certificat valide du magasin de confiance 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 l'utilisateur qui effectue l'appel comporte un "+" signe dans son nom
MGMT-3368 java.lang.ArrayIndexOutOfBoundsException : 1, lors de l'importation d'un bundle de proxy d'API contenant le répertoire resources/node/resources
MGMT-3364 OAuthV2 : vérification de redirect_uri
MGMT-3319 Les entrées de liste dans un coffre-fort dont l'une des entrées a une valeur nulle ne fonctionnent 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, ce qui entraîne 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 Correction du contenu vide des rapports dans les rapports quotidiens par e-mail Analytics
AXAPP-2347 Non-réception des e-mails quotidiens de résumé Analytics
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 createdBy incorrect affiché pour un proxy d'API lors de l'utilisation de la monétisation 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 processeur de messages a atteint 100% d'utilisation du processeur et a cessé de diffuser le trafic
APIRT-3016 Erreurs "Call timed out" (Délai d'inactivité dépassé) 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 conforme à FHIR '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 l'appel d'API interne 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 doublement compressées
APIRT-2873 Les processeurs de messages génèrent une exception NullPointerException liée à VerifyAPIKey après la suppression de produits/développeurs/proxys
APIRT-2871 Les règles IOIntensive apparaissent deux fois dans le traçage
APIRT-2825 Erreur grammaticale dans la réponse d'erreur accesstoken
APIRT-2750 Nombre élevé d'échecs de trafic dans une organisation spécifique
APIRT-2685 Le trafic ne peut pas circuler en raison d'une erreur inconnue
APIRT-2647 Erreur"Underlying input stream returned zero bytes" (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 de réponse du cache
APIRT-2608 Erreur d'analyse des en-têtes Last-Modified dans les règles de réponse du cache
APIRT-2605 Les variables"organization" et "environment" ne doivent pas être autorisées à être remplacées via 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 d'inactivité RPC entre la gestion et les processeurs de messages
APIRT-2386 Une autorisation de chaîne vide est créée dans un produit d'API avec des autorisations OAuth autorisées vides scopes
APIRT-2383 Les règles de transformation XSL ne semblent pas enregistrer de données 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 de flux d'événements en production
APIRT-2079 L'appel cURL DEBUG ne s'arrête pas après l'expiration du délai d'inactivité 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 les résultats aux variables de sortie comme indiqué)