AWS Lambda和API Gateway Endpoint响应中的调试错误

时间:2017-02-25 14:36:31

标签: amazon-web-services aws-lambda aws-api-gateway serverless-framework

我有一个lambda函数,可以连接到API网关。当我在本地运行它时,它可以工作,当我使用serverless offline进行模拟时,它可以工作。

但是对于发布的dev端点,它返回错误500和带有错误消息的json对象:

{
  "message": "Internal server error"
}

在CloudWatch日志中,没有错误。在API网关端点测试页面的callstack中,我在进程的Lambda部分看到了正确的响应主体,然后当它进入API网关响应步骤时出现问题。

如果日志中没有任何错误,我应该如何调试API网关?

2 个答案:

答案 0 :(得分:1)

如果您在节点中编写它,可能是您的节点版本与4.3.2(the one that AWS Lambda uses)不同,这就是为什么离线和本地测试工作但不在AWS Lambda中的原因。

当我使用let时,这发生在我身上。

您可以使用nvm安装node v 4.3.2以在本地进行测试,或者您可以查看here以查看您允许在代码中使用哪些功能。

答案 1 :(得分:0)

获取 API网关来馈送 cloudWatch

  1. IAM
  2. 中使用// SETUP THE PIN TO BE AN OUTPUT bcm2835_gpio_fsel(TIME_ITERATION, BCM2835_GPIO_FSEL_OUTP); // SET PIN HIGH TIME_ITERATION_1(); ... <body of function> ... // SET PIN LOW TIME_ITERATION_0(); 创建新角色
  3. 复制角色ARN AmazonAPIGatewayPushToCloudWatchLogs
  4. 将其粘贴到字段中: API网关> 设置> CloudWatch日志角色ARN
  5. 转到 API > arn:aws:iam::<account id>:role/<role name>> 阶段> 设置> CloudWatch设置并执行以下操作:
    • 检查启用CloudWatch日志
    • 选择日志级别(查看所有信息的信息)
    • 检查记录完整的请求/响应数据(将整个初始请求和响应转储到日志中)
    • 检查启用CloudWatch指标(以查看CloudWatch中的图表)

现在可以在:

中查看您的日志
  • CloudWatch > 日志

<API name>之类的名称