Comment résoudre les erreurs « Execution failed due to configuration error: Illegal character in path » (Échec de l'exécution en raison d'une erreur de configuration : caractère non valide dans le chemin) lors de la création d'une API API Gateway avec une ressource proxy ?

Dernière mise à jour : 06/10/2021

J'utilise un modèle AWS CloudFormation (ou définition d'API OpenAPI) pour créer une API Amazon API Gateway avec une ressource proxy. Lorsque je crée l'API, l'erreur suivante s'affiche : « Execution failed due to configuration error: Illegal character in path » (Échec de l'exécution en raison d'une erreur de configuration : caractère non valide dans le chemin). Comment puis-je résoudre ce problème ?

Brève description

Si un mappage de paramètre de chemin d'URL pour le paramètre de chemin de proxy ({proxy+}) n'est pas défini, API Gateway renvoie l'erreur suivante :

Execution failed due to configuration error: Illegal character in path (Échec de l'exécution en raison d'une erreur de configuration : caractère non valide dans le chemin)

Sans mappage de paramètre de chemin d'URL défini pour ce paramètre dans la demande d'intégration, API Gateway évalue le paramètre en tant que chaîne littérale « {proxy+} ». Comme « {» n'est pas un caractère valide, API Gateway renvoie une erreur lorsque cela se produit.

Pour résoudre le problème, définissez le mappage de paramètre de chemin d'accès URL pour le paramètre de chemin de proxy dans la demande d'intégration en procédant comme suit :

Solution

1.    Dans la console API Gateway, choisissez le nom de votre API.

2.    Après avoir sélectionné la méthode dans le volet Resources (Ressources), dans le volet Method Execution (Exécution de la méthode), choisissez Integration Request (Demande d'intégration).

3.    Dans le volet Integration Request (Demande d'intégration), vérifiez que l'URL de point de terminaison utilise le paramètre de chemin de proxy correct : {proxy}. (La variable de chemin gourmande sans « + ».) Par exemple : http://exemple.com/{proxy}

4.    Développez URL Path Parameters (Paramètres de chemin d'URL). Ensuite, choisissez Add path (Ajouter un chemin) et procédez comme suit :
Pour Name (Nom), saisissez proxy. Cela correspond au paramètre dans l'URL de point de terminaison.
Pour Mapped from (Mappé depuis), saisissez method.request.path.proxy.
Remarque : ici, proxy corresponds au nom du chemin de demande défini dans le valeur Method Request (Demande de méthode). Ce chemin de demande est ajouté en créant une ressource proxy nommée {proxy} ou, pour une variable de chemin gourmande, {proxy+}.

5.    Choisissez l'icône de coche (Create) (Créer).

Remarque : si vous recevez l'erreur « Invalid mapping expression specified » (Expression de mappage spécifiée non valide), mettez à jour votre modèle AWS CloudFormation ou votre définition OpenAPI. Ensuite, répétez les étapes de cet article.

6.    Déployez votre API.