Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.
Problème constaté
L'application cliente reçoit un code d'état HTTP 404 avec le message Not Found et le message d'erreur Unable to identify proxy for host: VIRTUAL_HOST and url: PATH en réponse aux appels d'API.
Cette erreur signifie qu'Edge n'a pas trouvé le proxy d'API pour l'hôte virtuel et le chemin d'accès spécifiés.
Message d'erreur
Vous recevrez le code d'état HTTP suivant :
HTTP/1.1 404 Not Found
Un message d'erreur semblable à celui ci-dessous s'affichera également :
{
"fault":{
"faultstring":"Unable to identify proxy for host: default and url: \/oauth2\/token",
"detail":{
"errorcode":"messaging.adaptors.http.flow.ApplicationNotFound"
}
}
}
Le message d'erreur ci-dessus indique qu'Edge n'a pas trouvé le proxy d'API pour l'hôte virtuel default et le chemin d'accès /oauth2/token.
Causes possibles :
Voici quelques-unes des causes possibles de cette erreur :
| Cause | Description | Instructions de dépannage applicables |
|---|---|---|
| Proxy d'API non associé à l'hôte virtuel spécifique | Le proxy d'API spécifique n'est pas configuré pour accepter les requêtes sur l'hôte virtuel spécifié dans le message d'erreur. | Utilisateurs du cloud public et privé Edge |
| Hôte virtuel supprimé dans une révision de proxy d'API nouvellement déployée | Ce problème peut se produire si vous supprimez l'hôte virtuel de la révision nouvellement déployée alors que le client utilise toujours cet hôte virtuel spécifique. | Utilisateurs du cloud public et privé Edge |
| Chemin d'accès non associé à un proxy d'API | Le proxy d'API spécifique n'est pas configuré pour accepter les requêtes sur le chemin indiqué dans le message d'erreur. | Utilisateurs du cloud public et privé Edge |
| Proxy d'API non déployé dans un environnement | Le proxy d'API spécifique n'est pas déployé dans l'environnement dans lequel vous essayez d'envoyer les requêtes API. | Utilisateurs du cloud public et privé Edge |
| Environnement non chargé sur le processeur de messages | L'environnement spécifique (dans lequel vous essayez d'effectuer les requêtes API) n'a pas été chargé sur les processeurs de messages en raison d'une erreur. | Utilisateurs du cloud privé Edge |
| Le proxy d'API n'est pas déployé sur un ou plusieurs processeurs de messages | Il est possible que le proxy d'API ne soit pas déployé sur un ou plusieurs processeurs de messages en raison d'une notification d'événement manquante lors du déploiement. | Utilisateurs du cloud privé Edge |
Étapes de diagnostic courantes
Les journaux NGINX et du processeur de messages seront utiles pour résoudre l'erreur 404.
Pour vérifier les journaux, procédez comme suit :
- Affichez les journaux NGINX à l'aide de la commande suivante :
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
- Recherchez les champs suivants dans les entrées de journal :
Champ Valeur Upstream_status, status404X-Apigee-fault-codemessaging.adaptors.http.flow.ApplicationNotFoundNotez l'ID du message dans les journaux.
- Consultez les journaux du processeur de messages (
/opt/apigee/var/log/edge-message-processor/logs/system.log)) pour voir si vous disposez demessaging.adaptors.http.flow.ApplicationNotFoundpour l'API spécifique ou si vous avez l'ID de message unique de l'étape 2 pour la requête d'API.Exemple de message d'erreur du journal du processeur de messages
NIOThread@1 ERROR ADAPTORS.HTTP.FLOW - AbstractRequestListener.onException() : Request:POST, uri:/weather, message Id:null, exception:com.apigee.rest.framework.ResourceNotFoundException{ code = messaging.adaptors.http.flow.ApplicationNotFound, message = Unable to identify proxy for host: vh1 and url: /weather, associated contexts = []}, context:Context@342ea86b input=ClientInputChannel(SSLClientChannel[Accepted: Remote:10.123.123.123:8443 Local:10.135.33.68:62092]@1206954 useCount=1 bytesRead=0 bytesWritten=0 age=1ms lastIO=0ms isOpen=true)
Le journal ci-dessus indique le code d'erreur et le message d'erreur suivants :
code = messaging.adaptors.http.flow.ApplicationNotFound, message = Unable to identify proxy for host: vh1 and url: /weather
Cause : Le proxy d'API n'est pas associé à l'hôte virtuel spécifique.
Si le proxy d'API n'est pas configuré pour accepter les requêtes pour l'hôte virtuel spécifique, nous pouvons obtenir une réponse 404 Not Found avec le message d'erreur Unable to identify proxy for host: VIRTUAL_HOST and url: PATH..
Diagnostic
- Vérifiez la configuration du point de terminaison du proxy pour le proxy d'API et déterminez si le proxy d'API est configuré pour accepter les requêtes pour l'hôte virtuel spécifié dans l'erreur. Cela est indiqué par l'élément
VirtualHost. Pour comprendre, examinons un exemple de configurationProxyEndpoint.Exemple de configuration de point de terminaison de proxy montrant que le proxy d'API accepte les requêtes sur un hôte virtuel sécurisé

- Supposons que les hôtes virtuels soient définis dans l'environnement spécifique comme suit :
Nom Port Alias d'hôte default80myorg-prod.apigee.netsecure443myorg-prod.apigee.net - Vous envoyez une requête API à l'
defaultVirtualHostà l'aide de l'URLhttp://myorg-prod.apigee.net/weather - Comme
ProxyEndpointne comporte pasdefaultVirtualHost, comme le montre l'exemple ci-dessus, vous obtenez le code de réponse404avec le message d'erreur suivant :{"fault":{"faultstring":"Unable to identify proxy for host: default and url: \/weather","detail":{"errorcode":"messaging.adaptors.http.flow.ApplicationNotFound"}}} - Pour résoudre ce problème, consultez la section Résolution ci-dessous.
- Si
ProxyEndpointest configuré pour accepter les requêtes surdefaultVirtualHost, passez à la cause suivante : Chemin d'accès non associé à un proxy d'API.
Solution
- Ajoutez le
VirtualHostmanquant à la configurationProxyEndpointpour résoudre le problème. Pour l'exemple ci-dessus, vous pouvez ajouter leVirtualHostpar défaut à la configurationProxyEndpointcomme suit :<VirtualHost>default</VirtualHost>
Exemple de configuration de point de terminaison de proxy montrant l'ajout de l'hôte virtuel par défaut

- Dans l'exemple mentionné ci-dessus, si vous souhaitez utiliser uniquement le
secureVirtualHostpour ce proxy d'API spécifique, envoyez les requêtes d'API uniquement ausecureVirtualHostà l'aide du protocole HTTPS :https://myorg-prod.apigee.net/weather
Cause : Hôte virtuel supprimé dans une révision de proxy d'API nouvellement déployée
Ce problème peut se produire si une nouvelle révision d'un proxy d'API est déployée après la suppression d'un hôte virtuel spécifique (qui faisait partie de la révision précédemment déployée) et que les clients l'utilisent toujours pour envoyer des requêtes d'API.
Diagnostic
- Vérifiez la configuration du point de terminaison du proxy pour le proxy d'API afin de voir si le proxy d'API est configuré pour accepter les requêtes pour l'hôte virtuel spécifié dans l'erreur. Cela est indiqué par l'élément
VirtualHostdans la configurationProxyEndpoint. - Si l'hôte virtuel spécifié dans l'erreur n'existe pas dans la configuration
ProxyEndpoint, procédez comme suit. Dans le cas contraire, passez à la cause suivante : Chemin non associé à un proxy d'API. - Comparez la configuration
ProxyEndpointde la révision précédemment déployée à celle de la révision actuellement déployée.- Par exemple, supposons que votre révision précédemment déployée était
5et que votre révision actuellement déployée est6:- Hôtes virtuels configurés dans le point de terminaison du proxy de la révision 5
- Hôtes virtuels configurés dans le point de terminaison du proxy de la révision 6
<HTTPProxyConnection> <BasePath>/weather</BasePath> <Properties/> <VirtualHost>vh1</VirtualHost> </HTTPProxyConnection><HTTPProxyConnection> <BasePath>/weather</BasePath> <Properties/> <VirtualHost>secure</VirtualHost> </HTTPProxyConnection> - Dans l'exemple ci-dessus,
VirtualHost vh1existait dansrevision 5,, mais a été supprimé dansrevision 6et remplacé parVirtualHost secure. - Par conséquent, si vous ou vos clients envoyez des requêtes à ce proxy d'API à l'aide de
VirtualHost vh1(qui faisait partie derevision 5), vous recevrez le code de réponse404avec le message d'erreur suivant :{"fault":{"faultstring":"Unable to identify proxy for host: vh1 and url: \/weather","detail":{"errorcode":"messaging.adaptors.http.flow.ApplicationNotFound"}}}
- Par exemple, supposons que votre révision précédemment déployée était
- Vérifiez si la modification de l'hôte virtuel a été effectuée intentionnellement ou involontairement dans la révision actuellement déployée, puis prenez les mesures appropriées, comme expliqué dans la section Résolution.
Solution
Si vous constatez que le ou les hôtes virtuels sont supprimés dans une nouvelle révision, cela peut être intentionnel ou accidentel. Pour chaque cas, suivez les étapes de résolution/recommandées ci-dessous pour résoudre le problème.
Scénario 1 : Modification intentionnelle
Si la suppression de l'hôte virtuel est intentionnelle, vous pouvez choisir l'une des options suivantes (la première étant l'approche recommandée) :
- Créez un proxy avec un chemin de base différent et utilisez un hôte virtuel différent (qui n'existe pas dans la révision déployée précédemment).
-
Si vous souhaitez continuer à utiliser le proxy d'API existant, mais avec un autre hôte virtuel, il est préférable de conserver l'hôte virtuel existant et d'ajouter l'hôte virtuel supplémentaire.
Les utilisateurs de ce proxy d'API ne seront ainsi pas affectés par la modification.
Si vous souhaitez utiliser le proxy d'API existant et n'avoir qu'un hôte virtuel différent, informez vos utilisateurs à l'avance et effectuez cette modification pendant une période de maintenance.
Cela permettra aux utilisateurs de ce proxy d'API d'être informés de la modification et de pouvoir utiliser un autre hôte virtuel pour effectuer les appels à ce proxy d'API. Par conséquent, ils ne seront pas affectés par le changement.
Scénario 2 : Modification involontaire
Si vous avez supprimé l'hôte virtuel par erreur et non intentionnellement,procédez comme suit :
- Mettez à jour la configuration
ProxyEndpointdans la révision actuellement déployée pour utiliser les mêmes hôtes virtuels que ceux utilisés dans la révision déployée précédemment. Dans l'exemple ci-dessus, remplacez la section suivante :<HTTPProxyConnection> <BasePath>/weather</BasePath> <Properties/> <VirtualHost>secure</VirtualHost> </HTTPProxyConnection>pour
<HTTPProxyConnection> <BasePath>/weather</BasePath> <Properties/> <VirtualHost>vh1</VirtualHost> </HTTPProxyConnection> - Redéployez la révision.
Bonnes pratiques
Il est toujours conseillé de déployer de nouveaux proxys ou de nouvelles révisions pendant une période de maintenance ou lorsque le trafic est le plus faible possible. Vous pourrez ainsi éviter tout problème survenant lors du déploiement ou minimiser l'effet sur le trafic.
Cause : Chemin d'accès non associé à un proxy d'API
Si le proxy d'API n'est pas configuré pour accepter les requêtes pour le chemin spécifique utilisé dans l'URL de la requête d'API, nous pouvons obtenir une réponse 404 Not Found avec le message d'erreur Unable to identify proxy for host: VIRTUAL_HOST and url: PATH..
Diagnostic
- Examinez la configuration
ProxyEndpointdu proxy d'API spécifique pour lequel vous prévoyiez d'effectuer les requêtes d'API. - Vérifiez si le proxy d'API est configuré pour accepter les requêtes pour le chemin d'accès spécifique indiqué dans le message d'erreur. Pour ce faire, suivez les étapes décrites dans les scénarios 1 et 2.
Scénario 1 : Le chemin ne correspond pas au chemin de base du proxy d'API
- Si le
pathindiqué dans le message d'erreur n'est pas le même que lebasepathdu proxy d'API spécifique ou s'il ne commence pas par lebasepath, cela peut être la cause de l'erreur. - Prenons un exemple pour illustrer cela :
- Le
basepathdu proxy d'API prévu est/weather - L'URL de la requête API est
https://myorg-prod.apigee.net/climate. Cela signifie que le chemin d'accès utilisé dans l'URL de la requête API est/climate.. - Dans cet exemple, le
pathn'est pas identique aubasepathet ne commence pas par lebasepath. Par conséquent, vous obtenez l'erreur suivante :{ "fault":{ "faultstring":"Unable to identify proxy for host: secure and url: \/climate", "detail":{ "errorcode":"messaging.adaptors.http.flow.ApplicationNotFound" } } }
Solution
- Assurez-vous que le
pathutilisé dans l'URL de votre requête API est identique aubasepathdu proxy d'API spécifique. - Dans l'exemple ci-dessus, l'URL de la requête API doit être la suivante :
{ https://myorg-prod.apigee.net/weather
Scénario 2 : Le chemin ne correspond à aucun des flux conditionnels disponibles
- Si le
pathutilisé dans l'URL de la requête API commence parbasepath, il est possible que lepath suffix(la partie qui suitbasepath) indiqué dans le message d'erreur ne corresponde à aucun des flux conditionnels, ce qui peut entraîner l'erreur404. - Prenons un exemple pour illustrer cela :
- Le
basepathdu proxy d'API prévu est/weather - L'URL de la requête API est
https://myorg-prod.apigee.net/weather/Delhi. Cela signifie que le chemin d'accès utilisé dans l'URL de la requête API est/weather/Delhi..
- Le
- Dans cet exemple, le
pathcommence par lebasepath/weather. Il comporte également unpath suffixde/Delhi. - Vérifiez maintenant s'il existe des flux conditionnels dans
ProxyEndpoint. - S'il n'y a pas de flux conditionnels ou s'il y a quelques flux non conditionnels, passez à la cause suivante : Proxy d'API non déployé dans un environnement.
- Si le
ProxyEndpointne comporte que des flux conditionnels, vérifiez les points suivants :- Si les conditions de tous ces flux conditionnels vérifient un
proxy.pathsuffixspécifique (le chemin après le chemin de base). - Si le
path suffixspécifié dans l'URL de la requête API ne correspond à aucune des conditions, il s'agit de la cause de l'erreur.
- Si les conditions de tous ces flux conditionnels vérifient un
- Supposons que nous ayons deux flux dans
ProxyEndpointet qu'ils soient tous les deux des flux conditionnels, comme indiqué ci-dessous :<Condition>(proxy.pathsuffix MatchesPath "/Bangalore") and (request.verb = "GET")</Condition> <Condition>(proxy.pathsuffix MatchesPath "/Chennai") and (request.verb = "GET")</Condition>
- Dans l'exemple ci-dessus, nous avons deux flux conditionnels : l'un correspond à
proxy.pathsuffix(chemin après le chemin de base) à/Bangaloreet l'autre correspond à/Chennai. Mais aucune ne correspond à/Delhi, qui est lepath suffixtransmis dans l'URL de la requête API. - Il s'agit de la cause de l'erreur
404. Par conséquent, vous obtenez l'erreur suivante :{ "fault":{ "faultstring":"Unable to identify proxy for host: secure and url: \/weather\/Delhi", "detail":{ "errorcode":"messaging.adaptors.http.flow.ApplicationNotFound" } } }
- Dans l'exemple ci-dessus, nous avons deux flux conditionnels : l'un correspond à
Solution
- Assurez-vous que
path suffixcorrespond à au moins l'un des flux conditionnels de votre point de terminaison de proxy. - Dans l'exemple ci-dessus, vous pouvez utiliser l'une des approches suivantes pour résoudre l'erreur :
- Si vous souhaitez exécuter un ensemble spécifique de règles pour le chemin d'accès
/Delhi, ajoutez un flux distinct avec l'ensemble de règles requis et assurez-vous qu'il existe une condition qui correspond à/proxy.pathsuffix/Delhi, comme indiqué ci-dessous :<Condition>(proxy.pathsuffix MatchesPath "/Delhi") and (request.verb = "GET")</Condition>
- Si vous souhaitez exécuter un ensemble de règles commun pour le chemin d'accès
/Delhi, assurez-vous qu'il existe une condition dans le flux commun qui autorise un/proxy.pathsuffixgénérique. Autrement dit, il autoriserait n'importe quel chemin aprèsbasepath/weather, comme indiqué ci-dessous :<Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET")</Condition>
- Si vous souhaitez exécuter un ensemble spécifique de règles pour le chemin d'accès
Si ProxyEndpoint comporte le basepath et le path suffix corrects spécifiés dans l'URL de l'API et qu'ils correspondent à l'un des flux conditionnels, passez à la cause suivante : Proxy d'API non déployé dans un environnement.
Cause : Proxy d'API non déployé dans un environnement
Diagnostic
- Déterminez l'environnement auquel appartient l'alias d'hôte utilisé dans l'URL de votre requête API.
Pour ce faire, vérifiez les détails de tous les hôtes virtuels dans chacun des environnements de votre organisation dans l'interface utilisateur Edge.
Par exemple, supposons la configuration suivante :
- Si
http://myorg-prod.apigee.net/weatherest votre URL,myorg-prod.apigee.netest l'alias d'hôte. - L'alias d'hôte
myorg-prod.apigee.netest configuré dans l'un des hôtes virtuels de l'environnementprodde votre organisation.
- Si
- Vérifiez si le proxy d'API spécifique est déployé dans l'environnement spécifique déterminé à l'étape 1 ci-dessus.
- Si le proxy d'API n'est pas déployé dans l'environnement spécifique, il s'agit de la cause de l'erreur
404.- Ainsi, dans l'exemple utilisé à l'étape 1 ci-dessus, supposons que le proxy d'API ne soit pas déployé dans l'environnement
prod. Il s'agit alors de la cause de l'erreur. - Consultez la section Résolution ci-dessous.
- Ainsi, dans l'exemple utilisé à l'étape 1 ci-dessus, supposons que le proxy d'API ne soit pas déployé dans l'environnement
- Si le proxy d'API est déployé dans l'environnement spécifique, passez à la cause suivante : Environnement non chargé sur les processeurs de messages.
Solution
Déployez le proxy d'API dans l'environnement spécifique dans lequel vous prévoyez d'envoyer des requêtes API.
Cause : l'environnement n'est pas chargé sur les processeurs de messages.
Diagnostic
- Connectez-vous à chacun des processeurs de messages et vérifiez si l'environnement spécifique dans lequel vous effectuez la requête d'API est chargé sur le processeur de messages à l'aide de la commande suivante :
curl -v 0:8082/v1/runtime/organizations/<orgname>/environments
- Si l'environnement spécifique est répertorié dans la commande ci-dessus, passez à la cause suivante : Proxy d'API non déployé sur un ou plusieurs processeurs de messages.
- Si l'environnement spécifique n'est pas listé, vérifiez
/opt/apigee/var/log/edge-message-processor/logs/system.loget/opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.logsur les processeurs de message pour détecter les éventuelles erreurs lors du chargement des environnements. - Plusieurs erreurs peuvent entraîner l'échec du chargement d'un environnement sur le processeur de messages. La résolution dépend de l'erreur qui s'est produite.
Solution
L'environnement peut ne pas être chargé sur le processeur de messages pour de nombreuses raisons. Cette section présente quelques raisons possibles de ce problème et explique comment le résoudre.
-
Si l'une des erreurs suivantes s'affiche dans le journal du processeur de messages, cela est dû à un problème détecté avec les certificats/clés qui ont été ajoutés au keystore/truststore spécifié dans l'environnement spécifié.
Erreur 1 : java.security.KeyStoreException : Impossible d'écraser son propre certificat
2018-01-30 12:04:38,248 pool-47-thread-4 ERROR MESSAGING.RUNTIME - AbstractConfigurator.propagateEvent() : Error while handling the update for the Configurator com.apigee.kernel.exceptions.spi.UncheckedException: Failed to add certificate : mycert in key store : mytruststore in environment : test at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:156) ~[config-entities-1.0.0.jar:na] at com.apigee.entities.configurators.KeyStore.handleUpdate(KeyStore.java:101) ~[config-entities-1.0.0.jar:na] at com.apigee.entities.AbstractConfigurator.propagateEvent(AbstractConfigurator.java:85) ~[config-entities-1.0.0.jar:na] at com.apigee.messaging.runtime.Environment.handleUpdate(Environment.java:238) [message-processor-1.0.0.jar:na] … Caused by: java.security.KeyStoreException: Cannot overwrite own certificate at com.sun.crypto.provider.JceKeyStore.engineSetCertificateEntry(JceKeyStore.java:355) ~[sunjce_provider.jar:1.8.0_151] at java.security.KeyStore.setCertificateEntry(KeyStore.java:1201) ~[na:1.8.0_151] at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:153) ~[config-entities-1.0.0.jar:na]
... 20 common frames omitted2018-01-30 12:04:38,250 pool-47-thread-4 ERROR MESSAGING.RUNTIME - AbstractConfigurator.rollbackTransaction() : Error in processing the changes : Unknown resource type cert
Erreur 2 : java.security.KeyStoreException : impossible d'écraser la clé secrète
2017-11-01 03:28:47,560 pool-21-thread-7 ERROR MESSAGING.RUNTIME - AbstractConfigurator.propagateEvent() : Error while handling the update for the Configurator com.apigee.kernel.exceptions.spi.UncheckedException: Failed to add certificate : mstore in key store : myTruststore in environment : dev at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:156) ~[config-entities-1.0.0.jar:na] at com.apigee.entities.configurators.KeyStore.handleUpdate(KeyStore.java:101) ~[config-entities-1.0.0.jar:na] ... Caused by: java.security.KeyStoreException: Cannot overwrite secret key at com.sun.crypto.provider.JceKeyStore.engineSetCertificateEntry(JceKeyStore.java:354) ~[sunjce_provider.jar:1.8.0_144] at java.security.KeyStore.setCertificateEntry(KeyStore.java:1201) ~[na:1.8.0_144] at com.apigee.entities.configurators.KeyStore.setCertificateEntry(KeyStore.java:153) ~[config-entities-1.0.0.jar:na] ... 20 common frames omitted 2017-11-01 03:28:47,562 pool-21-thread-7 ERROR MESSAGING.RUNTIME - AbstractConfigurator.rollbackTransaction() : Error in processing the changes : Unknown resource type cert
- Obtenez les détails du keystore/truststore spécifié dans le message d'erreur affiché à l'étape précédente en utilisant l'appel d'API de gestion suivant :
curl -v "http://<management-IPaddress>:8080/v1/organizations/<org-name>/environments/<env-name>/keystores/myTruststore" -u <user>
Exemple de résultat :
{ "certs":[ "mycert", "mycert-new" ], "keys":[ "mycert" ], "name":"myTruststore" } - L'exemple de résultat montre qu'il existe deux certificats et une clé dans le truststore
myTruststore. Le truststore ne contient généralement pas de clé. Si c'est le cas, il est préférable d'avoir un seul certificat et une seule clé. - Obtenez des informations sur les deux certificats à l'aide de l'API suivante :
curl -s http://<management-IPaddress>:8080/v1/runtime/organizations/<org-name>/environments/<env-name>/keystores/<keystore-name>/certs/<cert-name>
- Vérifiez la date d'expiration de chacun des certificats et identifiez celui qui a expiré ou qui est le plus ancien.
- Supprimez le certificat expiré ou indésirable du truststore
myTruststore.
Si le problème persiste ou si vous rencontrez une erreur autre que celles mentionnées à l'étape 1 ci-dessus, consultez la page Vous devez collecter des informations de diagnostic.
Cause : le proxy d'API n'est pas déployé sur un ou plusieurs processeurs de messages.
Il est possible que le proxy d'API ne soit pas déployé sur un ou plusieurs processeurs de messages. Ce problème se produit très rarement, principalement en raison d'une notification d'événement manquante du serveur de gestion au processeur de message lors du déploiement du proxy d'API spécifique. Dans ce cas également, vous ne pourrez pas créer la session de trace dans l'interface utilisateur Edge.
Diagnostic
- Connectez-vous à chacun des processeurs de messages et vérifiez si la révision spécifique du proxy d'API est déployée ou non à l'aide de la commande suivante :
curl -v 0:8082/v1/runtime/organizations/<orgname>/environments/<envname>/apis/<apiname>/revisions
- Si la révision spécifique du proxy d'API ne s'affiche pas dans le résultat de la commande mentionnée à l'étape 1 ci-dessus, redémarrez le processeur de messages spécifique, comme expliqué dans la section Résolution.
- Répétez les étapes 1 et 2 pour tous les processeurs de messages.
- Si la révision spécifique du proxy d'API est déployée sur tous les processeurs de messages, ce n'est pas la cause de ce problème. Consultez la page Vous devez collecter des informations de diagnostic.
Solution
Redémarrez les processeurs de messages spécifiques sur lesquels la révision spécifique du proxy d'API n'est pas déployée.
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Diagnostiquer les problèmes à l'aide de la surveillance des API
API Monitoring vous permet d'isoler rapidement les zones à problèmes pour diagnostiquer les problèmes d'erreur, de performances et de latence, ainsi que leur source, comme les applications de développeur, les proxys d'API, les cibles de backend ou la plate-forme d'API.
Pour ce problème, vous pouvez accéder à la page Surveillance des API > Examiner, choisir la date, le proxy, etc. appropriés, et afficher les informations suivantes :
- Code d'erreur :
messaging.adaptors.http.flow.ApplicationNotFound - Code d'état :
404 - Source de la défaillance :
ApigeeouMP
Vous pouvez également cliquer sur Afficher les journaux, comme indiqué dans la capture d'écran ci-dessus, pour en savoir plus.

La section Parcourir un exemple de scénario montre comment résoudre les problèmes 5xx liés à vos API à l'aide d'API Monitoring. Par exemple, vous pouvez configurer une alerte pour être averti lorsque le nombre de codes d'état 404 dépasse un seuil particulier.
Vous devez collecter des informations de diagnostic
Si le problème persiste, même après avoir suivi les instructions ci-dessus, rassemblez les informations de diagnostic suivantes. Contactez l'assistance Apigee Edge et partagez ces informations avec elle.
- Si vous êtes un utilisateur du cloud public, fournissez les informations suivantes :
- Nom de l'organisation
- Nom de l'environnement
- Nom de proxy d'API
- Commande curl complète pour reproduire l'erreur
- Si vous êtes un utilisateur du cloud privé, fournissez les informations suivantes :
- Message d'erreur complet observé
- Nom de l'environnement
- Bundle de proxy d'API
- Journaux du processeur de messages
/opt/apigee/var/log/edge-message-processor/logs/system.log - Résultat des commandes suivantes sur chacun des processeurs de messages.
curl -v 0:8082/v1/runtime/organizations/<orgname>/environments
curl -v 0:8082/v1/runtime/organizations/<orgname>/environments/<envname>/apis/<apiname>/revisions - Détails sur les sections de ce guide que vous avez essayées et toute autre information qui nous aidera à résoudre ce problème rapidement.