AWS Lambda链接功能无法打印我的日志记录

时间:2018-05-19 04:16:55

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

我正在尝试使用AWS lambda进行超强简单测试,以实现链接功能以及任何缺点。

我想对它们进行更复杂的使用(尽可能快地为S3上的巨大存储桶优化图像)

所以我对自己说,让我先尝试从第一个函数到第二个函数的参数,依此类推,然后再发疯。

  

此外,我也看到人们建议使用步骤功能,所以只是尝试   除非真的有必要,否则要避免这种情况。

正如标题所说我无法获得第二个功能,即被调用以打印出来的东西,我很喜欢它出于调试目的,想知道是否有办法让它发挥作用?

这是我的代码:

    'use strict';
    var aws = require('aws-sdk')

    module.exports.hello = (event, context, callback) => {
      var lambda = new aws.Lambda()
      var testPayload = ['blue', 'green', 'red']
      var opts = {
        FunctionName: 'lambda-chaining-dev-ciao',
        Payload: JSON.stringify(testPayload)
      }

      lambda.invoke(opts, function (err, data) {
        if (err) {
          console.log('Error : ', err)
          callback(err, null)
        } else if (data) {
          console.log('data', data)
          console.log('\n')
          const response = {
            statusCode: 200,
            body: JSON.parse(data.Payload)
          }
          callback(null, response)
        }
      })
    }

    module.exports.ciao = (event, context, callback) => {
      console.log("I will never be logged when invoked")
      callback(null,{ message: 'this is a test'})
    }

serverless.yml

    service: lambda-chaining
    provider:
      name: aws
      runtime: nodejs6.10
      iamRoleStatements:
        - Effect: Allow
          Action:
            - lambda:InvokeFunction
            - lambda:InvokeAsync
            - logs:CreateLogGroup
            - logs:CreateLogStream
            - logs:PutLogEvents
          Resource: "*"
    functions:
      hello:
        handler: handler.hello
      ciao:
        handler: handler.ciao
    plugins:
      - serverless-offline

1 个答案:

答案 0 :(得分:0)

如果要查看来自调用的日志,则需要将LogType: 'Tail'添加到Lambda参数中。对于您想要的内容,这不是一个很好的解决方案,因为它只会是日志的最后4kb。

如果您想查看Lambda 2实际进程中的日志,而不是Lambda 1进程中的日志,而它们不在那儿,我会质疑Lambda 1是否正在执行。您可以尝试fs.writeFileSync()进行验证。或者,如果您不在本地运行它,则只需查看该功能的Cloudwatch调用指标即可。

此外,您将在Lambda 2运行的整个过程中运行Lambda 1。如果Lambda 2调用另一个Lambda,Lambda 1将不得不无限期等待。最终,您将开始计时这些功能或向Amazon支付更多的钱。

如果您要保持理智,这是步进功能的一种情况。