当我尝试代理到另一个URL时,AWS API网关HTTP代理集成返回以下错误。
Thu Jul 04 13:34:51 UTC 2019 : Sending request to https://api.example.com/{proxy}
Thu Jul 04 13:34:51 UTC 2019 : Execution failed due to configuration error: Illegal character in path at index 38: https://api.example.com/{proxy}
Thu Jul 04 13:34:51 UTC 2019 : Method completed with status: 500
问题出在{proxy}
上。如果将其删除,则我的API可以正常工作。从AWS文档中,它们也具有相同的功能,因此我没想到会有任何问题。
以前有人遇到过这个问题吗?您是如何解决它的?或者我还有其他需要设置的地方,或者可能设置有误吗?谢谢。
答案 0 :(得分:0)
设法在更多调试后解决它。
我当时使用Terraform来配置API网关,却错过了在aws_api_gateway_method和aws_api_gateway_integration资源中添加request_parameters的功能。
答案 1 :(得分:0)
如果此配置是使用terraform从开放的api 3架构中导入的,则外观如下:
/v2/{proxy+}:
x-amazon-apigateway-any-method:
parameters:
- name: "proxy"
in: "path"
required: true
type: "string"
x-amazon-apigateway-integration:
uri: "https://api.example.com/{proxy}"
responses:
default:
statusCode: "401"
requestParameters:
integration.request.path.proxy: "method.request.path.proxy"
connectionType: "INTERNET"
httpMethod: "ANY"
type: "http_proxy"