包含/排除控制AWS Lambda大小的无服务器目录的方法

2024-10-02 20:42:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在为这件事挣扎。以下是我的目录结构:

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

在我需要的子目录中有一些目录,但其他的没有。为了简单起见,我已经减少了目录的数量,因此我不能逐一排除所有目录。以下是我在无服务器.yml

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

因此,当我在zip文件中检查.serverless lib/dir时,它被完全忽略了:(我现在能想到的唯一解决方案是显式地提到要包含的每个目录。有人处理过这个问题吗。你知道吗

另外,先包含所有内容,然后排除一些目录似乎也不起作用。你知道吗

注意:这是一个遗留的C代码构建的东西,所以它将是非常苛刻的改变结构,从现在的事情。你知道吗


Tags: py服务器目录package数量libymldir
1条回答
网友
1楼 · 发布于 2024-10-02 20:42:38

试试这个:

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

它应该包含lib/下的所有内容,但您告诉它不要包含的文件除外。通过使用^{},可以在include步骤中标记要忽略的文件和目录。你知道吗

相关问题 更多 >