在 serverless.yaml 上出现以下错误:无法读取块映射条目;多行键可能不是隐式键

Har*_*ari 5 yaml aws-lambda aws-serverless

我正在尝试将 lambda 函数与serverless.yml文件一起部署到 AWS,但它抛出以下错误

以下是YAML文件中定义的函数

functions:
 s3-thumbnail-generator:
 handler:handler.s3_thumbnail_generator  
   events:
     - s3:
       bucket: ${self:custom.bucket}
       event: s3.ObjectCreated:*
       rules:
       - suffix: .png

plugins:
  - serverless-python-requirements  
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

无法读取块映射条目;多行键可能不是 serverless.yml" 中第 45 行第 10 列的隐式键:

我需要了解如何在 YAML 文件中解决此问题才能将函数部署到 AWS?

Ant*_*hon 7

:问题是该行末尾没有值指示符 ( ):

handler:handler.s3_thumbnail_generator
Run Code Online (Sandbox Code Playgroud)

因此解析器继续尝试通过添加events后跟值指示符来收集多行普通标量。但多行普通标量不能成为 YAML 中的键。

目前尚不清楚您的实际错误是什么。您可能需要添加值指示符并在密钥中嵌入冒号:

functions:
 s3-thumbnail-generator:
 handler:handler.s3_thumbnail_generator:
   events:
     - s3:
       bucket: ${self:custom.bucket}
       event: s3.ObjectCreated:*
       rules:
       - suffix: .png

plugins:
  - serverless-python-requirements 
Run Code Online (Sandbox Code Playgroud)

或者,冒号应该是一个值指示符(通常需要一个空格),而您在缩进方面草率了:

functions:
  s3-thumbnail-generator:
  handler: handler.s3_thumbnail_generator  
  events:
     - s3:
       bucket: ${self:custom.bucket}
       event: s3.ObjectCreated:*
       rules:
       - suffix: .png

plugins:
  - serverless-python-requirements 
Run Code Online (Sandbox Code Playgroud)