Node.js 缺少无服务器事件

Node.js 缺少无服务器事件,node.js,amazon-web-services,yaml,aws-lambda,serverless-framework,Node.js,Amazon Web Services,Yaml,Aws Lambda,Serverless Framework,我的无服务器配置有问题,导致lambda函数在部署时没有触发器 我的技能有一个主要的serverless.yml,如下所示: 服务:${file./${env:DEPLOY\u file\u NAME}:service} provider: name: aws custom: globalSchedule: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):globalSchedule} roleName: ${file(./${env:DE

我的无服务器配置有问题,导致lambda函数在部署时没有触发器

我的技能有一个主要的serverless.yml,如下所示:

服务:${file./${env:DEPLOY\u file\u NAME}:service}

provider:
  name: aws
  custom:
    globalSchedule: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):globalSchedule}
    roleName: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):roleName}
    profileName: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):profileName}
  plugins:
    - pluginHandler
  runtime: nodejs4.3
  cfLogs: true

  stage: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):stage}
  region: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):region}
  memorySize: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):memorySize}
  timeout: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):timeout}
  keepWarm: false
  useApigateway: false
  events:
    ${file(./${env:DEPLOY_FILE_NAME}):events}

package:
  exclude:
    ${file(./${env:DEPLOY_FILE_NAME}):exclude}
functions:
  smartHome:
    handler: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):handler}
然后,我有两组yaml设置文件。一个用于${skill\u type}{u${localization}即customskill\u eu.yml,另一个用于特定于阶段的${skill\u type}{localization}{$stage},如smarthome\u us\u dev.yml等

怎么了?请告知


谢谢。

您需要向函数中添加事件。对无服务器事件进行读取

目前,serverless支持由API网关、Kinesis、DynamoDB、S3、Schedule、SNS和Alexa Skill调用lambda

因此,在这种情况下,添加所需的事件标记应该可以解决您的问题

...
functions:
  smartHome:
    handler: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):handler}
    events: ${file(./${env:DEPLOY_FILE_NAME}):events}
...

或者,您可以始终在无服务器资源节点中使用传统的CloudFormation格式定义所有资源及其操作。

@Anthon-为什么编辑我的标记?您的文件是正确的YAML,您的问题与YAML和ASCII一样有关。阅读YAML的标签描述,你会发现它是不恰当的,并且具有误导性。在我看来,当一个不做任何事情来帮助打倒某人的人投票时,也许是为了赢得一枚无用的徽章,它表达了关于这一点的所有信息。如果我要改写我最喜欢的电影角色的话……如果人们否决了你的问题,原因可能是:这个问题没有显示任何研究成果;这是不清楚或没有用处。作为我们创建一个数据库的努力的一部分,向下投票通常是必要的,该数据库包含高质量的问题和答案,这是我们的目标,因此它是本网站的一个功能,具有一定的目的。除此之外,你已经表现出了你的抵抗力,不想通过回复你的岗位来获得帮助,事实上,在必要的地方,你需要进一步的改进。一个更好的问题更有可能吸引更多的答案。这里需要处理的是你的帖子,但你并没有改进它,而是把时间花在与一位试图帮助你学习如何使用此网站的人进行私人交流上。稍加努力就可以让这篇文章成为一篇可以接受的文章,但因为没有:-1哦,我认为这正是我需要的-在函数配置中添加事件。我的配置在上面。您看到我的it有什么奇怪的地方吗?首先需要做的是,将events标记移动到functions元素中。请参见更新答案中的示例。谢谢,开始查找。谢谢你抽出时间。是的,你完全正确。我仍然得到一个错误,但另一个现在。原来的问题已经解决了。现在,由于某种原因,当我使用events:${file./${env:DEPLOY\u file\u NAME}:events}时,就像我对excludes所做的一样,它告诉我们参数必须是数组而不是字符串。希望能找到答案。非常感谢。找到了一个无服务器公关来解决我的最后一个问题。感谢@lebryant对配置的帮助。
...
functions:
  smartHome:
    handler: ${file(./${env:DEPLOY_FILE_NAME_STAGE}):handler}
    events: ${file(./${env:DEPLOY_FILE_NAME}):events}
...