Я пытаюсь развернуть лямбда-функцию Python с внешними зависимостями, но я получаю сообщение об ошибке, потому что она не видит мои внешние зависимости."Unable to import module 'metrics': No module named 'github'"
Вот мой сценарий развертывания.Мой скрипт на python с lambda_handler (): metrics.py
.
mkdir lambda_code
# populate lambda_code directory with python libraries
pip3 install --quiet -r requirements.txt --target lambda_code/
# compress the lambda_code directory and add metrics.py to the zip
zip -qq -r9 lambda_code.zip lambda_code/
zip -qq -g lambda_code.zip metrics.py
aws s3 cp lambda_code.zip s3://$BUCKET/lambda_code.zip
aws lambda update-function-code --function-name $FUNCTION_NAME --s3-bucket $BUCKET --s3-key lambda_code.zip
Вот дерево моего упакованного lamdba_code.zip Здесь все не работает. Не работаетмне понятно, почему лямбда не видит модуль github.Я также попытался поместить metrics.py
непосредственно в каталог lambda_code, но все еще ничего.
.
├── lambda_code
│ ├── Deprecated-1.2.5.dist-info
│ ├── PyGithub-1.43.7.dist-info
│ ├── PyJWT-1.7.1.dist-info
│ ├── __pycache__
│ ├── bin
│ ├── certifi
│ ├── certifi-2019.3.9.dist-info
│ ├── chardet
│ ├── chardet-3.0.4.dist-info
│ ├── cycler-0.10.0.dist-info
│ ├── cycler.py
│ ├── dateutil
│ ├── deprecated
│ ├── easy_install.py
│ ├── github
│ ├── idna
│ ├── idna-2.8.dist-info
│ ├── jwt
│ ├── kiwisolver-1.1.0.dist-info
│ ├── kiwisolver.cpython-37m-darwin.so
│ ├── matplotlib
│ ├── matplotlib-3.0.3-py3.7-nspkg.pth
│ ├── matplotlib-3.0.3.dist-info
│ ├── mpl_toolkits
│ ├── numpy
│ ├── numpy-1.16.3.dist-info
│ ├── pandas
│ ├── pandas-0.24.2.dist-info
│ ├── pkg_resources
│ ├── pylab.py
│ ├── pyparsing-2.4.0.dist-info
│ ├── pyparsing.py
│ ├── python_dateutil-2.8.0.dist-info
│ ├── pytz
│ ├── pytz-2019.1.dist-info
│ ├── requests
│ ├── requests-2.21.0.dist-info
│ ├── setuptools
│ ├── setuptools-41.0.1.dist-info
│ ├── six-1.12.0.dist-info
│ ├── six.py
│ ├── urllib3
│ ├── urllib3-1.24.3.dist-info
│ ├── wrapt
│ └── wrapt-1.11.1.dist-info
└── metrics.py
Наконец, вот начало лямбда-кода.Ошибка возникает при попытке импортировать github.
"""Obtains total number of releases on Github.com and creates data
visualizations"""
import datetime
import io
import os
import sys
from base64 import b64decode
from github import Github
import boto3
import matplotlib.pyplot as plt
import pandas as pd
ENCRYPTED = os.environ['github_credentials']
DECRYPTED =
boto3.client('kms').decrypt(CiphertextBlob=b64decode(ENCRYPTED)) .
['Plaintext']
def lambda_handler(event, context):