Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用来自Java的AWS Lambda进行日志记录似乎已中断_Java_Amazon Web Services_Lambda - Fatal编程技术网

使用来自Java的AWS Lambda进行日志记录似乎已中断

使用来自Java的AWS Lambda进行日志记录似乎已中断,java,amazon-web-services,lambda,Java,Amazon Web Services,Lambda,我已经按照指南在Python和Java(简单hello world)中创建了相同的函数。使用相同的角色,Python版本可以按预期工作,生成日志流条目并打印“ok” 但是,Java版本不会记录具有相同角色和设置的任何内容 package com.streambright; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandle

我已经按照指南在Python和Java(简单hello world)中创建了相同的函数。使用相同的角色,Python版本可以按预期工作,生成日志流条目并打印“ok”

但是,Java版本不会记录具有相同角色和设置的任何内容

package com.streambright;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;

public class Dbmgmt implements RequestHandler<Object, Object> {
    @Override
    public String handleRequest(Object in, Context ctx) {
        System.out.println("test");
        ctx.getLogger().log("o hai");
        return "ok";
    }
}
package com.streambright;
导入com.amazonaws.services.lambda.runtime.Context;
导入com.amazonaws.services.lambda.runtime.RequestHandler;
公共类Dbmgmt实现RequestHandler{
@凌驾
公共字符串handleRequest(上下文中的对象,ctx){
系统输出打印(“测试”);
ctx.getLogger().log(“o hai”);
返回“ok”;
}
}
我想知道为什么它不将任何内容放入CloudWatch日志组。有人对Java有同样的经验吗?有人有同样的经历吗?有解决这个问题的方法吗


还发布在AWS论坛上:

找到了这一问题的根本原因。角色策略不允许创建正确的日志资源,因此默认失败。AWS UI没有太大帮助来帮助识别这个问题,我在一次审计中意外地遇到了它。将资源更改为*后,lambda函数能够创建日志资源

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "xray:PutTraceSegments",
                "xray:PutTelemetryRecords",
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeNetworkInterfaces",
                "kms:Decrypt"
            ],
            "Resource": "*"
        }
    ]
}

找到了这个问题的根本原因。角色策略不允许创建正确的日志资源,因此默认失败。AWS UI没有太大帮助来帮助识别这个问题,我在一次审计中意外地遇到了它。将资源更改为*后,lambda函数能够创建日志资源

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "xray:PutTraceSegments",
                "xray:PutTelemetryRecords",
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface",
                "ec2:DescribeNetworkInterfaces",
                "kms:Decrypt"
            ],
            "Resource": "*"
        }
    ]
}

您是否尝试过通过AWS控制台测试Java功能?它将让您查看是否有任何错误。@stdunbar这正是问题所在,它不会在任何地方记录任何错误,但当您使用AWS UI for Lambda时,Lambda是否运行?您得到了什么输入和输出?是的,它运行,从我返回或打印的任何内容生成输出,并且不生成任何日志记录。当我尝试访问日志时,它返回一个错误->“加载日志流时出错。请刷新此页面重试。”您是否尝试通过AWS控制台测试Java功能?它将让您查看是否有任何错误。@stdunbar这正是问题所在,它不会在任何地方记录任何错误,但当您使用AWS UI for Lambda时,Lambda是否运行?您得到了什么输入和输出?是的,它运行,从我返回或打印的任何内容生成输出,并且不生成任何日志记录。当我尝试访问日志时,它返回一个错误->“加载日志流时出错。请刷新此页面重试。”您必须在哪里设置此配置?我认为是Lambda策略。您必须在哪里设置此配置?我认为是Lambda策略。