无服务器错误 - 没有文件匹配包含/排除模式

Abh*_*aja 8 serverless-architecture serverless aws-serverless

我正在尝试使用 python 进行一些骨架部署。这是我的 serverless.yaml

我的文件夹结构是

serverless-test
|_lambdas
|____handler.py
|_layers
|____common
|_________somefunction.py
Run Code Online (Sandbox Code Playgroud)
service: serverless-test

frameworkVersion: '2'

provider:
  name: aws
  runtime: python3.8
  lambdaHashingVersion: 20201221

  stage: test
  region: us-west-2

functions:
  hello:
    handler: lambdas/handler.hello
Run Code Online (Sandbox Code Playgroud)

这很好用。现在,一旦我添加图层,我就会收到以下错误

No file matches include / exclude patterns

service: serverless-test

frameworkVersion: '2'

provider:
  name: aws
  runtime: python3.8
  lambdaHashingVersion: 20201221

  stage: test
  region: us-west-2

functions:
  hello:
    handler: lambdas/handler.hello
    layers:
      - {Ref: CommonLambdaLayer}

layers:
  common:
    path: layers/common
    name: common-module
    description: common set of functions
Run Code Online (Sandbox Code Playgroud)

我还尝试添加包含和排除模式。但这并没有解决我的问题

service: serverless-test

frameworkVersion: '2'

provider:
  name: aws
  runtime: python3.8
  lambdaHashingVersion: 20201221

  stage: test
  region: us-west-2

package:
  individually: true
  exclude: 
    - ./**
  include:
    - ./lambdas/**

functions:
  hello:
    handler: lambdas/handler.hello
    layers:
      - {Ref: CommonLambdaLayer}

layers:
  common:
    path: layers/common
    name: common-module
    description: common set of functions
    package:
      include:
        - ./**
Run Code Online (Sandbox Code Playgroud)

我也尝试非常具体

service: serverless-test

frameworkVersion: '2'

provider:
  name: aws
  runtime: python3.8
  lambdaHashingVersion: 20201221

  stage: test
  region: us-west-2

package:
  individually: true
  exclude: 
    - ./**

functions:
  hello:
    handler: lambdas/handler.hello
    layers:
      - {Ref: CommonLambdaLayer}
    package:
      exclude:
        - ./**
      include:
        - ./lambdas/handler.py

layers:
  common:
    path: layers/common
    name: common-module
    description: common set of functions
    package:
      exclude:
        - ./**
      include:
        - ./layers/common/somefunction.py
Run Code Online (Sandbox Code Playgroud)

pur*_*eth 14

我遇到了同样的问题,并在这里找到了答案:

serverless 正在根据根包中指定的模式检查这些文件:exclude ,因为 ./** 匹配每个文件,而 include-pattern./functions/**/* 不匹配任何文件,因此该层中实际上不包含任何文件,这导致错误。

./**只需尝试从排除中删除:

package:
  individually: true
  exclude: 
    - ./** # <-- remove this!
Run Code Online (Sandbox Code Playgroud)