Без сервера: загруженный файл должен быть непустым почтовым индексом.

У меня есть Python-серверный проект, который я использую с AWS. Но всякий раз, когда я запускаю sls deploy, я получаю эту ошибку, и я замечаю в своем.serverless, что он на самом деле не архивирует файл, а только создает файлы.json.

Произошла ошибка: ParserLambdaFunction - загруженный файл должен быть непустым zip.

мой yml выглядит так:

service: my-service

provider:
  name: aws
  runtime: python3.6

package:
  individually: True

plugins:
  - serverless-package-python-functions
  - serverless-python-requirements

custom:
  pkgPyFuncs: # plugin configuration
    buildDir: _build

functions:
  parser:
    handler: handler.parser
    package:
      include:
      artifact: ${self:custom.pkgPyFuncs.buildDir}/my-service-dev-parser.zip
    events:
      - http:
          cors: true
          integration: LAMBDA
          passThrough: WHEN_NO_MATCH
          path: /
          method: post
          request: 
            parameters:
              querystring:
                application/json: "$input.path('$.body')"
                url: true
      - cloudwatchLog: '/aws/lambda/pythonParser'

мой package.json выглядит так:

{
  "name": "my-service",
  "description": "",
  "version": "0.1.0",
  "dependencies": {
    "serverless-package-python-functions": "^0.2.3"
  },
  "devDependencies": {
    "serverless-python-requirements": "^3.0.5"
  }
}

и моя структура папок выглядит так:

-my-service
--.serverless
--_pycache_
--_build
--node_modules
--standford-new-2017-06-09
--.gitignore
--handler.py
--package.json
--serverless.yml
--tsconfig.json
--typings.json

1 ответ

С одной стороны вы можете просто удалить include или использовать

include:
   - ./[put_your_function_code_in_a_folder]
artifact: ....

и как говорится - поместите ваш код в подпапку вашего каталога.

Другие вопросы по тегам