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

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

Le mardi 3 décembre 2019, nous avons commencé à déployer une mise à jour de cette version d'Apigee Edge pour le cloud public. (La version initiale a été publiée le jeudi 18 avril 2019.)

Nouvelles fonctionnalités et actualités

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

ID du problème Nom du composant Description
Apigee a commencé à déployer les mises à jour suivantes le 1er octobre 2019.
110995050 Exécution des API

Équilibrage de charge : plus de contrôle pour supprimer les serveurs défaillants

Lorsque vous configurez un équilibreur de charge pour un proxy d'API, vous pouvez déterminer le nombre d'échecs de réponse avant qu'un serveur ne soit supprimé de la rotation de l'équilibrage de charge. Une réponse en échec signifie qu'Apigee ne reçoit aucune réponse d'un serveur cible. Lorsque cela se produit, le compteur d'échecs augmente d'une unité. Lorsque Apigee reçoit une réponse d'une cible, même s'il s'agit d'une erreur HTTP (par exemple, une erreur 500), celle-ci est comptabilisée comme une réponse du serveur cible, et le compteur d'échecs est réinitialisé. Pour vous assurer que les réponses HTTP incorrectes (telles que les erreurs 500) incrémentent également le compteur d'échecs visant à retirer dès que possible un serveur non opérationnel de la rotation d'équilibrage de charge, vous pouvez ajouter un élément <ServerUnhealthyResponse> avec des éléments enfants <ResponseCode> à la configuration de votre équilibreur de charge. Edge comptabilise alors comme des échecs les réponses comportant ces codes.

<HTTPTargetConnection>
  <LoadBalancer>
    <Algorithm>RoundRobin</Algorithm>
    <Server name="target1" />
    <Server name="target2" />
    <ServerUnhealthyResponse>
        <ResponseCode>500</ResponseCode>
        <ResponseCode>502</ResponseCode>
        <ResponseCode>503</ResponseCode>
    </ServerUnhealthyResponse>
    <MaxFailures>5</MaxFailures>
  </LoadBalancer>
</HTTPTargetConnection>
  
  
130416715 Sécurité

Améliorations apportées à la règle AccessControl

La règle AccessControl détermine les adresses IP qui peuvent appeler un proxy d'API. Un nouvel élément de cette règle permet aux développeurs d'API de mieux identifier les adresses IP à évaluer.

<IgnoreTrueClientIPHeader> : facultatif (la valeur par défaut est "false"). Lorsque cette règle est définie sur "true", la règle ignore l'en-tête True-Client-IP et évalue les adresses IP dans l'en-tête X-Forwarded-For, en suivant le comportement de l'évaluation X-Forwarded-For que vous avez configuré.

<AccessControl async="false" continueOnError="false"
    enabled="true" name="Access-Control-1">
    <DisplayName>Access Control-1</DisplayName>
    <IgnoreTrueClientIPHeader>true</IgnoreTrueClientIPHeader>
    ...
</AccessControl>
Apigee a publié les mises à jour suivantes le 18 avril 2019
117558815,
119856499,
110548137,
79526748,
72989449,
70712859,
69049041
Exécution des API JWS et JWT
Nous avons ajouté de nouvelles règles pour la compatibilité avec JWS et amélioré nos règles JWT existantes.

Pour en savoir plus, consultez ce post de la communauté.

122610025 Exécution des API Autoriser RaiseFault à définir également le motif de l'erreur et des variables arbitraires comme dans AssignMessage

Deux nouveaux éléments sont disponibles dans la règle RaiseFault pour rendre la gestion des FaultRules plus propre et plus efficace.

  • ShortFaultReason est un booléen qui, lorsqu'il est défini sur "true", place le nom de la règle dans la variable fault.reason.
  • AssignVariable, disponible dans FaultResponse, vous permet d'attribuer la réponse d'erreur à une variable à utiliser par d'autres règles dans le flux de proxy d'API.
121149811 Cibles hébergées Limites appliquées aux cibles hébergées

Des limites sont désormais appliquées aux cibles hébergées. Pour en savoir plus sur les limites, consultez Limites.

117659213 Exécution des API Paramétrer les plages d'adresses IP dans la règle AccessControl

Vous pouvez désormais utiliser des variables de modèle de message pour définir des adresses IP et des masques CIDR dans la stratégie AccessControl. Par exemple, si vous souhaitez stocker une adresse IP et un masque dans un mappage clé-valeur (KVM), vous pouvez récupérer ces valeurs à partir d'une variable que vous avez définie dans le flux du proxy d'API. Cela vous permet de modifier plus facilement les valeurs d'adresse IP au moment de l'exécution sans avoir à modifier la configuration de votre règle.

Par exemple, au lieu du code suivant :

<MatchRule action="DENY">
    <SourceAddress mask="24">198.51.100.1</SourceAddress>
</MatchRule>
     

Vous pouvez configurer la règle comme suit, en supposant que les valeurs sont stockées dans un KVM et que vous utilisez la règle KeyValueMapOperations pour récupérer les valeurs et les attribuer aux variables indiquées ici :

<MatchRule action="DENY">
    <SourceAddress mask="{kvm.mask.ref}">{kvm.ip.ref}</SourceAddress>
</MatchRule>
     
113599885 Surveillance des API Rôles de surveillance des API

API Monitoring fournit deux rôles : "Administrateur de surveillance des API" et "Utilisateur de surveillance des API", décrits dans Accéder à API Monitoring. Elles sont disponibles depuis décembre 2018.

132256772 Exécution des API En-tête X-Apigee.Message-Timeout ajouté à la requête

Edge ajoute désormais l'en-tête X-Apigee.Message-Timeout à chaque requête. Cet en-tête est destiné à un usage interne par Edge. Ne vous fiez pas aux valeurs des en-têtes X-Apigee.* dans vos proxys d'API, car ces en-têtes ne sont pas destinés à un usage client et peuvent être supprimés ou modifiés par Apigee à tout moment.

78575018 Cloud privé / OPDK Ignorer le serveur de gestion pour ignorer l'enregistrement du data store de la passerelle lorsqu'il existe plusieurs pods de passerelle

Bugs résolus

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

ID du problème Nom du composant Description
Apigee a commencé à déployer les correctifs suivants le 3 décembre 2019.
Correctifs de sécurité.
Apigee a commencé à déployer les correctifs suivants le 29 octobre 2019
139381794 Serveur de gestion

Gérer les erreurs de suppression du keystore pour que l'appel d'API n'échoue pas

Apigee a commencé à déployer les correctifs suivants le 1er octobre 2019.
140761319 Exécution des API

x-apigee.edge.execution.sense.action est toujours défini sur "null"

139091614 Exécution des API

Dans la règle ResponseCache, NIOTheread s'exécute sans être refusé par le pool de threads

131331305 Services principaux

Plusieurs exportateurs de journaux sur les routeurs Apigee entraînent une utilisation élevée du processeur

136690640 Exécution des API

Erreurs 404 intermittentes dans des organisations spécifiques

140948100 Exécution des API

Le flux partagé déployé ne s'exécute pas sur certains processeurs de messages

Apigee a publié les correctifs suivants le 13 septembre 2019
132654321 Serveur de gestion Les journaux d'audit n'affichent pas de données
131246911 Serveur de gestion Pour les adresses e-mail de développeurs dans un portail, activez la compatibilité avec les nouveaux domaines tels que *.games et *.asia.
Apigee a publié les correctifs suivants le 18 avril 2019
123844598 Serveur de gestion Les clés d'application supprimées ne peuvent plus être importées après 24 heures.
123588156 Exécution des API La suppression de l'en-tête Content-Length de la réponse échoue avec un code 304
122732400 Exécution des API La définition de api.timeout remplace io.timeout.millis
122545281 Exécution des API Le masque de données DebugSession pour JSON doit tenir compte du cas où jsonPayload est un tableau
122355807 Serveur de gestion Comportement incorrect des autorisations pour les utilisateurs ayant plusieurs rôles
121393556 Exécution des API x_apigee_fault_code est défini sur "org/codehaus/jackson/map/ObjectMapper"
120998548 Interface utilisateur Edge Faute de frappe dans le message d'erreur : Cert is invalid or cannot be not be trusted (Le certificat n'est pas valide ou ne peut pas être approuvé)
120990929 Exécution des API La réponse HTTP-413 de Nginx/Apigee-Router révèle le type de serveur
120799489 Exécution des API Lorsque vous utilisez httpClient avec un rappel JavaScript asynchrone httpComplete(), la sortie debugsession (trace) est désactivée
120794339 Exécution des API MPs ayant dérivé pour l'organisation
120277011 Serveur de gestion Validation des entrées requise : impossible de déployer le proxy si le nom d'hôte du serveur cible contient **
119976417 Surveillance des API L'API Monitoring affiche un temps de réponse élevé pour le proxy, tandis que les données analytiques affichent un temps de réponse élevé pour la cible
119947481 Exécution des API En cas d'exception, la charge utile à masquer est consignée en texte brut
119877164 Cloud privé / OPDK Les routeurs génèrent des erreurs, le processeur de messages se déconnecte avec TLS activé

Ce correctif sera inclus dans la prochaine version d'Edge pour le cloud privé.

119816218 Exécution des API Le cache de réponse ignore l'en-tête "Expires" s'il est défini sur 0 ou sur un nombre négatif
119770242 Exécution des API Échec de la communication entre le routeur et le MP entraînant une indisponibilité totale : une erreur dans PostClientFlow provoque une boucle infinie
119443145 Serveur de gestion Le proxy d'API renvoie une erreur 404 lorsque le ProxyEndpoint est renommé et redéployé
119260281 Exécution des API Erreur de journal "Impossible d'analyser en tant que chaîne3000.0"
118743407 Serveur de gestion Durée du déploiement du proxy Apigee
118447966 Exécution des API Erreur concernant les appels JavaScript dans la version MP 180608_07
117549719 Exécution des API Incohérence entre l'URI de la requête et le chemin de base du proxy
117219520 Exécution des API MessageLogging : le format de date par défaut du journal Syslog est incorrect et les millisecondes ne sont pas affichées correctement
117116435 Exécution des API Erreurs intermittentes provenant du fichier JavaScript
117091520 Exécution des API Les appels Java échouent après la version 18.06.08 du processeur de messages
116165318 Exécution des API Le déploiement simultané du même bundle entraîne une exception RepositoryException
116055025 Service Configstore Hôtes virtuels et applications manquants dans les processeurs de messages après le démarrage
115614498 Exécution des API Besoin d'aide pour ILB dans OPDK

Ce correctif sera inclus dans la prochaine version d'Edge pour le cloud privé.

113972537 Exécution des API Plusieurs P1 : NullPointerException générée à partir du code Node.js dans les proxys Trireme : erreur interne du serveur 500
113904969 Assistance Apigee Problème de suppression des proxys d'API dans les organisations de démonstration
113554802 Exécution des API L'assertion SAML de validation échoue avec une exception NullPointerException
113315737 Serveur de gestion Échec du déploiement du proxy en raison de l'absence d'enregistrements de déploiement dans Zookeeper
112767195 Exécution des API Erreurs DataStore intermittentes lors de l'accès à la règle KVM
112162179 Exécution des API La mise en cache d'un objet JavaScript sans le convertir en chaîne peut entraîner des blocages.
111860576 Exécution des API Erreur manquante dans les règles de quota
111671525 Cibles hébergées Les codes de réponse non réussis des cibles hébergées déclenchent le flux d'erreur dans le proxy
111523933 Extensions(connecteurs) Problème de mise en cache de la règle ExtensionCallout
111420263 Exécution des API Exception ConcurrentModification dans MessageLogging
110843526 Serveur de gestion L'API Management pour la création/mise à jour des hooks de flux doit valider le flux partagé
110805739 Exécution des API La valeur TTL n'est pas définie sur -1 dans le flux CPS lorsque Reuserefreshtoken est défini sur "true" et que l'expiration du jeton d'actualisation n'est pas définie de manière explicite.
110429629 Exécution des API La règle BasicAuthentication émet la variable request.headers.Authorization dans DebugSession
110425503 Exécution des API Le rechargement de Nginx entraîne des problèmes de disponibilité de MP
110311540 Exécution des API NPE lors de l'arrêt de MP
110161455 Exécution des API AccessEntity doit utiliser la méthode de récupération par nom d'application au lieu de récupérer toutes les applications pour les organisations CPS
90695522 Exécution des API context.proxyRequest.asForm generates java.lang.ArrayIndexOutOfBoundsException: 1
79734096 Serveur de gestion Les journaux d'audit pour les proxys ne sont plus filtrés sur les proxys
78105568 Serveur de gestion Les déploiements de flux partagés n'apparaissent pas dans les appels d'API de gestion /org/{org}/sharedflows/{sharedflow}/deployments après la mise à jour d'un flux partagé déployé
77528868 Trireme Régression Trireme : le script server.js s'est terminé avec le code d'état -1 : propriété 0 introuvable
73766568 Exécution des API La mise à niveau de 170213_02 vers 171117_01 a entraîné une forte augmentation de la latence du proxy avec la cible Trireme/Node
72710481 Exécution des API NullPointerException CacheServiceImpl/CacheMemoryLimiter
68861063 Exécution des API Gérer l'exception NPE lors de l'arrêt des routeurs
68833699 Exécution des API Les informations sur le proxy d'API ne sont parfois pas supprimées de l'arborescence de classification des API
67377575 Cibles hébergées Incohérence entre l'enregistrement Analytics et ce qui est envoyé au client dans un proxy Node.js
112481174 Cibles hébergées Ne pas faire échouer le déploiement du proxy en raison d'une erreur Turbo
117171470 Cibles hébergées Corriger le message d'erreur "Fichier app.yaml non valide"
67169139 Exécution des API Le format de l'horodatage syslog de la règle MessageLogging n'est pas correct
67165418 Exécution des API Erreur de licence indiquant que davantage de processeurs de messages sont utilisés, même si le nombre est inférieur à celui autorisé

Ce correctif sera inclus dans la prochaine version d'Edge pour le cloud privé.

67165195 Exécution des API ValidateSAMLAssertion ne valide pas la signature d'une assertion intégrée dans une réponse signée
66214414 Exécution des API La variable currentstep.flowstate renvoie toujours "SHARED_FLOW" lorsqu'elle est référencée à partir d'un flux partagé.
65731656 Exécution des API L'API Threat Protection échoue par intermittence pour la même requête
133197060 Exécution des API Erreur 57 : délai avant expiration de la passerelle entre le protocole de mesure et la cible
110535186 Exécution des API ServiceCallout sans élément Response et HTTPTargetConnection pointant vers un proxy : AUCUN appel PARFOIS
132443137 Exécution des API Modifiez le comportement du processeur de messages pour ignorer les en-têtes qui commencent par X-Apigee-*. Par conséquent, vous devez refactoriser tout code utilisant des en-têtes X-Apigee-* et remplacer ces en-têtes par des en-têtes compatibles.
125709964 Exécution des API L'invalidation du cache avec purgeChildEntries ne fonctionne pas comme prévu