在多个无服务器文件中引用整个属性 - [object Object] 不存在

Jos*_*e A 7 amazon-web-services aws-cloudformation aws-lambda serverless-framework serverless

我在使用无服务器时面临的最大挑战之一是以微服务方式部署 AWS Lambda 函数(每个 lambda 单独 - 我已经尝试过单独的包、Webpack 等......)。

我目前正在将我的无服务器应用程序分解为多个子无服务器文件,并且我正在尝试引用一个主配置无服务器文件。我想继承整个对象树,所以我不必一一重新输入它们(此外,如果有更改,我可以在所有 lambda 表达式中传播它)。

这是我目前的结构:

| serverless.yml
| lambda/
|       /planning
|                index.ts
|                serverless.yml
|       /generator
|                index.ts
|                serverless.yml
|       /createStudents
|                index.ts
|                serverless.yml

Run Code Online (Sandbox Code Playgroud)

的内容主要无服务器文件(略去了):

## https://serverless.com/framework/docs/providers/aws/guide/serverless.yml/
service: backend-appsync

provider:
  name: aws
  stage: ${opt:stage, 'dev'}
  runtime: nodejs10.x
  region: us-east-2
  ## https://serverless.com/framework/docs/providers/aws/guide/iam/
  ## https://serverless.com/blog/abcs-of-iam-permissions/
  iamRoleStatements:
    - Effect: Allow
      Action:
        - "dynamodb:BatchGetItem"
        - "dynamodb:BatchWriteItem"
        - "dynamodb:ConditionCheckItem"
        - "dynamodb:GetItem"
        - "dynamodb:DeleteItem"
        - "dynamodb:PutItem"
        - "dynamodb:Query"
      Resource: "arn:aws:dynamodb:us-east-2:747936726382:table/SchonDB"
Run Code Online (Sandbox Code Playgroud)

我想读取整个提供程序对象并将其插入到单个serverless.yml文件中。

例子: /lambda/planning/serverless.yml

service: "planning"
provider: ${file(../../serverless.yml):provider}
functions:
  planning:
    handler: ./index.handler
    name: ${self:provider.stage}-planning
    description: Handles the Planning of every teacher.
    memorySize: 128
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

无服务器错误 -------------------------------

指定的提供程序“[object Object]”不存在。获取支持 -------------------------------------------------------- 文档:文档。 serverless.com 错误:github.com/serverless/serverless/issues 问题:forum.serverless.com

您的环境信息 --------------------------- 操作系统:win32 节点版本:12.14.1 框架版本:1.61.2 插件版本:3.2 .7 SDK 版本:2.2.1 组件核心版本:1.1.2 组件 CLI 版本:1.4.0

我以为我可以引用整个属性。这可能吗?我究竟做错了什么?谢谢 :)

Jea*_*tin 4

当从项目目录外部导入文件时,无服务器会变得疯狂。为了解决这个问题,你现在可以使用projectDir:

service: "planning"
projectDir: ../..
provider: ${file(../../serverless.yml):provider}
functions:
  planning:
    handler: ./index.handler
    name: ${self:provider.stage}-planning
    description: Handles the Planning of every teacher.
    memorySize: 128
Run Code Online (Sandbox Code Playgroud)