调用API错误 - AWS API网关

时间:2015-09-08 21:42:33

标签: aws-api-gateway

我正在尝试使用AWS API网关创建API

  • 首先我创建了一个资源/ sample
  • 然后创建了一个方法GET
  • 提供了Endpoint-URL并保存了它。
  • 在“方法执行”窗格中,选择“方法请求”,将“HTTP请求标头”添加为“授权”,添加此项以将基本身份验证详细信息传递给后端URL,因为服务是通过基本身份验证保护的,
  • 在“方法执行”窗格中,选择“集成请求”,“映射的HTTP标头”,“映射为”method.request.path.Authorization“
  • 选择方法执行,在客户端框中,选择TEST,传递Header Authorization - Basic XXXXXX 成功完成所有配置后,测试API,获取“消息”:“内部服务器错误”状态代码-500

为了您的参考,我的后端服务正在amazon-linux机器上运行。

Checked logs:
   Execution log for request test-request
Tue Sep 08 16:43:54 UTC 2015 : Starting execution for request: test-invoke-request
Tue Sep 08 16:43:54 UTC 2015 : API Key: test-invoke-api-key
Tue Sep 08 16:43:54 UTC 2015 : Method request path: {}
Tue Sep 08 16:43:54 UTC 2015 : Method request query string: {}
Tue Sep 08 16:43:54 UTC 2015 : Method request headers: {Authorization=************p1c2Vy}
Tue Sep 08 16:43:54 UTC 2015 : Method request body before transformations: null
Tue Sep 08 16:43:54 UTC 2015 : Execution failed due to configuration error: Invalid endpoint address

您能否告诉我如何解决此问题?

3 个答案:

答案 0 :(得分:1)

尝试method.request。标题。授权

答案 1 :(得分:1)

Varun是对的,你的映射表达式是错误的。

请求中参数的表达式格式为" method.request。[source]。[name]"其中source是path / querystring / header,name是方法请求中定义的参数的名称。

对于集成响应,格式与您用响应替换请求的情况相同,并且还要注意只有标头可用于在响应中进行映射。

答案 2 :(得分:0)

如果您想要快速修复以启动并使您的API工作,请按照以下步骤操作:

  

步骤

  • 登录AWS控制台
  • 转到“API网关”信息中心,选择您需要调用的资源(API),然后选择下面的方法(GET / POST /...)
  • 在方法执行工作流程上,单击“方法响应”面板并添加状态代码200,然后您可以为其添加一些标题。 选择“Response Body”并添加“Application / json”和“Empty”模型。

enter image description here

  • 您还应该点击“整合请求面板”并取消选中“使用Lambda代理集成”[根据附件图片]

enter image description here

  

最后一步

  • 将您的API 部署到舞台(dev / test / prod)