amazon-web-services - 多个触发的 AWS Lambda 日志显示在单个 Cloudwatch 日志流中

标签 amazon-web-services aws-lambda amazon-cloudwatchlogs

我们创建了一个 Lambda 函数,它必须每分钟触发一次。它按预期工作并显示正确的结果。但是通过 Cloudwatch 事件获取的日志流在单个 Cloudwatch 日志流中包含多个 Lambda 触发器日志。

事件规则:- enter image description here

是否可以为 1 个 Lambda 触发器创建 1 个 cloudwatch 日志??

最佳答案

根据 AWS Lambda documentation here ,一个日志流代表一个你的函数的实例。换句话说,日志流表示来自您的 Lambda 函数的单个执行环境的日志...执行环境也称为 context(您可以传递给处理程序的参数之一)您没有每次调用都获得新日志流的原因是因为 Lambda 函数执行的上下文

当您调用您的 Lambda 函数时,AWS 会加载包含您的函数代码的容器,并提供使您的函数能够执行所需的请求资源:CPU、内存、网络等。这些都构成了函数执行环境,即也称为上下文。这些资源需要时间来配置,这会导致函数执行的延迟增加。这通常称为“冷启动”。

为了在每次调用时减轻这种不希望的延迟或冷启动,在您的函数完成其初始执行后,AWS 不会终止执行环境,而是保持容器和执行环境的运行以及 cpu、内存和网络,为下一次调用提供、准备和预期。这被称为保持功能“温暖”。当容器处于热状态时,函数的后续调用将在与前一次调用相同的执行环境或 context 中执行,并且由于调用是由函数的同一实例执行的,因此日志是写入与先前调用相同的日志流,这是表示该实例/执行环境/函数上下文的日志流。

尽管如此,值得指出的是 AWS 不会让容器无限期地运行。如果在给定的时间段内没有后续调用(没有确切的时间段,但通常认为在 30 到 45 分钟之间,source)AWS 将终止容器,并释放资源以供其他函数使用.下次调用 Lambda 函数时,AWS 将重复该函数的配置过程并创建一个新的执行环境,这将导致您的函数日志写入代表新执行环境/上下文的新日志流/你的函数的实例。

您可以阅读有关 Lambda 执行上下文的更多信息 here .

关于amazon-web-services - 多个触发的 AWS Lambda 日志显示在单个 Cloudwatch 日志流中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58491906/

相关文章:

amazon-vpc - 在 VPC 内,codebuild 需要什么权限才能写入 cloudwatch 日志?

amazon-web-services - CloudFront 分发是否需要多区域副本?

python - 返回 header 内容 - API 网关 + AWS Lambda

amazon-web-services - 为什么我得到这个 {"message": "Internal server error" } from Postman

javascript - 使用 createWriteStream 为通过 FTP 下载的 txt 文件分配变量

aws-lambda - AWS lambda 和数据库

django - 当docker运行时,发生错误。 “ValueError: Unable to configure handler '守望台:您必须指定一个区域。”

amazon-web-services - 云信息 : Error: Member must have length less than or equal to 20

amazon-web-services - 使用cloudformation,我想给默认安全组和SSH安全组作为实例的安全组

amazon-web-services - AWS VPC Lambda 网络问题