Skip to content

Vendor property error when used with a function (unrecognized property 'vendor')Β #683

Open
@daxiang28

Description

@daxiang28

I'm getting the following error when adding a 'vendor' property to a function.

Warning: Invalid configuration encountered at 'functions.hello': unrecognized property 'vendor'

For context, this is an attempt to keep task functions inside a Django mono-repo and have these smaller task functions utilize shared code at the app root. I wasn't able to get relative imports to work and am looking at this vendor option. I'm open to other suggestions for how others have handled this.

Additionally, I'm not entirely sure if vendor is able to take a list of project folders (example in the serverless.yml below)

Project Structure

app_root
|_ serverless.yml
|_ __init__.py
|_ core
|_ more_stuff
|_ tasks
    |_ __init__.py
    |_ handlers
        |_ __init__.py
        |_ my_handler.py

serverless.yml

configValidationMode: warn
useDotenv: true
deprecationNotificationMode: warn:summary

plugins:
  - serverless-offline
  - serverless-prune-plugin
  - serverless-python-requirements
  - serverless-step-functions
  - serverless-step-functions-local
  - serverless-wsgi

custom:
  pythonRequirements:
    usePoetry: false
    dockerFile: Dockerfile
    zip: true
    useDownloadCache: true
    useStaticCache: true
    dockerizePip: true
    slim: true 
    strip: false
    pipCmdExtraArgs:
      - '-v'
      - '--log'
      - 'pip.log'
  stage: ${opt:stage, 'staging'}
  wsgi:
    app: core.wsgi.application
    packRequirements: false
  prune:
    automatic: true
    number: 3

functions:
  hello:
    handler: my_handler.handler
    module: tasks/handlers
    vendor:
    - ./core
    - ./more_stuff
    package:
      individually: true
        - 'core/**'
        - 'more_stuff/**'
        - 'wsgi_handler.py'
        - 'manage.py'
        - 's_app.py'
        - 'serverless_wsgi.py'
        - '.serverless-wsgi'
        - '!**/tests/**'
        - '!**/static/**'
    layers:
      - arn:aws:lambda:${self:provider.region}:770693421928:layer:Klayers-p39-boto3:1

provider:
  name: aws
  memorySize: 2056
  region: us-east-1
  runtime: python3.9
  versionFunctions: false
  stage: ${self:custom.stage}
  timeout: 30
  deploymentBucket:
    name: ${env:DEPLOYMENT_BUCKET}
  apiGateway:
    shouldStartNameWithService: true
  environment: ${file(./serverless/environment.yml)}

package:
  individually: true
  excludeDevDependencies: true
  patterns:
    - '!**'

package.json

    "@fernthedev/serverless-offline-step-functions": "^1.0.0-alpha.28",
    "serverless": "^3.7.0",
    "serverless-offline": "^8.5.0",
    "serverless-offline-lambda": "^1.0.6",
    "serverless-prune-plugin": "^2.0.1",
    "serverless-python-requirements": "^5.3.1",
    "serverless-step-functions": "^3.5.1",
    "serverless-step-functions-local": "^0.2.1",
    "serverless-wsgi": "^3.0.0"

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions