2017-04-17 6 views
0

AWS Lambda 함수로 업로드 할 패키지를 빌드하고 있습니다. Markdown의 Python 구현 인 Markdown 2.6.8에 대한 종속성을 포함하려고 시도했습니다. 함수를 테스트 할 때 Unable to import module 'markdown-convert': No module named markdown 오류가 발생합니다. 다른 유사한 질문에서 아마존 리눅스에서 의존성 파일을 컴파일하여 람다와 함께 사용할 수 있도록해야 할 수도 있습니다. 필자는 파이썬에 익숙하지 않고,이 코드가 달걀 안에 패키지되는 방식과 의존성을 가져 오는 방식에 영향을 주는지 여부를 조사해야하는지 궁금합니다. 내가이 오류를 해결하려고 노력한다고 제안하겠습니까? markdown-convert.py의python에서 markdown converter 종속성 포함 AWS Lambda 함수

. 
    ├── markdown 
    │   ├── blockparser.py 
    │   ├── blockprocessors.py 
    │   ├── extensions 
    │   │   ├── abbr.py 
    │   │   ├── admonition.py 
    │   │   ├── attr_list.py 
    │   │   ├── codehilite.py 
    │   │   ├── def_list.py 
    │   │   ├── extra.py 
    │   │   ├── fenced_code.py 
    │   │   ├── footnotes.py 
    │   │   ├── headerid.py 
    │   │   ├── __init__.py 
    │   │   ├── meta.py 
    │   │   ├── nl2br.py 
    │   │   ├── __pycache__ 
    │   │   │   ├── abbr.cpython-34.pyc 
    │   │   │   ├── admonition.cpython-34.pyc 
    │   │   │   ├── attr_list.cpython-34.pyc 
    │   │   │   ├── codehilite.cpython-34.pyc 
    │   │   │   ├── def_list.cpython-34.pyc 
    │   │   │   ├── extra.cpython-34.pyc 
    │   │   │   ├── fenced_code.cpython-34.pyc 
    │   │   │   ├── footnotes.cpython-34.pyc 
    │   │   │   ├── headerid.cpython-34.pyc 
    │   │   │   ├── __init__.cpython-34.pyc 
    │   │   │   ├── meta.cpython-34.pyc 
    │   │   │   ├── nl2br.cpython-34.pyc 
    │   │   │   ├── sane_lists.cpython-34.pyc 
    │   │   │   ├── smart_strong.cpython-34.pyc 
    │   │   │   ├── smarty.cpython-34.pyc 
    │   │   │   ├── tables.cpython-34.pyc 
    │   │   │   ├── toc.cpython-34.pyc 
    │   │   │   └── wikilinks.cpython-34.pyc 
    │   │   ├── sane_lists.py 
    │   │   ├── smart_strong.py 
    │   │   ├── smarty.py 
    │   │   ├── tables.py 
    │   │   ├── toc.py 
    │   │   └── wikilinks.py 
    │   ├── __init__.py 
    │   ├── inlinepatterns.py 
    │   ├── __main__.py 
    │   ├── odict.py 
    │   ├── postprocessors.py 
    │   ├── preprocessors.py 
    │   ├── __pycache__ 
    │   │   ├── blockparser.cpython-34.pyc 
    │   │   ├── blockprocessors.cpython-34.pyc 
    │   │   ├── __init__.cpython-34.pyc 
    │   │   ├── inlinepatterns.cpython-34.pyc 
    │   │   ├── __main__.cpython-34.pyc 
    │   │   ├── odict.cpython-34.pyc 
    │   │   ├── postprocessors.cpython-34.pyc 
    │   │   ├── preprocessors.cpython-34.pyc 
    │   │   ├── serializers.cpython-34.pyc 
    │   │   ├── treeprocessors.cpython-34.pyc 
    │   │   ├── util.cpython-34.pyc 
    │   │   └── __version__.cpython-34.pyc 
    │   ├── serializers.py 
    │   ├── treeprocessors.py 
    │   ├── util.py 
    │   └── __version__.py 
    ├── Markdown-2.6.8.egg-info 
    │   ├── dependency_links.txt 
    │   ├── installed-files.txt 
    │   ├── PKG-INFO 
    │   ├── SOURCES.txt 
    │   └── top_level.txt 
    └── markdown-convert.py 

내용 :

import markdown 

def lambda_handler(event, context): 
    parsedHTML = {} 
    parsedHTML[u'text'] = markdown.markdown(event[u'text']) 
    return parsedHTML 

답변

0
여기

최고의 조언은 해당 지역의 개발 시스템에 virtualenv를 사용하고 설치하는 것입니다 여기에

내 패키지의 파일 구조 패키지는 pip입니다.

그런 다음 준비가되면 <your-virtual-env>/lib/python2.7/site-packages/*의 전체 내용을 반복적으로 복사하여 람다 패키지를 만듭니다. 컨텐츠가 ZIP 패키지의 루트에 있는지 확인하십시오. 이건 매우 중요합니다! 여기

하십시오 찾을 자세한 내용 :

http://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html