[英]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.