2016-12-14 1 views
2

두 개의 AWS 람다 함수가 있습니다. 이 모든 함수는 공통적 인 도우미 함수를 사용합니다. 이 도우미 함수를 helper_functions.py이라는 별도의 파일에 배치했습니다. AWS의 모든 람다 함수에서이 모듈을 가져오고 싶습니다. 나는이 모듈 (helper_functions.py)을 저장할 장소를 찾을 수 없기 때문에,이 모듈에서 변경을 할 때 나는 나의 람다 함수에서 아무 것도 변경할 필요가 없다. 여러 AWS 람다에서 파이썬 모듈 가져 오기

내가 생각 옵션 중 일부

은 다음과 같습니다

  1. 는 AWS S3에 모듈을 업로드 한 후 S3에서 시작에서 각 람다 기능에 넣기 및 기능을 사용하여.

AWS 람다에 우편 및 업로드 그것을에서 람다 기능 '파이썬 파일과 함께 모듈을 패키지

  • (나는 아직 파악하지 않은) 일부 스크립트 작성 (가능한 경우)

    모듈을 관리하고 훨씬 더 효율적인 방법으로 가져 오기위한 더 나은 솔루션을 제안하십시오.

  • +1

    람다 패키지에는 크기 제한이 있습니다. zip 패키지 내에 해당 크기에 맞는 모든 모듈을 포함해야합니다. 나머지 모듈은 s3에 저장하고 거기에서 가져올 수 있습니다. – MYGz

    +0

    모듈을 모든 람다 패키지에 포함시킨 다음 모듈에서 무언가를 변경하고 싶다면 모든 람다 패키지를 업데이트해야합니다. zip 패키지의 모듈을 포함하여 – Sibtain

    +0

    이 더 효율적입니다. 작은 스크립트를 작성하여 모든 패키지의 모듈을 업데이트 할 수 있습니다. 확인 : http://docs.aws.amazon.com/cli/latest/reference/lambda/update-function-code.html – MYGz

    답변

    2

    저는 오랫동안이 문제로 어려움을 겪었습니다. 여기에 (더 좋은 방법이있을 수 있습니다) 내 해결책 :이 같은 파일 시스템에

    설정 도우미 기능 : __init__.py

    pathToSomewhere/my_helper/helper_functions.py pathToSomewhere/my_helper/__init__.py pathToSomewhere/setup.py

    인 경우 :

    from .helper_functions import * 
    

    setup.py입니다

    from setuptools import setup 
    
    setup(name='my_helper', 
         version='0.10000', 
         description='My helper functions', 
         url='http://github.com/user/example', 
         license='Proprietary', 
         author='Null', 
         author_email='[email protected]', 
         packages=['my_helper'], 
         install_requires=['boto3'], 
         zip_safe=False) 
    

    이제 my_helper을 포장 해 봅시다. pathToSomewhere/에서 다음을 실행

    python setup.py sdist 
    

    나는 이미 만드는 방법을 알고 당신의 람다 함수를 실행하기위한 가상 환경을 업로드 있으리라 믿고있어. 그렇지 않다면 알려주세요.

    이제 람다 함수의 가상 환경에 my_helper을 설치해 보겠습니다. 이제 가상 환경을 가정 해 봅시다 지금

    ./worker-env/bin/pip install file://pathToSomewhere/my_helper 
    

    worker_env라고 worker-env을 압축하여 실제 람다 스크립트가 업로드됩니다.

    +0

    댓글! 그러나 현재 저는 AWS Codepipeline을 사용하여 지속적인 배포를 진행하고 있으며 서버리스 애플리케이션을 패키지로 만들고 배포하기가 쉽습니다. 시작하려면 [this] (http://docs.aws.amazon.com/lambda/latest/dg/automating-deployment.html)를 확인하십시오. – Sibtain