

지원 종료 공지: 2026년 10월 7일에는에 대한 지원을 중단할 AWS 예정입니다 AWS IoT Greengrass Version 1. 2026년 10월 7일 이후에는 더 이상 AWS IoT Greengrass V1 리소스에 액세스할 수 없습니다. 자세한 내용은 [에서 마이그레이션 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)을 참조하세요.

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

# 를 사용하여 로컬 리소스 액세스를 구성하는 방법 AWS Management Console
<a name="lra-console"></a>

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

호스트 Greengrass 코어 장치에서 로컬 리소스에 안전하게 액세스하도록 Lambda 함수를 구성할 수 있습니다. *로컬 리소스*란 물리적으로 호스트에 있는 버스와 주변 정치 또는 호스트 OS의 파일 시스템 볼륨을 가리킵니다. 요구 사항과 제한 조건을 비롯한 자세한 내용은 [Lambda 함수와 커넥터를 사용하여 로컬 리소스에 액세스](access-local-resources.md) 섹션을 참조하십시오.

이 자습서에서는 AWS Management Console 를 사용하여 AWS IoT Greengrass 코어 디바이스에 있는 로컬 리소스에 대한 액세스를 구성하는 방법을 설명합니다. 자습서에는 다음과 같은 상위 수준 단계가 포함됩니다.

1. [Lambda 함수 배포 패키지 생성](#lra-console-create-package)

1. [Lambda 함수 생성 및 게시](#lra-console-create-function)

1. [그룹에 Lambda 함수를 추가합니다.](#lra-console-add-function)

1. [그룹에 로컬 리소스 추가](#lra-console-create-resource)

1. [그룹에 구독 추가](#lra-console-add-subscription)

1. [그룹 배포](#lra-console-deploy-group)

를 사용하는 자습서는 단원을 AWS Command Line Interface참조하십시오[AWS 명령줄 인터페이스를 사용하여 로컬 리소스 액세스를 구성하는 방법](lra-cli.md).

## 사전 조건
<a name="lra-console-prerequisites"></a>

이 자습서를 완료하려면 다음이 필요합니다.
+ Greengrass 그룹 및 Greengrass 코어(v1.3 이상). Greengrass 그룹 또는 코어를 생성하는 방법에 대해 알아보려면 [시작하기 AWS IoT Greengrass](gg-gs.md) 섹션을 참조하십시오.
+ Greengrass 코어 장치의 다음 디렉터리:
  + /src/LRAtest
  + /dest/LRAtest

  이러한 디렉터리의 소유자 그룹은 디렉터리에 대한 읽기 및 쓰기 권한을 보유해야 합니다. 다음 명령을 사용하여 액세스를 부여할 수 있습니다.

  ```
  sudo chmod 0775 /src/LRAtest
  ```

## 1단계: Lambda 함수 배포 패키지 생성
<a name="lra-console-create-package"></a>

이 단계에서는 함수의 코드와 종속성이 포함된 ZIP 파일인 Lambda 함수 배포 패키지를 생성합니다. 또한 패키지에 종속성으로 포함할 AWS IoT Greengrass 코어 SDK를 다운로드합니다.

1. 컴퓨터에서 다음 Python 스크립트를 `lraTest.py`라는 로컬 파일에 복사합니다. 이는 Lambda 함수에 대한 앱 로직입니다.

   ```
   # Demonstrates a simple use case of local resource access.
   # This Lambda function writes a file test to a volume mounted inside
   # the Lambda environment under destLRAtest. Then it reads the file and 
   # publishes the content to the AWS IoT LRAtest topic. 
   
   import sys
   import greengrasssdk
   import platform
   import os
   import logging
   
   # Setup logging to stdout
   logger = logging.getLogger(__name__)
   logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
   
   # Create a Greengrass Core SDK client.
   client = greengrasssdk.client('iot-data')
   volumePath = '/dest/LRAtest'
   
   def function_handler(event, context):
       try:
           client.publish(topic='LRA/test', payload='Sent from AWS IoT Greengrass Core.')
           volumeInfo = os.stat(volumePath)
           client.publish(topic='LRA/test', payload=str(volumeInfo))
           with open(volumePath + '/test', 'a') as output:
               output.write('Successfully write to a file.')
           with open(volumePath + '/test', 'r') as myfile:
               data = myfile.read()
           client.publish(topic='LRA/test', payload=data)
       except Exception as e:
           logger.error('Failed to publish message: ' + repr(e))
       return
   ```

1. <a name="download-ggc-sdk"></a> [AWS IoT Greengrass 코어 SDK](what-is-gg.md#gg-core-sdk-download) 다운로드 페이지에서 Python용 AWS IoT Greengrass 코어 SDK를 컴퓨터에 다운로드합니다.

1. <a name="unzip-ggc-sdk"></a>다운로드한 패키지의 압축을 풀어 SDK를 가져옵니다. SDK는 `greengrasssdk` 폴더입니다.

1. 다음 항목을 `lraTestLambda.zip`라는 파일로 압축합니다.
   + `lraTest.py`. 앱 로직.
   + `greengrasssdk`. 모든 Python Lambda 함수에 대한 필수 라이브러리입니다.

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

## 2단계: Lambda 함수 생성 및 게시
<a name="lra-console-create-function"></a>

이 단계에서는 AWS Lambda 콘솔을 사용하여 Lambda 함수를 생성하고 배포 패키지를 사용하도록 구성합니다. 그런 다음 함수 버전을 게시하고 별칭을 생성합니다.

먼저, Lambda 함수를 생성합니다.

1. 에서 AWS Management Console**서비스를** 선택하고 콘솔을 AWS Lambda 엽니다.

1. **함수**를 선택합니다.

1. <a name="lambda-console-create-function"></a>**함수 생성**을 선택한 다음 **새로 작성**을 선택합니다.

1. **기본 정보** 섹션에서 다음 값을 지정합니다.

   1. [**함수 이름**]에 **TestLRA**을 입력합니다.

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

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

1. **함수 생성**을 선택합니다.  
![\[함수 생성이 강조 표시된 함수 생성 페이지\]](http://docs.aws.amazon.com/ko_kr/greengrass/v1/developerguide/images/lra-console/create-function.png)

    

1. Lambda 함수 배포 패키지를 업로드하고 핸들러를 등록합니다.

   1. <a name="lambda-console-upload"></a>**코드** 탭의 **코드 소스**에서 **다음에서 업로드**를 선택합니다. 드롭다운에서 **.zip 파일**을 선택합니다.  
![\[.zip 파일이 강조 표시된 드롭다운의 업로드.\]](http://docs.aws.amazon.com/ko_kr/greengrass/v1/developerguide/images/lra-console/upload-deployment-package.png)

   1. **업로드**를 선택한 다음 `lraTestLambda.zip` 배포 패키지를 선택합니다. 그런 다음 **저장**을 선택합니다.

   1. <a name="lambda-console-runtime-settings-para"></a>함수의 **코드** 탭에 있는 **런타임 설정**에서 **편집**을 선택하고 다음 값을 입력합니다.
      + **실행 시간**에서 **Python 3.7**을 선택합니다.
      + **핸들러**에 대해 **lraTest.function\$1handler**를 입력합니다.

   1. <a name="lambda-console-save-config"></a>**저장**을 선택합니다.
**참고**  
 AWS Lambda 콘솔의 **테스트** 버튼은이 함수에서 작동하지 않습니다. AWS IoT Greengrass 코어 SDK에는 AWS Lambda 콘솔에서 Greengrass Lambda 함수를 독립적으로 실행하는 데 필요한 모듈이 포함되어 있지 않습니다. 이러한 모듈(예: `greengrass_common`)은 Greengrass 코어에 배포된 후 함수에 제공됩니다.

   그런 다음 Lambda 함수의 첫 번째 버전을 게시합니다. 그런 다음 [버전의 별칭](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html)을 생성합니다.

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

1. **작업**에서 **새 버전 게시**를 선택합니다.

1. **버전 설명**에 **First version**을 입력한 후 **게시**를 선택합니다.

1. [**TestLRA: 1**] 구성 페이지의 [**Actions**]에서 [**Create alias**]를 선택합니다.

1. **별칭 작성** 페이지에서 **이름**에 **test**를 입력하십시오. **버전**에서 **1**을 선택합니다.
**참고**  
AWS IoT Greengrass 는 **\$1LATEST** 버전에 대해 Lambda 별칭을 지원하지 않습니다.

1. **생성(Create)**을 선택합니다.  
![\[Create가 강조 표시된 Create a new alias 페이지\]](http://docs.aws.amazon.com/ko_kr/greengrass/v1/developerguide/images/lra-console/create-alias.png)

   이제 Greengrass 그룹에 Lambda 함수를 추가할 수 있습니다.

## 3단계: Greengrass 그룹에 Lambda 함수 추가
<a name="lra-console-add-function"></a>

이 단계에서 그룹에 함수를 추가한 다음 함수의 수명 주기를 구성합니다.

먼저 Greengrass 그룹에 Lambda 함수를 추가합니다.

1.  AWS IoT 콘솔 탐색 창의 **관리**에서 **Greengrass 디바이스**를 확장한 다음 **그룹(V1)을** 선택합니다.

1. Lambda 함수를 추가하려는 Greengrass 그룹을 선택합니다.

1. 그룹 구성 페이지에서 **Lambda 함수** 탭을 선택합니다.

1. **내 Lambda 함수** 섹션에서 **추가**를 선택합니다.

1. **Lambda 함수 추가** 페이지에서 **Lambda 함수**를 선택합니다. **TestLRA**을 선택합니다.

1. **Lambda 함수 버전**을 선택합니다.

1. **Lambda 함수 구성** 섹션에서 **시스템 사용자 및 그룹**과 **Lambda 함수 컨테이너화**를 선택합니다.

    

   그런 다음 Lambda 함수의 수명 주기를 구성합니다.

1. **Timeout**에서, **30 seconds**를 선택합니다.
**중요**  
(이 절차에서 설명된 바와 같이) 로컬 리소스를 사용하는 Lambda 함수는 Greengrass 컨테이너에서 실행해야 합니다. 그렇지 않으면 함수 배포를 시도하는 경우 배포가 실패합니다. 자세한 내용은 [컨테이너화](lambda-group-config.md#lambda-function-containerization)를 참조하십시오.

1. 페이지 하단에서 **Lambda 함수 추가**를 선택합니다.

## 4단계: Greengrass 그룹에 로컬 리소스 추가
<a name="lra-console-create-resource"></a>

이 단계에서는 로컬 볼륨 리소스를 Greengrass 그룹에 추가하고, 함수에 리소스에 대한 읽기 및 쓰기 액세스를 부여합니다. 로컬 리소스의 범위는 그룹 레벨입니다. 리소스에 액세스하기 위해 그룹에서 모든 Lambda 함수에 대한 권한을 부여할 수 있습니다.

1. 그룹 구성 페이지에서 **리소스**를 선택합니다.

1. **로컬 리소스** 섹션에서 **추가**를 선택합니다.

1. **로컬 리소스 추가** 페이지에서 다음 값을 사용합니다.

   1. **리소스 이름**에 **testDirectory**을 입력합니다.

   1. [**리소스 유형(Resource type)**]에서 [**볼륨(Volume)**]을 선택합니다.

   1. **장치 경로**에 **/src/LRAtest**를 입력합니다. 이 경로가 호스트 OS에 존재해야 합니다.

      로컬 장치 경로는 코어 장치의 파일 시스템에 있는 리소스의 로컬 절대 경로입니다. 이 위치는 안에서 함수가 실행되는 [컨테이너](lambda-group-config.md#lambda-function-containerization)의 외부입니다. 경로는 `/sys`로 시작할 수 없습니다.

   1. [**Destination path**]에 [**/dest/LRAtest**]을 입력합니다. 이 경로가 호스트 OS에 존재해야 합니다.

      대상 경로는 Lambda 네임스페이스에서 리소스의 절대 경로입니다. 이 위치는 안에서 함수가 실행되는 컨테이너의 내부입니다.

   1. **시스템 그룹 소유자 및 파일 액세스 권한**에서 **리소스를 소유한 시스템 그룹의 파일 시스템 권한 자동 추가**를 선택합니다.

      **시스템 그룹 소유자 및 파일 액세스 권한** 옵션을 사용하면 Lambda 프로세스에 추가 파일 액세스 권한을 부여할 수 있습니다. 자세한 내용은 [그룹 소유자 파일 액세스 권한](access-local-resources.md#lra-group-owner) 단원을 참조하십시오.

1. **리소스 추가**를 선택합니다. [**Resources**] 페이지에 새 testDirectory 리소스가 표시됩니다.

## 5단계: Greengrass 그룹에 구독 추가
<a name="lra-console-add-subscription"></a>

이 단계에서는 Greengrass 그룹에 구독을 추가합니다. 이러한 구독은 Lambda 함수와 간의 양방향 통신을 가능하게 합니다 AWS IoT.

먼저 AWS IoT에 메시지를 보내도록 Lambda 함수에 대한 구독을 생성합니다.

1. 그룹 구성 페이지에서 **구독** 탭을 선택합니다.

1. **추가**를 선택합니다.

1. **구독 생성** 페이지에서 다음과 같이 원본과 대상을 구성합니다.

   1. **소스 유형**에서 **Lambda 함수**를 선택한 다음 **TestLRA**를 선택합니다.

   1. **대상 유형**에서 **서비스**를 선택한 다음 **IoT 클라우드**를 선택합니다.

   1. **주제 필터**에 **LRA/test**를 입력한 다음 **구독 생성**을 선택합니다.

1. [**Subscriptions**] 페이지에 새 구독이 표시됩니다.

    

   그런 다음 함수를 호출하는 구독을 구성합니다 AWS IoT.

1. **구독** 페이지에서 **구독 추가**를 선택합니다.

1. [**Select your source and target**] 페이지에서 다음과 같이 원본과 대상을 구성합니다.

   1. **소스 유형**에서 **Lambda 함수**를 선택한 다음 **IoT 클라우드**를 선택합니다.

   1. **대상 유형**에서 **서비스**를 선택한 다음 **TestLRA**를 선택합니다.

   1. **다음**을 선택합니다.

1. **데이터를 주제에 대해 필터링** 페이지의 **주제 필터** 필드에 **invoke/LRAFunction**을 입력한 후 **다음**을 선택합니다.

1. **마침**을 클릭합니다. [**Subscriptions**] 페이지에 2개의 구독이 모두 표시됩니다.

## 6단계: AWS IoT Greengrass 그룹 배포
<a name="lra-console-deploy-group"></a>

이 단계에서는 그룹 정의의 현재 버전을 배포합니다.

1.  AWS IoT Greengrass 코어가 실행 중인지 확인합니다. 필요한 경우 Raspberry Pi 터미널에서 다음 명령을 실행합니다.

   1. 대몬(daemon)이 실행 중인지 확인하려면:

      ```
      ps aux | grep -E 'greengrass.*daemon'
      ```

      출력에 `root`에 대한 `/greengrass/ggc/packages/1.11.6/bin/daemon` 입력이 포함되어 있는 경우에는 대몬(daemon)이 실행 중인 것입니다.
**참고**  
경로의 버전은 AWS IoT Greengrass 코어 디바이스에 설치된 코어 소프트웨어 버전에 따라 다릅니다.

   1. 대몬(daemon)을 시작하려면:

      ```
      cd /greengrass/ggc/core/
      sudo ./greengrassd start
      ```

1. 그룹 구성 페이지에서 **배포**를 선택합니다.
**참고**  
컨테이너화 없이 Lambda 함수를 실행하고 연결된 로컬 리소스에 액세스하려고 하면 배포에 실패합니다.

1. 메시지가 표시되면 **Lambda 함수** 탭의 **시스템 Lambda 함수**에서 **IP 감지기**를 선택한 다음 **편집**, **자동 감지**를 선택합니다.

   이렇게 하면 장치가 IP 주소, DNS, 포트 번호 등 코어의 연결 정보를 자동으로 획득할 수 있습니다. 자동 감지가 권장되지만 수동으로 지정된 엔드포인트 AWS IoT Greengrass 도 지원합니다. 그룹이 처음 배포될 때만 검색 방법 메시지가 표시됩니다.
**참고**  
메시지가 표시되면 [Greengrass 서비스 역할을](service-role.md) 생성하고 이를 현재의와 연결할 AWS 계정 수 있는 권한을 부여합니다 AWS 리전. 이 역할을 통해 AWS IoT Greengrass 는 AWS 서비스의 리소스에 액세스할 수 있습니다.

   **배포** 페이지에 배포 타임스탬프, 버전 ID, 상태가 표시됩니다. 완료되면 배포 상태는 **완료됨**이 됩니다.

   문제 해결에 대한 도움말은 [문제 해결 AWS IoT Greengrass](gg-troubleshooting.md) 섹션을 참조하세요.

## 로컬 리소스 액세스 테스트
<a name="lra-console-test-results"></a>

이제 로컬 리소스 액세스가 올바르게 구성되었는지 확인할 수 있습니다. 테스트하려면 `LRA/test` 주제를 구독하고 `invoke/LRAFunction` 주제에 게시합니다. Lambda 함수가 예상 페이로드를에 전송하면 테스트가 성공한 것입니다 AWS IoT.

1.  AWS IoT 콘솔 탐색 메뉴의 **테스트**에서 **MQTT 테스트 클라이언트**를 선택합니다.

1. **주제 구독**에서 **주제 필터**에 대해 **LRA/test**를 입력합니다.

1. **추가 정보**에서 **MQTT 페이로드 표시**의 경우 **페이로드를 문자열로 표시**를 선택합니다.

1. **구독**을 선택합니다. Lambda 함수가 LRA/test 주제에 게시합니다.  
![\[주제 구독이 강조 표시된 구독 페이지\]](http://docs.aws.amazon.com/ko_kr/greengrass/v1/developerguide/images/lra-console/test-subscribe.png)

1. **주제에 게시**에서 **주제 이름**에 **invoke/LRAFunction**을 입력한 다음 **게시**를 선택하여 Lambda 함수를 간접 호출합니다. 페이지에 함수의 3개 메시지 페이로드가 표시되면 테스트가 성공한 것입니다.  
![\[invoke/LRAFunction topic과 주제 게시가 강조 표시된 구독 페이지 및 메시지 데이터가 포함된 테스트 결과\]](http://docs.aws.amazon.com/ko_kr/greengrass/v1/developerguide/images/lra-console/test-publish.png)

Lambda 함수로 만든 테스트 파일은 Greengrass 코어 장치의 `/src/LRAtest` 디렉터리에 있습니다. Lambda 함수는 `/dest/LRAtest` 디렉터리의 파일에 쓰지만 해당 파일은 Lambda 네임스페이스에서만 볼 수 있습니다. 일반적인 Linux 네임스페이스에서는 이를 볼 수 없습니다. 대상 경로의 모든 변경 사항은 파일 시스템의 소스 경로에 반영됩니다.

문제 해결에 대한 도움말은 [문제 해결 AWS IoT Greengrass](gg-troubleshooting.md) 섹션을 참조하세요.