触发时输出lambda的输入?

时间:2017-11-12 20:14:54

标签: amazon-web-services aws-lambda

我有一段非常简单的lambda代码(用java编写),触发器基于S3存储桶中的“PUT”。它通过Lambda触发仪表板直接监听存储桶。

这里有两个问题,可能有助于我通过lambda记录我的输入:

1)由于这是一个直接从lambda仪表板指向S3的触发器,显示我的lambda的第一个参数是不是SNSEvent的东西吗?这是一种不同类型的事件吗?如果是这样,我在寻找什么 - 因为我需要以我配置的方式直接触发它。

2)一旦我在该签名中拥有正确的对象,我是否可以简单地将LOG.info对象在监视中看到它?还是我需要做一些其他的魔法

编辑:因为我提到了签名 - 现在就在这里:

public static void lambdaMethod(SNSEvent input, Context context) throws IOException { 

我不确定第一个参数是否正确,直接触发。

1 个答案:

答案 0 :(得分:0)

您可以使用 S3Event

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
import com.amazonaws.services.lambda.runtime.events.S3Event;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.event.S3EventNotification.S3EventNotificationRecord;

public class S3EventProcessorTest implements
        RequestHandler<S3Event, String> {

    public String handleRequest(S3Event s3event, Context context) {
        // your code here
    }
}

请参阅此s3-example Java section 以获取参考。

就日志记录而言,您可以配置Log4j并使用其方法logger.error(), logger.debug() and logger.log()将事件发送到 CloudWatch Logs ,或者您可以使用System.out.println()同样。

有关详细信息,请参阅此Logging (Java)