我有一段非常简单的lambda代码(用java编写),触发器基于S3存储桶中的“PUT”。它通过Lambda触发仪表板直接监听存储桶。
这里有两个问题,可能有助于我通过lambda记录我的输入:
1)由于这是一个直接从lambda仪表板指向S3的触发器,显示我的lambda的第一个参数是不是SNSEvent的东西吗?这是一种不同类型的事件吗?如果是这样,我在寻找什么 - 因为我需要以我配置的方式直接触发它。
2)一旦我在该签名中拥有正确的对象,我是否可以简单地将LOG.info对象在监视中看到它?还是我需要做一些其他的魔法
编辑:因为我提到了签名 - 现在就在这里:
public static void lambdaMethod(SNSEvent input, Context context) throws IOException {
我不确定第一个参数是否正确,直接触发。
答案 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)。