AWS CloudFormation テンプレート (または OpenAPI API 定義) を使用して、プロキシリソースを含む Amazon API Gateway API を作成しています。API を作成すると、次のエラーが表示されます。 「設定エラーにより実行に失敗しました。 パスに不正な文字があります。」
簡単な説明
プロキシパスパラメータ ({proxy+}) の URL パスパラメータマッピングが定義されていない場合、API Gateway は次のエラーを返します。 "Execution failed due to configuration error: Illegal character in path.:
統合リクエストでこのパラメータに URL パスパラメータマッピングが定義されていない場合、API Gateway はパラメータをリテラル文字列「{proxy+}」として評価します。「{」は有効な文字ではないため、これが発生すると API Gateway はエラーを返します。
エラーを解決するには、次の手順を実行して、統合リクエストのプロキシパスパラメータの URL パスパラメータマッピングを定義します。
解決策
- API Gateway コンソールで、API の名前を選択します。
- リソースペインでメソッドを選択した状態で、メソッド実行ペインにある「統合リクエスト」を選択します。
- 統合リクエストペインで、エンドポイント URL が正しいプロキシパスパラメータ: {proxy} を使用していることを確認します。(「+」のない欲張りなパス変数。) 例: http://example.com/{proxy}
- [URL パスパラメータ]を展開します。次に、[パスを追加] を選択し、次の操作を行います。
[名前] に proxyと入力します。これはエンドポイント URLのパラメータに対応します。
[マッピング元] に、method.request.path.proxyと入力します。
注:ここで、プロキシはメソッドリクエストペインで定義されているリクエストパスの名前に対応します。このリクエストパスは、{proxy} という名前のプロキシリソース、または貪欲なパス変数の場合は **{proxy+}**というプロキシリソースを作成することによって追加されます。
- チェックマークアイコン ([作成]) を選択します。
注:「Invalid mapping expression specified」というエラーが表示された場合は、AWS CloudFormation テンプレートまたは OpenAPI 定義を更新してください。その後、前の手順を繰り返します。
- API をデプロイします。
関連情報
プロキシリソースとのプロキシ統合を設定する
API Gateway コンソールを使用したリクエストとレスポンスのデータマッピングを設定する
API Gateway コンソールを使用して API 統合リクエストを設定する