1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 我认为这基本上是在面临同样的问题:https://repost.aws/questions/QUvlMRwS8sTYWi2-1Sav0kog/lambda-can-not-load-python-modules-installed-with-component
我打算尝试那里列出的一些解决方案,但首先我使Lambda和非Lambda组件的Python版本对齐。我使用这里提供的Dockerfile:https://github.com/aws-greengrass/aws-greengrass-docker
其中包括:
# Install Greengrass v2 dependencies
RUN yum update -y && yum install -y python37 tar unzip wget sudo procps which && \
amazon-linux-extras enable python3.8 && yum install -y python3.8 java-11-amazon-corretto-headless && \
因此,Python3.7是系统默认版本,用于我的非Lambda组件,而Lambda组件正在使用Python3.8运行时。我更新了Dockerfile,以在所有地方使用3.8,将上述内容更改为:
RUN yum update -y \
&& amazon-linux-extras install python3.8 \
&& update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1 \
&& update-alternatives --install /usr/bin/pip3 pip3 /usr/bin/pip3.8 1 \
&& yum install -y tar unzip wget sudo procps which \
&& yum install -y java-11-amazon-corretto-headless \
现在所有组件都在使用3.8。我已经有一个非Lambda组件,它通过pip安装awsiotsdk
以供ggc_user
使用。现在也使用awsiotsdk
的新Lambda组件也能够从awsiot
导入,毫无问题。我认为Lambda工件缺少的任何东西现在都从ggc_user
站点包中启动,这类似于其他帖子中提到的解决方案。
对于我的使用情况来说,这很好,因为
相关内容
- AWS 官方已更新 1 年前
- AWS 官方已更新 4 个月前
- AWS 官方已更新 3 年前
- AWS 官方已更新 10 个月前