API Gateway の「無効なマッピング式が指定されました」というエラーを解決するにはどうすればよいですか?

最終更新日: 2021 年 10 月 13 日

AWS CloudFormation テンプレートまたは OpenAPI の定義を使用して、プロキシリソースで Amazon API Gateway の API を作成しました。この API に URL パスパラメータを追加しようとすると、「無効なマッピング式が指定されました」というエラーメッセージが表示されます。どうすればこのエラーを解決できますか?

簡単な説明

プロキシパスパラメータ {proxy+} に URL パスパラメータマッピングが定義されていない場合、API Gateway は「無効なマッピング式が指定されました」というエラーを返します。

エラーを解決するには、次の操作を行います。

解決方法

CloudFormation テンプレート

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 のリソースタイプのリファレンス」を参照してください。

OpenAPI 定義

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 パスパラメータマッピングが含まれている場合、エラーは表示されません。