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 함수와 커넥터를 사용하여 로컬 리소스에 액세스

이 기능은 에서 사용할 수 있습니다.AWS IoT Greengrass코어 v1.3 이상.

AWS IoT Greengrass를 사용하는 개발자는 클라우드에서 AWS Lambda 함수를 작성하고 커넥터를 구성하여 로컬에서 실행하기 위해 코어 디바이스에 배포할 수 있습니다. Linux를 실행하는 Greengrass 코어에서 이러한 로컬로 배포된 Lambda 함수와 커넥터는 Greengrass 코어 디바이스에 실제로 있는 로컬 리소스에 액세스할 수 있습니다. 예를 들어 Modbus 또는 CANbus를 통해 연결된 디바이스와 통신하기 위해 Lambda 함수가 코어 디바이스의 직렬 포트에 액세스하도록 할 수 있습니다. 로컬 리소스에 대한 보안 액세스를 구성하려면 물리적 하드웨어의 보안과 Greengrass 코더 디바이스 OS를 보증해야 합니다.

로컬 리소스에 대한 액세스를 시작하려면 다음 자습서를 참조하십시오.

지원되는 리소스 유형

볼륨 리소스와 디바이스 리소스라는 두 가지 로컬 리소스 유형에 액세스할 수 있습니다.

볼륨 리소스

루트 파일 시스템의 파일 또는 디렉터리입니다(/sys, /dev 또는 /var에 있는 파일 또는 디렉터리 제외). 다음이 포함됩니다.

  • Greengrass Lambda 함수에서 정보를 읽거나 쓰는 데 사용되는 폴더 또는 파일 (예:/usr/lib/python2.x/site-packages/local).

  • 호스트의 /proc 파일 시스템에 있는 폴더 또는 파일(예: /proc/net 또는 /proc/stat). v1.6 이상에서 지원됩니다. 추가적인 필수 사항은 /proc 디렉터리에 있는 볼륨 리소스 단원을 참조하십시오.

작은 정보

/var, /var/run/var/lib 디렉터리를 볼륨 리소스로 구성하려면 먼저 디렉터리를 다른 폴더에 탑재한 다음 해당 폴더를 볼륨 리소스로 구성하십시오.

볼륨 리소스를 구성할 때 소스 경로와 대상 경로를 지정합니다. 소스 경로는 호스트에 있는 리소스의 절대 경로입니다. 대상 경로는 Lambda 네임스페이스 환경 내부에 있는 리소스의 절대 경로입니다. 이는 Greengrass Lambda 함수 또는 커넥터가 실행되는 컨테이너입니다. 대상 경로의 모든 변경 사항은 호스트 파일 시스템의 소스 경로에 반영됩니다.

참고

대상 경로의 파일은 Lambda 네임스페이스에만 표시됩니다. 일반적인 Linux 네임스페이스에서는 이를 볼 수 없습니다.

디바이스 리소스

/dev에 있는 파일. /dev에 있는 문자 디바이스 또는 블록 디바이스만 디바이스 리소스로 허용됩니다. 다음이 포함됩니다.

  • 직렬 포트를 통해 연결된 디바이스와 통신하는 데 사용되는 직렬 포트(예: /dev/ttyS0, /dev/ttyS1).

  • USB 주변 장치를 연결하는 데 사용되는 USB(예: /dev/ttyUSB0 또는 /dev/bus/usb).

  • GPIO를 통해 센서 및 액추에이터에 사용되는 GPIO(예: /dev/gpiomem).

  • 온보드 GPU를 사용하여 기계 학습을 가속화하는 데 사용되는 GPU(예: /dev/nvidia0).

  • 이미지 및 동영상을 캡처하는 데 사용되는 카메라(예: /dev/video0).

참고

/dev/shm은 예외로, 볼륨 리소스로만 구성할 수 있습니다. /dev/shm에 있는 리소스에는 rw 권한을 부여해야 합니다.

AWS IoT Greengrass은(는) 또한 기계 학습 추론을 수행하는 데 사용되는 리소스 유형을 지원합니다. 자세한 내용은 기계 학습 추론 수행 단원을 참조하세요.

Requirements

로컬 리소스에 대한 보안 액세스 구성에는 다음 요구 사항이 적용됩니다.

  • 를 사용해야 합니다.AWS IoT Greengrass코어 소프트웨어 v1.3 이상. 호스트의 /proc 디렉터리에서 리소스를 생성하려면 v1.6 이상을 사용해야 합니다.

  • 로컬 리소스(필요한 드라이버 및 라이브러리 포함)는 Greengrass 코어 디바이스에 올바르게 설치되어 있어야 하며, 사용 중에 지속적으로 사용할 수 있어야 합니다.

  • 원하는 리소스 작업과 리소스에 대한 액세스에는 루트 권한이 필요하지 않습니다.

  • read 또는 read and write 권한만 사용할 수 있습니다. Lambda 함수는 리소스에 대해 특권 작업을 수행할 수 없습니다.

  • Greengrass 코어 디바이스의 운영 체제에서 로컬 리소스의 전체 경로를 제공해야 합니다.

  • 리소스 이름이나 ID는 최대 128자이며, 패턴 [a-zA-Z0-9:_-]+을 사용해야 합니다.

/proc 디렉터리에 있는 볼륨 리소스

호스트의 /proc 디렉터리에 있는 볼륨 리소스에 다음 고려 사항이 적용됩니다.

  • 를 사용해야 합니다.AWS IoT Greengrass코어 소프트웨어 v1.6 이상.

  • Lambda 함수에 대해 읽기 전용 액세스를 허용할 수 있지만 읽기-쓰기 액세스는 허용할 수 없습니다. 이러한 액세스 수준은 AWS IoT Greengrass에서 관리됩니다.

  • 파일 시스템에서 읽기 액세스를 사용할 수 있도록 OS 그룹에 권한을 부여해야 할 수도 있습니다. 예를 들어 소스 디렉터리나 파일이 660 파일 권한을 가지고 있어서 그룹의 소유자나 사용자만 읽기 및 쓰기 액세스 권한을 갖는다고 가정해 봅시다. 이 경우에는 OS 그룹 소유자의 권한을 리소스에 추가해야 합니다. 자세한 내용은 그룹 소유자 파일 액세스 권한 단원을 참조하세요.

  • 호스트 환경과 Lambda 네임스페이스에는 모두 /proc 디렉터리가 포함되어 있으므로 대상 경로를 지정할 때 이름 충돌이 발생하지 않도록 해야 합니다. 예를 들어 /proc이 소스 경로인 경우에는 /host-proc을 대상 경로(또는 "/proc" 이외의 모든 경로 이름)로 지정할 수 있습니다.

그룹 소유자 파일 액세스 권한

한AWS IoT GreengrassLambda 함수 프로세스는 일반적으로ggc_userggc_group. 하지만 다음과 같이 로컬 리소스 정의에서 추가 파일 액세스 권한을 Lambda 함수 프로세스에 제공할 수 있습니다.

  • 리소스를 소유한 Linux 그룹의 권한을 추가하려면 GroupOwnerSetting#AutoAddGroupOwner 파라미터 또는 [Automatically add OS group permissions of the Linux group that owns the resource] 콘솔 옵션을 사용합니다.

  • 다른 Linux 그룹의 권한을 추가하려면 GroupOwnerSetting#GroupOwner 파라미터 또는 [Specify another OS group to add permission] 콘솔 옵션을 사용합니다. GroupOwnerSetting#AutoAddGroupOwner가 true이면 GroupOwner 값이 무시됩니다.

한AWS IoT GreengrassLambda 함수 프로세스는 모든 파일 시스템 권한을 상속합니다.ggc_user,ggc_group및 Linux 그룹 (추가한 경우) 이 포함됩니다. 리소스에 액세스하려면 Lambda 함수가 Lambda 함수 프로세스에 리소스에 대한 필수 권한이 있어야 합니다. chmod(1) 명령을 사용해 필요한 경우 리소스의 권한을 변경할 수 있습니다.

다음 사항도 참조하세요.