我有几个lambda函数。我需要从我的所有lambda函数中生成日志并加载到我们的内部数据仓库中。我想到了这些解决方案。我需要从云观看日志中删除日志并将其加载到s3,并从s3加载到数据仓库
已将lambda函数订阅到我的lambda函数的cloudwatch日志组,并抛光并记录消息并将其推送到s3。
- 优点:工作和实施起来很简单。
- 缺点:我没有办法让 “重放”。说我的出口商出于某种原因失败。我不能 重播此动作。
有一个每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."
失败,我不能创建多个导出任务。有没有办法解决这个问题?
so Aws为每个lambda函数创建一个日志组。我没有创建日志组的问题。我有创建导出任务的问题。 –
我认为你需要在调用第二个create_export_task之前添加一个延迟。 –
是啊..但寻找更优雅的解决方案。 –