Lambda函数失败,没有生成日志

时间:2017-04-26 02:51:41

标签: node.js amazon-web-services amazon-s3 aws-lambda

我正在玩这个PDF To Image converter并且我已经克隆了回购,运行npm install,更改了此部分:

var s3EventHandler = new S3EventHandler({
  region: 'my-region',
  outputBucketName: 'my-bucket-name'
  s3: s3,
  resolution: 72
});

将它重命名为exports.js,压缩了js,node_modules文件夹,package.json和event.json(我还尝试删除了这两个jsons)并将其上传到我的Lambda函数中。 s3触发器已经创建,到目前为止工作正常。

我有多次测试失败,因为它无法找到异步模块和tmp模块,我已经将其移至顶层并且似乎已经修复它(但它并没有#39;抱怨它需要的其他模块,并且不在最高级别。)

在测试中它抱怨s3没有被定义,因为它没有很多细节,所以我很遗憾。我认为可能是因为我正在运行测试,所以缺少s3触发器。

当我将pdf上传到存储桶时,Lambda报告它已运行但失败。进入CloudWatch Logs表示没有日志流。我已检查过IAM角色,并且拥有CreateLogStreamPutLogEvents的权限(这是模板化的IAM政策)。

如何让我的日志正常工作以找到问题?或者我该怎么做才能解决s3未定义的问题,这是我唯一的线索?它可能与顶层模块要求有关,但是由于只有一些模块需要处于最高级别,因此看起来并不一致吗?

1 个答案:

答案 0 :(得分:1)

看起来像你所提到的“CreateLogGroup”权限。 lambda将日志写入CloudWatch

需要以下权限
"logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents"