可以通过API Gateway的映射模板来解决该问题。在API Gateway中,映射模板可以让您指定请求和响应的格式和内容,包括重写请求路径和参数。为了解决这个问题,您可以在API Gateway中创建一个映射模板,将请求路径从源URL中删除,并将剩余的路径作为请求路径发送到终端服务。
以下是一个示例API Gateway映射模板,它将请求路径从源URL中提取并重写请求路径:
#set($pathComponents = $input.path('$').split("/"))
#set($proxyPath = "")
#foreach($component in $pathComponents)
#if($component != "" && $component != "proxy")
#set($proxyPath = $proxyPath + "/" + $component)
#end
#end
#set($input.path.proxy = $proxyPath)
您可以在API Gateway的集成请求阶段中使用此模板。使用该映射模板后,您的API将解析从源URL中提取的路径,重写请求路径,并将剩余的路径作为请求参数发送到终端服务。这将解决AWS Api Gateway无法重写路径导致的400 Bad Request错误。