我的 S3 存储桶上有一个名为 pg8000.zip 的 .zip 文件:
mybucket/devops/pg8000.zip
它目前用于 Glue 4.0 脚本,如下所示,在 Python 库字段中:
s3://mybucket/devops/pg8000.zip
这在 Glue 中工作得很好 - 但是当尝试使用相同的包创建 Lambda 层时:
Resources:
MyLambdaLayer:
Type: AWS::Lambda::LayerVersion
Properties:
LayerName: "Pg8000Layer"
Description: "Layer containing pg8000"
Content:
S3Bucket: "mybucket"
S3Key: "devops/pg8000.zip"
CompatibleRuntimes:
- python3.8
在附加层的情况下运行时,我的 Lambda 函数出现以下错误:
[ERROR] Runtime.ImportModuleError: Unable to import module index: no module named pg8000
我是否需要重新打包这 2 项服务的库?
预计这两个导入库的服务会产生相同的结果 - 但未能产生相同的结果。
.zip 文件的结构应如下所示:
pg8000/
__init__.py
other_module.py
其中 pg8000 是包含库文件的根目录。