我正在使用 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。
相关信息
设置与代理资源的代理集成
使用 API Gateway 控制台设置请求和响应数据映射
使用 API Gateway 控制台设置 API 集成请求