我有幾個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之前添加一個延遲。 –
是啊..但尋找更優雅的解決方案。 –