繁体   English   中英

我在我的 AWS lambda 中启用了子流程输出 - 为什么这个日志输出没有被推送到 CloudWatch?

[英]I have enabled subprocess output in my AWS lambda - why is this log output not being pushed to CloudWatch?

我有一段代码失败,我正在尝试使用 AWS Cloudwatch 日志进行调试。 启用日志记录的代码如下:

def run_command(args, cwd):
try:
        proc = subprocess.run(args,
            cwd=cwd,
            timeout=720,
            check=True,
            capture_output=True)
        stdout = proc.stdout
        stderr = proc.stderr
    except subprocess.TimeoutExpired as e:
        logging.debug(proc.stdout)
        print(e.output)
        print(e)

我希望子流程输出显示在我的 AWS Cloudwatch 日志中。 但是,这是输出:

START RequestId: 1234567 Version: $LATEST
Command '['my command']' returned non-zero exit status 1.
END RequestId: 1234567

我正在运行这样的函数: run_command('ls',cwd) 我期待第二行的更多信息,因为我添加了capture_output=True语句。 为什么 subprocess 命令的输出没有记录到我的 Cloudwatch 组中,是否可以这样做?

谢谢

进行快速测试并确保您的 Lambda 函数已分配AWSLambdaBasicExecutionRole.

另外,这个叫保罗辛曼的人写了一篇很好的文章。 他解释了为什么我们不应该使用print来记录。 在这里查看

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM