gpt4 book ai didi

python - 有没有办法使用 AWS Lambda 以流式传输方式将 Cloudwatch 日志导出到 Amazon S3? (在 Python 中)

转载 作者:太空宇宙 更新时间:2023-11-04 02:37:48 24 4
gpt4 key购买 nike

现在我需要使用 Lambda 以流方式将 Cloudwatch 中的日志导出到 Amazon S3。我在 Internet 上搜索并编写了一些代码。

import boto3
import calendar
import

def lambda_handler(event, context):
# TODO: create an export task from Cloudwatch logs
# and export the logs into Amazon S3

# create client
client= boto3.client("logs")

# create export task
response= client.create_export_task(
taskName='logs-to-s3-task',
logGroupName='ec2',
fromTime= 123, # begin-time
to=123, # end-time
destination='some-s3',
destinationPrefix='ec2-logs'
)

print("Response of logs-to-s3 lambda function: "+response)

我还在要导出的 Cloudwatch 日志上设置了触发器。但是这里有几个问题:

  1. 一旦 Cloudwatch 日志发生任何变化,我如何确保 S3 上有更新。

  2. lambda 触发器的逻辑是什么。顾名思义,它应该像监听器一样工作。

  3. 如果它作为监听器工作,即在 Cloudwatch 日志发生任何变化时调用,我如何才能只将新添加的日志更新到 S3 而不是一个时间范围内的所有日志。或者换句话说,如何知道 S3 中的最新更新,以便我可以将之后的数据导出到 S3。

谢谢!

最佳答案

您的 lambda 函数可以订阅 CloudWatch 日志,它将充当监听器,lambda 函数将在云监视日志事件上触发。

请参阅 AWS 文档中的这个示例以供引用—— http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SubscriptionFilters.html#LambdaFunctionExample

要仅将新添加的日志更新到 s3 中,您可以将该特定事件作为对象写入 s3,并使用 boto3 s3 客户端排序时间戳。

希望这对您有所帮助。

关于python - 有没有办法使用 AWS Lambda 以流式传输方式将 Cloudwatch 日志导出到 Amazon S3? (在 Python 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47403973/

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