无服务器:您的serverless.yml具有无效值,其键为:“ Ref”

时间:2019-01-21 07:14:30

标签: dialogflow serverless-framework alexa-skill serverless serverless-plugins

使用以下命令安装无服务器时 sls plugin install -n serverless-alexa-skills --stage dev

我遇到类似Your serverless.yml has an invalid value with key: "Ref"的错误

以下是我的示例serverless.yml文件

plugins:
- serverless-webpack
- serverless-s3-sync
- serverless-plugin-git-variables
- serverless-alexa-skills

functions: ${file(./deploy/${opt:stage}.yml):functions}
resources: ${file(./deploy/${opt:stage}.yml):resources}
custom: ${file(./deploy/${opt:stage}.yml):custom}

outputs:
DialogflowFunctionArn:
Value:
  Ref: 

在这里有一个方块。有人可以帮我吗?

3 个答案:

答案 0 :(得分:2)

Ref is a Cloudformation intrinsic function。它需要引用资源。整个outputs部分也是可选的,仅当您需要引用另一个堆栈中的资源时才使用它。

答案 1 :(得分:1)

它基本上说Ref:是期望值。您已经定义了它,但未为其分配任何值。如果没有用,则应从代码中删除此部分:

outputs:
DialogflowFunctionArn:
Value:
  Ref:

答案 2 :(得分:0)

Ref希望引用某项内容,现在您没有将其传递给任何引用内容。

因此,假设您想要DialogflowFunction的ARN,并且该功能配置在您的功能文件中看起来像这样:

DialogflowFunction:
  description: get the flow
  handler: src/functions/dialog-controller.flow
  events:
    - http:
        path: '/dialog/flow'
        method: get
        cors: true

然后您的裁判看起来像这样:

outputs:
DialogflowFunctionArn:
Value:
  Ref: DialogflowFunction

Ref获取要引用的资源的逻辑ID,在本例中为DialogflowFunction,并将返回该资源的ARN。