0

我有几个lambda函数。我需要从我的所有lambda函数中生成日志并加载到我们的内部数据仓库中。我想到了这些解决方案。我需要从云观看日志中删除日志并将其加载到s3,并从s3加载到数据仓库

  1. 已将lambda函数订阅到我的lambda函数的cloudwatch日志组,并抛光并记录消息并将其推送到s3。

    • 优点:工作和实施起来很简单。
    • 缺点:我没有办法让 “重放”。说我的出口商出于某种原因失败。我不能 重播此动作。
  2. 有一个每10分钟左右运行一次的lambda函数并创建导出任务并从cloudwatch中删除日志并将它们加载到s3。

    import boto3 
    client = boto3.client('logs') 
    response = client.create_export_task(
    taskName='export_task', 
    logGroupName='/aws/lambda/<lambda_function_1>', 
    fromTime=from_time, 
    to=to_time, 
    destination='<application_logs>', 
    destinationPrefix='<lambda_function_1>' 
    ) 
    
    
    response = client.create_export_task(
    taskName='export_task', 
    logGroupName='/aws/lambda/<lambda_function_2>', 
    fromTime=from_time, 
    to=to_time, 
    destination='<application_logs>', 
    destinationPrefix='<lambda_function_2>' 
    

    二create_export_task这里

    An error occurred (LimitExceededException) when calling the 
    CreateExportTask operation: Resource limit exceeded." 
    

失败,我不能创建多个导出任务。有没有办法解决这个问题?

回答

0

您创建(创建)了多少个日志组?有一个限制,我认为是每个帐户5000个日志组。此错误表示:“由于”LimitExceededException“,Lambda无法创建日志组。

在CloudWatch中查找以”/ aws/lambda /“开头的名称,我将使用CLI列出日志组和然后像“WC”一个程序来计算数量。

您可以联系亚马逊的支持,以增加此限制。

Limit Increase

+0

so Aws为每个lambda函数创建一个日志组。我没有创建日志组的问题。我有创建导出任务的问题。 –

+0

我认为你需要在调用第二个create_export_task之前添加一个延迟。 –

+0

是啊..但寻找更优雅的解决方案。 –

相关问题