API Gateway에서 ‘Invalid mapping expression specified’ 오류를 해결하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2021년 10월 13일

AWS CloudFormation 템플릿 또는 OpenAPI 정의를 사용하여 프록시 리소스를 사용하는 Amazon API Gateway API를 생성했습니다. URL 경로 파라미터를 API에 추가하려고 하면 "Invalid mapping expression specified"라는 오류 메시지가 나타납니다. 이 오류를 해결하려면 어떻게 해야 합니까?

간략한 설명

API Gateway는 프록시 경로 파라미터 {proxy+}에 정의된 URL 경로 파라미터 매핑이 없는 경우 Invalid mapping expression specified 오류를 반환합니다.

이 오류를 해결하려면 다음을 수행하십시오.

해결 방법

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 resource type reference를 확인하세요.

OpenAPI 정의의 경우

1.    x-amazon-apigateway-any-method 섹션 아래의 parameters가 다음 값을 갖도록 API 정의를 업데이트합니다.

      "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 경로 파라미터 매핑이 올바르게 정의된 경우 오류가 나타나지 않습니다.