“functions.app.events[0]”处的无服务器配置警告:不支持的函数事件

Posted

技术标签:

【中文标题】“functions.app.events[0]”处的无服务器配置警告:不支持的函数事件【英文标题】:Serverless Configuration warning at 'functions.app.events[0]': unsupported function event 【发布时间】:2021-01-12 10:07:06 【问题描述】:

我正在尝试使用 serverless.com 部署 AWS API

当我这样做时:

sls --stage=dev --aws-profile=myprofile deploy --force

我收到以下警告:

Configuration warning at 'functions.app.events[0]': unsupported function event

我的 serverless.yml 包含以下部分:

functions:
  app:
    handler: src/index.handler
    memorySize: 3008
    events:
      - httpApi:
        method: '*'
        path: '*'
        authorizer:
          name: serviceAuthorizer
          scopes: # Optional
            - user.id
            - user.email

事件部分有什么问题?

【问题讨论】:

为什么路径是“*”?你是说'/'吗? 我希望所有路径都由这个函数处理。无论如何,如果我使用 path: '/' 我仍然会收到警告 由于您试图捕获所有方法和任何路径,请尝试events: - httpApi: '*',如此处所述 - serverless.com/framework/docs/providers/aws/events/http-api/… 删除了方法和路径并添加了通配符。有了这个我得到:'functions.app.events [0]'的配置警告:无法识别的属性'authorizer' Authorizer 配置可能不支持全部捕获和任何场景?不过我不确定,文档中的任何地方都没有这样说。 【参考方案1】:

我遇到了类似的问题。问题在于缩进。尝试像这样修复它:

- httpApi:
    method: '*'
    path: '*'

【讨论】:

【参考方案2】:

问题确实是缩进。这方面的缩进很奇怪,所以我将在下面解释。每个· 都是一个空格:

functions:
··hello:
····handler: handler.hello
····events:
······- http:
··········path: /hello
··········method: get

一些提示:

- http: 连字符后有一个空格。 下一行的缩进很奇怪 - 这就是导致问题的原因。在定义我们的事件类型(在我的例子中是 http)之后,不仅仅是两个缩进空格,实际上有 4 个。我不知道为什么,但这就是它所要求的。

另一个提示:如果您发现您的文本编辑器正在自动格式化您的 YAML 文件并将空格缩进替换为制表符或其他内容,请使用以下设置将 .editorconfig 文件添加到根目录:

[*.yml]
indent_size = 2
indent_style = spaces

【讨论】:

你拯救了我的一天...现在让某人告诉我寻找丢失的; 比寻找丢失的两个空格更大的问题...我今天几乎拔掉了一半的头发。 老兄。你让我今天很开心。它只需要以下 4 个空格 - http:非常感谢 我的英雄,认真的。

以上是关于“functions.app.events[0]”处的无服务器配置警告:不支持的函数事件的主要内容,如果未能解决你的问题,请参考以下文章