AWS Lambda 的意外行为

Unexpected behaviour with AWS Lambda

我做了什么

我使用无服务器 cli 从 aws-kotlin-jvm-maven 模板创建了一个项目。之后我以这种方式编辑了我的 serverless.yml 模板:

service: test
provider:
  name: aws
  runtime: java8
  region: eu-west-1
package:
  artifact: target/test-1.0.0.jar
functions:
  hello:
    handler: com.example.Handler
    events:
      - schedule: rate(2 minutes)

并且我以这种方式编辑了我的处理程序:

class Handler:RequestHandler<Map<String, Any>, ApiGatewayResponse> {
    override fun handleRequest(input:Map<String, Any>, context:Context):ApiGatewayResponse {
        BasicConfigurator.configure()
        LOG.info("Hello, World!")
        return ApiGatewayResponse()
    }
    companion object {
        private val LOG = Logger.getLogger(Handler::class.java)
    }
}

我希望我的 Lambda 每 2 分钟 运行,每 2 分钟在 CloudWatch 上记录一次 "Hello, World!"。

我的问题

我在 cloudWatch logs 上找到的内容如下:

第一 运行: "Hello, World!"

第二 运行: "Hello, World!" "Hello, World!"

第三 运行: "Hello, World!" "Hello, World!" "Hello, World!"

...等等。

对这里发生的事情有什么建议吗?

我通过将日志记录依赖项更改为:

解决了这个问题
<dependency>
    <groupId>io.symphonia</groupId>
    <artifactId>lambda-logging</artifactId>
    <version>1.0.0</version>
</dependency>

我在这里找到了一篇非常有用的文章:https://blog.symphonia.io/a-love-letter-to-lambda-logging-974b0eb49273