Lambda 함수 생성 및 패키징 - AWS IoT Greengrass

다음에 대한 설명서를 보고 있습니다.AWS IoT Greengrass Version 1.AWS IoT Greengrass Version 2의 최신 주요 버전입니다AWS IoT Greengrass. 사용에 관한 자세한 내용은 단원을 참조하십시오.AWS IoT Greengrass V2에 대한 자세한 내용은AWS IoT Greengrass Version 2개발자 안내서.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Lambda 함수 생성 및 패키징

이 모듈의 예제 Python Lambda 함수 는AWS IoT Greengrass코어 SDK를 사용하여 MQTT 메시지를 게시합니다.

이 단계에서는 다음을 수행합니다.

  • 를 다운로드합니다.AWS IoT GreengrassPython 용 코어 SDK를 컴퓨터 (AWS IoT Greengrass코어 장치).

  • 함수 코드와 종속성이 포함된 Lambda 함수 배포 패키지를 생성합니다.

  • Lambda 콘솔을 사용하여 Lambda 함수를 만들고 배포 패키지를 업로드합니다.

  • Lambda 함수 버전을 게시하고 버전을 가리키는 별칭을 만듭니다.

이 모듈을 완료하려면 코어 디바이스에 Python 3.7을 설치해야 합니다.

 

  1. 에서AWS IoT Greengrass코어 SDK다운로드 페이지에서AWS IoT Greengrass컴퓨터에 파이썬을위한 핵심 SDK.

  2. 다운로드한 패키지의 압축을 풀어 Lambda 함수 코드 및 SDK를 가져옵니다.

    이 모듈의 Lambda 함수는 다음을 사용합니다.

    • examples\HelloWorldgreengrassHelloWorld.py 파일. 이것은 Lambda 함수 코드입니다. 이 함수는 5초마다 가능한 메시지 두 개 중 하나를 hello/world 주제에 게시합니다.

    • greengrasssdk 폴더입니다. 이는 SDK입니다.

  3. greengrasssdk 폴더를 greengrassHelloWorld.py가 포함된 HelloWorld 폴더에 복사합니다.

  4. Lambda 함수 배포 패키지를 생성하려면greengrassHelloWorld.pygreengrasssdk폴더를 압축된zip파일 이름hello_world_python_lambda.zip. py 파일과 greengrasssdk 폴더는 디렉터리의 루트에 있어야 합니다.

    
                            hello_word_python_lambda.zip의 압축된 내용을 보여 주는 스크린샷.

    UNIX 유사 시스템(Mac 터미널 포함)의 경우 다음 명령을 사용하여 파일과 폴더를 패키징할 수 있습니다.

    zip -r hello_world_python_lambda.zip greengrasssdk greengrassHelloWorld.py
    참고

    배포에 따라 먼저 zip을 설치해야 할 수도 있습니다(예를 들어 sudo apt-get install zip을 실행하여). 설치 명령은 배포에 따라 다를 수 있습니다.

    이제 Lambda 함수를 만들고 배포 패키지를 업로드할 준비가 되었습니다.

  5. Lambda 콘솔을 연 다음함수 생성.

  6. 새로 작성을 선택합니다.

  7. 함수 이름을 Greengrass_HelloWorld로 지정하고 나머지 필드를 다음과 같이 설정합니다.

    • 실행 시간에서 Python 3.7을 선택합니다.

    • 권한의 경우, 기본 설정을 유지합니다. 이를 통해 기본 설정으로 Lambda 권한을 부여하는 실행 역할을 생성합니다. 이 역할은 AWS IoT Greengrass에서 사용되지 않습니다.

    함수 생성을 선택합니다.

    
                            "함수 이름" 필드가 "Greengrass_HelloWorld"로 설정되고 "런타임" 필드가 "Python 3.7"로 설정된 "기본 정보" 섹션.
  8. Lambda 함수 배포 패키지를 업로드합니다.

    1. Code탭의소스 코드를 선택하고다음에서 업로드. 드롭다운에서.zip 파일.

      
                .zip 파일과 드롭 다운에서 업로드가 강조 표시됩니다.
    2. 선택업로드를 선택한 다음 를 선택합니다.hello_world_python_lambda.zip배포 패키지를 선택합니다. 그런 다음 저장을 선택합니다.

    3. Code탭에서 함수에 대한런타임 설정를 선택하고Edit를 업로드하고 다음 값을 입력합니다.

      • 실행 시간에서 Python 3.7을 선택합니다.

      • 핸들러greengrassHelloWorld.function_handler를 입력합니다.

      
                                    “런타임” 필드가 “Python 3.7"로 설정되고 “핸들러” 필드가 “GreengrasslloWorld. Function _Handler”로 설정된 “Runtime” 섹션.
    4. 저장을 선택합니다.

      참고

      테스트의 도구 모음에서AWS Lambda콘솔이 이 함수에서 작동하지 않습니다. 이AWS IoT Greengrass코어 SDK에는 Greengrass Lambda 함수를 독립적으로 실행하는 데 필요한 모듈이 포함되어 있지 않습니다.AWS Lambda콘솔. 이러한 모듈(예: greengrass_common)은 Greengrass 코어에 배포된 후 함수에 제공됩니다.

  9. Lambda 함수를 게시합니다.

    1. (사용)작업페이지 상단에서새 버전 발행.

      
                                    새 버전 게시가 강조 표시된 작업 메뉴 스크린샷
    2. 버전 설명First version을 입력한 후 게시를 선택합니다.

      
                                    버전 설명 필드가 First version(처음 버전)으로 설정되어 있고 게시 버튼이 강조 표시된 스크린샷
  10. 생성별칭Lambda 함수에 대해version:

    참고

    Greengrass 그룹은 별칭 (권장) 또는 버전을 기준으로 Lambda 함수를 참조할 수 있습니다. 별칭을 사용하면 함수 코드를 업데이트할 때 구독 테이블이나 그룹 정의를 변경할 필요가 없으므로 코드 업데이트를 더 쉽게 관리할 수 있습니다. 그 대신 새 함수 버전에 대한 별칭을 가리킵니다.

    1. (사용)작업페이지 상단에서별칭 만들기.

      
                                    작업 메뉴가 별칭 생성으로 설정된 스크린샷
    2. 별칭 이름 지정GG_HelloWorld에서 버전을1(사용자가 방금 게시한 버전에 해당) 를 선택한 다음Save.

      참고

      AWS IoT Greengrass는 Lambda 별칭을 지원하지 않습니다.$LATE버전입니다.

       

      
                                    이름 필드가 GG_HelloWorld로, 버전 필드가 1로 설정되어 있는 새 별칭을 만듭니다 스크린샷