AWS CloudFormation テンプレートまたは OpenAPI の定義を使用して、プロキシリソースで Amazon API Gateway の API を作成しました。この API に URL パスパラメータを追加しようとすると、「無効なマッピング式が指定されました」というエラーメッセージが表示されます。どうすればこのエラーを解決できますか?
プロキシパスパラメータ {proxy+} に URL パスパラメータマッピングが定義されていない場合、API Gateway は「無効なマッピング式が指定されました」というエラーを返します。
エラーを解決するには、次の操作を行います。
1. CloudFormation テンプレートを更新して、RequestParameters 値が true に設定されるようにします。
CloudFormation テンプレートの RequestParameters の例
... . . ProxyMethod: Type: 'AWS::ApiGateway::Method' Properties: . . RequestParameters: method.request.path.proxy: true Integration: RequestParameters: integration.request.path.proxy: 'method.request.path.proxy' IntegrationHttpMethod: ANY . . ...
2. CloudFormation テンプレートを使用して API を更新し、AWS CloudFormation スタックを更新します。
注意: API Gateway のリソースの更新方法の詳細については、「Amazon API Gateway のリソースタイプのリファレンス」を参照してください。
1. API 定義を更新して、[x-amazon-apigateway-any-method] セクションの [parameters] (パラメータ) が次の値になるようにします。
"x-amazon-apigateway-any-method": { "parameters": [ { "name": "proxy", "in": "path", "required": true, "type": "string" } ] .... .... }
2. 更新した API 定義ファイルを API Gateway にインポートし、API を更新します。
注意: 詳細については、OpenAPI ウェブサイトの「Describing parameters」を参照してください。
1. API Gateway コンソールで、自身の API の名前を選択します。
2. ユースケースの必要に 応じて、URL パスパラメータを追加します。プロキシパスパラメータに正しく定義された URL パスパラメータマッピングが含まれている場合、エラーは表示されません。
x-amazon-apigateway-integration.requestParameters オブジェクト
プロキシリソースとのプロキシ統合を設定する
REST API のデータ変換の設定