带有{proxy}的AWS API Gateway http代理端点URL报告错误

时间:2019-07-04 13:48:02

标签: amazon-web-services proxy aws-api-gateway

当我尝试代理到另一个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文档中,它们也具有相同的功能,因此我没想到会有任何问题。

以前有人遇到过这个问题吗?您是如何解决它的?或者我还有其他需要设置的地方,或者可能设置有误吗?谢谢。

2 个答案:

答案 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"