Способ включения / исключения каталогов, управляющих AWS Lambda Size без сервера - PullRequest
0 голосов
/ 17 января 2019

Я боролся с этой вещью.Вот моя структура каталогов:

lib
├── dir
│   ├── DirButNotOneSubdir
│   │   ├── DirIdontWantBecauseTheSizeIsTooLarge
│   │   └── DirIwant
│   ├── DirIdontWantBecauseTheSizeIsTooLarge
│   └── DirIwant
├── lambda1.py
└── lambda2.py

Внутри подкаталогов есть несколько каталогов, которые мне нужны, а другие нет.Для простоты я сократил количество каталогов и поэтому не могу исключить все по одному.Вот что я сделал в serverless.yml :

package:
    excludeDevDependencies: true
    exclude:
      - "*"
      - "*/**"
      - lib/dir/DirIdontWantBecauseTheSizeIsTooLarge
      - lib/dir/DirButNotOneSubdir/DirIdontWantBecauseTheSizeIsTooLarge
    include:
      - lib/*

Поэтому, когда я проверял внутри моего zip-файла в .serverless, lib / dir был полностью проигнорирован :( и единственное решение, которое я могу придуматьпрямо сейчас - явно упомянуть каждый каталог, который должен быть включен. Кто-нибудь занимался этой проблемой.

Кроме того, включение всего сначала и последующее исключение некоторых каталогов также, похоже, не работает.

Примечание:Это один из устаревших C-кодов, создающий вещи, поэтому было бы очень трудно изменить структуру по сравнению с тем, как сейчас.

1 Ответ

0 голосов
/ 17 января 2019

Попробуйте это:

package:
  exclude:
    - '*/**'
  include:
    - 'lib/**'
    - '!./lib/dir/DirIdontWantBecauseTheSizeIsTooLarge'
    - '!./lib/dir/DirButNotOneSubdir/DirIdontWantBecauseTheSizeIsTooLarge'

В него должно быть включено все, что указано в lib/, кроме файлов, которые вы не указали. Используя !, вы можете пометить файлы и каталоги, которые нужно пропустить на этапе включения.

...