使用代理资源创建 API Gateway API 时,如何解决“Execution failed due to configuration error: Illegal character in path”错误?

上次更新日期:2021 年 10 月 6 日

我正在使用 AWS CloudFormation 模板 (或 OpenAPI API 定义) 创建一个具有代理资源的 Amazon API Gateway API。尝试创建该 API 时,我收到如下错误:“Execution failed due to configuration error: Illegal character in path”。 如何解决此错误?

简短描述

如果未定义代理路径参数 ({proxy+}) 的 URL 路径参数映射,则 API Gateway 将返回以下错误:

Execution failed due to configuration error: Illegal character in path

如果在集成请求中没有为此参数定义 URL 路径参数映射,API Gateway 会将参数评估为文字字符串“{proxy+}”。因为“{”不是有效字符,所以当这种情况发生时,API Gateway 会返回错误。

要解决此错误,请执行以下操作,为集成请求中的代理路径参数定义 URL 路径参数映射:

解决方法

1.    在 API Gateway 控制台中,选择您的 API 的名称。

2.    使用资源窗格中选择的方法,在方法执行窗格中选择集成请求

3.    在集成请求窗格中,验证终端节点 URL 是否使用正确的代理路径参数:{proxy}。(不带“+”的贪婪路径变量。) 例如:http://example.com/{proxy}

4.    展开 URL Path Parameters (URL 路径参数)。然后,选择添加路径并执行以下操作:
对于名称,输入 proxy。这对应于终端节点 URL 中的参数。
对于映射来源,输入 method.request.path.proxy
注意:在此,proxy 对应于方法请求窗格中定义的请求路径的名称。通过创建名为 {proxy} 的代理资源来添加此请求路径,对于贪婪路径变量,则为 {proxy+}

5.    选择复选标记图标 (创建)。

注意:如果您收到 Invalid mapping expression specified 错误,请更新 AWS CloudFormation 模板或 OpenAPI 定义。然后,重复本文中的步骤。

6.    部署您的 API。