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

时间:2019-05-01 16:34:44

标签: aws-lambda yaml 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  

我得到的错误:

  

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

我需要了解如何在YAML文件中解决此问题,以便将功能部署到AWS?

2 个答案:

答案 0 :(得分:0)

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

handler:handler.s3_thumbnail_generator

因此,解析器将继续尝试通过添加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 

也可能是冒号应该是一个值指示符(通常需要以下空格),并且您的缩进太草率:

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 

答案 1 :(得分:0)

如果它是您的原始文件,则您的YAML文件中存在语法错误。我在可能出现错误的行下添加了一条注释:

[[1,2], [2,1]]