ローカルのdockerコンテナのPythonコードをaws cloudformationでAWS Lambdaにデプロイしたのですが、pip listの実行結果に差異がありました(下記)。
pycryptodomeをインストールしているのですが、Lambdaの方では出てこなかったのはなんでか確認しています。
普通は同じ結果になるでしょうか?
LambdaのPythonから実行
Package Version --------------- ------- awslambdaric 2.0.4 boto3 1.20.32 botocore 1.23.32 jmespath 0.10.0 pip 22.0.4 python-dateutil 2.8.2 s3transfer 0.5.2 setuptools 58.1.0 simplejson 3.17.2 six 1.16.0 urllib3 1.26.9
ローカルのコンテナから実行
bash-4.2# pip list Package Version ------------------ --------- attrs 22.1.0 boto3 1.24.45 botocore 1.27.54 certifi 2022.6.15 cffi 1.15.1 charset-normalizer 2.1.0 coverage 6.4.4 cryptography 37.0.4 docker 5.0.3 execnet 1.9.0 idna 3.3 iniconfig 1.1.1 Jinja2 3.1.2 jmespath 1.0.1 MarkupSafe 2.1.1 mock 4.0.3 moto 3.1.16 packaging 21.3 pep8 1.7.1 pip 22.2.2 pluggy 1.0.0 py 1.11.0 pycparser 2.21 pycryptodome 3.15.0 pyparsing 3.0.9 pytest 6.2.5 pytest-cache 1.0 pytest-cov 3.0.0 pytest-mock 3.8.2 pytest-pep8 1.0.6 pytest-pythonpath 0.7.4 python-dateutil 2.8.2 pytz 2022.2.1 requests 2.28.1 responses 0.21.0 s3transfer 0.6.0 setuptools 58.1.0 six 1.16.0 toml 0.10.2 tomli 2.0.1 urllib3 1.26.11 websocket-client 1.3.3 Werkzeug 2.2.2 xmltodict 0.13.0
【参考】
LambdaのPythonから pip list コマンドを実行したコードは下記になります。
Python
1import subprocess 2def lambda_handler(event, context): 3 cp = subprocess.run('pip list', shell=True, capture_output=True, text=True) 4 print(cp.stdout)
dockerファイルは下記になります。
FROM amazonlinux:latest #-------------------------- # 依存パッケージインストール #-------------------------- ENV PYENV_ROOT $HOME/.pyenv ENV PATH $PYENV_ROOT/shims:$PYENV_ROOT/bin:$PATH RUN yum -y update && \ yum -y groupinstall "Development Tools" && \ # pip install --upgrade pip && \ yum -y install openssl-devel sqlite-devel wget git libffi-devel && \ git clone https://github.com/yyuu/pyenv.git .pyenv && \ pyenv install 3.9.10 && \ pyenv install 2.7.14 && \ pyenv global 3.9.10 && \ pyenv rehash #-------------------------- # AWS CLI インストール #-------------------------- RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" && \ unzip awscliv2.zip && \ ./aws/install #-------------------------- # プロジェクトフォルダ作成 #-------------------------- ARG project_dir=/opt/test RUN mkdir $project_dir && \ mkdir $project_dir/resource && \ mkdir $project_dir/unittest ADD requirements.txt requirements.txt RUN pip install --upgrade pip && \ pip install --default-timeout=1000 -r requirements.txt #-------------------------- # テスト設定 #-------------------------- ENV PYTHONPATH $PYTHONPATH:$project_dir/unittest/src ENV PYTHONPATH $PYTHONPATH:$project_dir/unittest/lib ENV PYTHONPATH $PYTHONPATH:$project_dir/unittest/utility #-------------------------- # OS設定 #-------------------------- RUN echo "alias ll='ls -la'" >> ~/.bash_profile RUN echo "export LANG=en_US.UTF-8" >> ~/.bash_profile WORKDIR $project_dir
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/08/23 04:56
2022/08/23 04:58
2022/08/23 05:00
2022/08/23 05:02
2022/08/23 05:07
2022/08/23 06:37