超出 AWSLogs 资源限制 - 无服务器“cloudwatchLog”事件

Posted

技术标签:

【中文标题】超出 AWSLogs 资源限制 - 无服务器“cloudwatchLog”事件【英文标题】:AWSLogs Resource Limit Exceeded - serverless `cloudwatchLog` event 【发布时间】:2019-01-29 05:42:45 【问题描述】:

我正在尝试将 cloudwatchLog 事件添加到我的 lambda 函数中,但遇到了意外错误。错误消息不是很具有描述性。有谁知道怎么回事?

配置:

functions:
  helloWorld:
    handler: dist/handlers/index.helloWorld
    events:
      - cloudwatchLog:
          logGroup: '/aws/lambda/serverless-test-package-4-dev-supWorld'

错误信息:

Serverless Error ---------------------------------------

An error occurred: HelloWorldLogsSubscriptionFilterCloudWatchLog1 - 
Resource limit exceeded. (Service: AWSLogs; Status Code: 400; Error 
Code: LimitExceededException; Request ID: e30b438c-a654-11e8-837a-7f86cfddec76).

Get Support --------------------------------------------
   Docs:          docs.serverless.com
   Bugs:          github.com/serverless/serverless/issues
   Forums:        forum.serverless.com
   Chat:          gitter.im/serverless/serverless

Your Environment Information -----------------------------
   OS:                     linux
   Node Version:           8.11.3
   Serverless Version:     1.26.1

【问题讨论】:

你看到了吗:docs.aws.amazon.com/AmazonCloudWatch/latest/logs/…?表中的第二行 CreateLogGroup 似乎与您的错误一致。 @ninge 实际上是 Subscription Filter 约束,该表的最后一行导致了错误。感谢您链接文档。 【参考方案1】:

问题是已经有一个 lambda 订阅了 CloudWatchLog 事件。 AWS 将每个 CloudWatch 日志组限制为最多一个订阅,由 the last row of this documentation 指定。

【讨论】:

我确认。我认为您可以将答案标记为已验证:)【参考方案2】:

要解决此问题,您必须从日志组中删除已附加的订阅。只需从 lambda 中删除 cloudwatchLog 事件并进行部署,即可从日志组中删除订阅。然后,您可以为所需的日志组添加 cloudwatchLog 事件并再次部署它。

【讨论】:

以上是关于超出 AWSLogs 资源限制 - 无服务器“cloudwatchLog”事件的主要内容,如果未能解决你的问题,请参考以下文章

Python3:超出资源限制时出现异常或返回代码?

Ubuntu 16.04上的awslogs服务和CloudWatch Logs Agent问题

“system-cloudinit@-var-tmp-hostname.yml.service 的作业失败,因为超出了配置的资源限制”

ArcEngine不同种类的工作空间建立查询ICursor时“超出系统资源”

一发请求就服务重启的问题记录

Google 应用程序脚本 360 秒超出时间限制解决方法