簡體   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