当我尝试使用 AWS CloudFormation 或 OpenAPI (Swagger) 创建具有代理资源的 API Gateway API 时,出现错误“Execution failed due to configuration error: Illegal character in path”。 如何解决此错误?
上次更新时间:2019 年 7 月 3 日
我正使用 AWS CloudFormation 模板或 OpenAPI (Swagger) API 定义创建一个具有代理资源的 Amazon API Gateway API。当我创建该 API 时,我收到错误“Execution failed due to configuration error: Illegal character in path”。 如何修复此问题?
简短描述
如果没有为代理路径参数 {proxy+}(也称为“贪婪路径变量”)定义 URL 路径参数映射,可能会发生此错误。如果未定义该映射,API Gateway 会将参数名称评估为文字字符串“{proxy+}”。这会导致错误,因为“{”不是一个有效字符。
解决方法
- 在 API Gateway 控制台中,选择您的 API 的名称。
- 使用资源窗格中选择的方法,在方法执行窗格中,选择集成请求。
- 在集成请求窗格中,验证终端节点 URL 是否使用正确的代理路径参数:{proxy}。(即不带“+”的贪婪路径变量。) 例如:http://example.com/{proxy}
- 展开 URL 路径参数,然后选择添加路径。
- 执行以下操作:
对于名称,输入 proxy。这对应于终端节点 URL 中的参数。
对于映射来源,输入 method.request.path.proxy。在此,proxy 对应于方法请求窗格中定义的请求路径的名称。 - 选择复选标记图标(创建)。
注意:如果您收到错误“Invalid mapping expression specified”,请更新 AWS CloudFormation 模板或 OpenAPI 定义。之后,重复本文中的步骤。 - 部署您的 API。