Lorsque j'essaie de créer une API API Gateway avec une ressource de proxy en utilisant AWS CloudFormation ou OpenAPI (Swagger), l'erreur suivante s’affiche : « Execution failed due to configuration error: Illegal character in path » (L'exécution a échoué suite à une erreur de configuration : caractère non valide dans le chemin). Comment éliminer cette erreur ?

Date de la dernière mise à jour : 03/07/2019

J'utilise un modèle AWS CloudFormation ou une définition d'API OpenAPI (Swagger) pour créer une API Amazon API Gateway avec une ressource de 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 suite à une erreur de configuration : caractère non valide dans le chemin). Comment éliminer cette erreur ?

Brève description

Cette erreur peut se produire si vous ne définissez pas de mappage de paramètre de chemin d'URL pour le paramètre de chemin proxy {proxy+} (également appelé « variable de chemin gourmande »). Sans ce mappage, API Gateway considère que le nom du paramètre est une chaîne littérale « {proxy+} ». Cette situation produit une erreur, car « { » n'est pas un caractère valide.

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 proxy correct : {proxy}. (En d'autres termes, la variable de chemin gourmande sans « + ».) Par exemple : http://exemple.com/{proxy}
  4. Développez URL Path Parameters (Paramètres de chemin d'URL), et choisissez Add path (Ajouter un chemin).
  5. Procédez comme suit :
    Pour 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. Ici, proxy correspond au nom du chemin de la demande, tel que défini dans le volet Method Request (Demande de méthode).
  6. 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.
  7. Déployez votre API.