gpt4 book ai didi

.net - Lambda AWS 即时返回日志

转载 作者:行者123 更新时间:2023-12-03 14:37:52 25 4
gpt4 key购买 nike

我想直接快速访问 AWS lambda 中的日志。
我可以查询 CloudWatch,但它需要时间来获取数据。
是否可以在 Lambda 中获取所有执行日志并返回此数据作为响应?

更新 15.06.2020
谢谢@John 的回答,我在这里提供更多信息:
我在 .NET 中为 lambda 使用专用记录器
https://github.com/aws/aws-lambda-dotnet/tree/master/Libraries/src/Amazon.Lambda.Logging.AspNetCore
如果出现任何问题,我的应用程序需要登录以进行调试。
例如,您要访问什么类型的“日志”
我在 lambda 函数中仅在不同的日志记录级别上记录一些数据,例如:

  • logger.LogDebug("Lambda 启动");
  • logger.LogCritical(异常);
  • logger.LogInfo(businessDataForDebug);

  • 我想获取所有记录的语句,这些语句通过日志记录级别传递,并尽快在 lambda 响应中返回所有这些信息。 日志数据必须引用特定的 lambda 执行。 否则,这将是无用的。
    您要从 CloudWatch 寻求什么类型的数据?
    如果发生,我主要需要记录字符串消息和异常。如果可能的话,最好包括特定日志调用的时间。此外,一些“日志”ID 可以作为引用 - 有类似 RequestId 的东西。
    现在我可以让所有这些日志在 CloudWatch 中进行查询,但这需要时间而且速度太慢。我进行 API 调用:StartQueryAsync,然后是 GetQueryResultsAsync。解决方案应该尽可能快。我可以制作丑陋的自定义记录器,在那里我可以收集所有日志到 ex。列出 myLogs 并简单地以 JSON 的形式返回,但我希望有很好的 AWS 解决方案来解决这个问题。
    “执行日志”是什么意思?
    我的意思是 Lambda 简单函数运行时中记录器生成的所有日志。
    LambdaFunction(request, context){
    InitializeLoggerWithLogLevel(debug);
    logger.LogInfo("Log Info"); //Not logged due to min log level Debug
    logger.LogTrace("Log Trace"); //Logged, trace > debug
    logger.LogDebug("Log debug"); //Logged, debug == debug
    您指的是存储在 Amazon CloudWatch Logs 中的 AWS Lambda 函数的输出吗?
    是的,我可以从那里查询日志,但需要几秒钟才能得到它。我会更快地获取数据。
    我可以相信 AWS 不提供这样的解决方案。解决方法可能是通过 ex 将获取日志委托(delegate)给另一个 lambda。 SQS 或将执行的特定 lambda 函数的日志移动到 S3 存储桶,然后提供用户链接以供下载。我的第一个主要 lambda 必须很快,处理许多请求,如机关枪;)。
    请告诉我最好的方法。我愿意进一步讨论。
    问候,

    最佳答案

    如果您每秒达到 50 个事务,CloudWatch 事务就会受到限制。您可以要求增加此限制:https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-cloudwatch-logs

    引用:https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch_limits_cwl.html

    If it is possible It could be nice to include time of particular log invocation. Moreover some "log" Id would be nice to have as reference - there is something like RequestId. For now I can get all those logs doing query in CloudWatch but it takes time and it's too slow.



    如果您追求 FAST 解决方案并且您确实在插入 CloudWatch 限制,请使用 DynamoDB。

    关于.net - Lambda AWS 即时返回日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62377791/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com