AWS IoT Greengrass 코어 소프트웨어 설치 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 는 2023년 6월 30일에 수명 연장 단계에 들어갔습니다. AWS IoT Greengrass V1 관리형 정책에 대한 자세한 정보는 섹션을 참조하세요. 이 날짜 이후에는 기능, 개선 사항, 버그 수정 또는 보안 패치를 제공하는 업데이트를 릴리스하지 AWS IoT Greengrass V1 않습니다. 에서 실행되는 디바이스는 중단 AWS IoT Greengrass V1 되지 않고 계속 작동하며 클라우드에 연결됩니다. 로 마이그레이션 AWS IoT Greengrass Version 2하는 것이 좋습니다. 이 마이그레이션하면 추가 플랫폼 에 대한 중요한 새 기능과 지원이 추가됩니다. https://docs.aws.amazon.com/greengrass/v2/developerguide/operating-system-feature-support-matrix.html

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

AWS IoT Greengrass 코어 소프트웨어 설치

AWS IoT Greengrass 코어 소프트웨어는 AWS 기능을 AWS IoT Greengrass 코어 디바이스로 확장하므로, 로컬 디바이스가 생성하는 데이터에 대해 로컬 작업을 수행할 수 있습니다.

AWS IoT Greengrass에서는 다음 몇 가지 방법으로 AWS IoT Greengrass 코어 소프트웨어를 설치할 수 있습니다.

또한 AWS IoT Greengrass는 AWS IoT Greengrass 코어 소프트웨어를 실행하는 컨테이너화된 환경을 제공합니다.

 

AWS IoT Greengrass 코어 소프트웨어 패키지 다운로드 및 추출

플랫폼에 맞는 AWS IoT Greengrass 코어 소프트웨어를 선택하여 tar.gz 파일로 다운로드하고 디바이스에서 압축을 풀 수 있습니다. 최신 버전의 소프트웨어를 다운로드할 수 있습니다. 자세한 설명은 AWS IoT Greengrass 코어 소프트웨어 섹션을 참조하세요.

 

Greengrass 디바이스 설정 스크립트 실행

Greengrass 디바이스 설정을 실행하여 디바이스를 구성하고 최신 AWS IoT Greengrass 코어 소프트웨어 버전을 설치하고 몇 분 안에 Hello World Lambda 함수를 배포할 수 있습니다. 자세한 설명은 빠른 시작: Greengrass 장치 설정 섹션을 참조하세요.

 

APT 리포지토리에서 AWS IoT Greengrass 코어 소프트웨어 설치

중요

2022년 2월 11일부터 더 이상 APT 저장소에서 AWS IoT Greengrass 코어 소프트웨어를 설치하거나 업데이트할 수 없습니다. AWS IoT Greengrass 리포지토리를 추가한 디바이스에서는 소스 목록에서 리포지토리를 제거해야 합니다. APT 리포지토리에서 소프트웨어를 실행하는 기기는 계속 정상적으로 작동합니다. tar 파일을 사용하여 AWS IoT Greengrass 코어 소프트웨어를 업데이트하는 것이 좋습니다.

AWS IoT Greengrass에서 제공하는 APT 리포지토리에는 다음 패키지가 포함되어 있습니다.

  • aws-iot-greengrass-core은(는) AWS IoT Greengrass 코어 소프트웨어를 설치합니다.

  • aws-iot-greengrass-keyring은(는) AWS IoT Greengrass 패키지 리포지토리에 서명하는 데 사용되는 GnuPG(GPG) 키를 설치합니다.

    이 소프트웨어를 다운로드하면 Greengrass 코어 소프트웨어 라이선스 계약에 동의하는 것입니다.

systemd 스크립트를 사용하여 Greengrass 대몬(daemon) 수명 주기 관리

aws-iot-greengrass-core 패키지는 AWS IoT Greengrass 코어 소프트웨어(대몬(daemon)) 수명 주기를 관리하는 데 사용할 수 있는 systemd 스크립트도 설치합니다.

  • 부팅 중에 Greengrass 대몬(daemon):

    systemctl enable greengrass.service
  • Greengrass 대몬(daemon)을 시작하려면:

    systemctl start greengrass.service
  • Greengrass 대몬(daemon)을 중지하려면:

    systemctl stop greengrass.service
  • Greengrass 데몬의 상태를 확인하려면:

    systemctl status greengrass.service

APT 리포지토리를 사용하여 AWS IoT Greengrass 코어 소프트웨어를 제거합니다.

AWS IoT Greengrass 코어 소프트웨어를 제거할 때 디바이스 인증서, 그룹 정보, 로그 파일 등 AWS IoT Greengrass 코어 소프트웨어의 구성 정보를 보존할지 제거할지를 선택할 수 있습니다.

AWS IoT Greengrass 코어 소프트웨어를 제거하고 구성 정보를 보존하려면
  • 다음 명령을 실행하여 AWS IoT Greengrass 코어 소프트웨어 패키지를 제거하고 /greengrass 폴더에 구성 정보를 보존합니다.

    sudo apt remove aws-iot-greengrass-core aws-iot-greengrass-keyring
AWS IoT Greengrass 코어 소프트웨어를 제거하고 구성 정보를 제거하려면
  1. 다음 명령을 실행하여 AWS IoT Greengrass 코어 소프트웨어 패키지를 제거하고 /greengrass folder에서 구성 정보를 제거합니다.

    sudo apt purge aws-iot-greengrass-core aws-iot-greengrass-keyring
  2. 소스 목록에서 AWS IoT Greengrass 코어 소프트웨어 리포지토리를 제거합니다. 자세한 설명은 AWS IoT Greengrass 코어 소프트웨어 리포지토리 소스를 제거합니다. 섹션을 참조하세요.

AWS IoT Greengrass 코어 소프트웨어 리포지토리 소스를 제거합니다.

APT 리포지토리에서 AWS IoT Greengrass 코어 소프트웨어를 더 이상 설치하거나 업데이트할 필요가 없는 경우, AWS IoT Greengrass 코어 소프트웨어 리포지토리 소스를 제거할 수 있습니다. 2022년 2월 11일 이후에는 apt update을(를) 실행 시 오류가 발생하지 않도록 소스 목록에서 리포지토리를 제거해야 합니다.

소스 목록에서 APT 리포지토리를 제거하려면
  • 다음 명령을 실행하여 소스 목록에서 AWS IoT Greengrass 코어 소프트웨어 리포지토리를 제거합니다.

    sudo rm /etc/apt/sources.list.d/greengrass.list sudo apt update

Docker 컨테이너에서 AWS IoT Greengrass을(를) 실행합니다.

AWS IoT Greengrass은(는) Docker 컨테이너에서 AWS IoT Greengrass Core 소프트웨어를 쉽게 실행할 수 있도록 Dockerfile과 Docker 이미지를 제공합니다. 자세한 설명은 AWS IoT Greengrass Docker 소프트웨어 섹션을 참조하세요.

참고

Greengrass 코어 디바이스에서 Docker 애플리케이션을 실행할 수도 있습니다. 이렇게 하려면 Greengrass Docker 애플리케이션 배포 커넥터를 사용하십시오

 

스냅에서 AWS IoT Greengrass 실행

AWS IoT Greengrass snap 1.11.x를 사용하면 컨테이너화된 환경에서 필요한 모든 종속성과 함께 편리한 소프트웨어 패키지를 사용하여 제한된 버전의 AWS IoT Greengrass를 실행할 수 있습니다.

2023년 12월 31일에 AWS IoT Greengrass이(가) snapcraft.io에 게시된 AWS IoT Greengrass 코어 소프트웨어 버전 1.11.x Snap에 대한 유지 관리를 종료합니다. 현재 Snap을 실행하는 기기는 추후 공지가 있을 때까지 계속 작동합니다. 그러나 유지 관리 종료 후에는 AWS IoT Greengrass 코어 Snap에 더 이상 보안 패치나 버그 수정이 제공되지 않습니다.

스냅 개념

다음은 AWS IoT Greengrass 스냅 사용 방법을 이해하는 데 도움이 되는 필수 스냅 개념입니다.

Channel

업데이트를 위해 설치 및 추적되는 스냅 버전을 정의하는 스냅 구성 요소입니다. 스냅은 현재 채널의 최신 버전으로 자동 업데이트됩니다.

인터페이스

네트워크 및 사용자 파일과 같은 리소스에 대한 액세스 권한을 부여하는 스냅 구성 요소입니다.

AWS IoT Greengrass 스냅을 실행하려면 다음 인터페이스가 연결되어 있어야 합니다. greengrass-support-no-container이(가) 먼저 연결되어야 하고 연결이 끊어지면 안 됩니다.

- greengrass-support-no-container - hardware-observe - home-for-hooks - hugepages-control - log-observe - mount-observe - network - network-bind - network-control - process-control - system-observe

다른 인터페이스는 선택 사항입니다. Lambda 함수에 특정 리소스에 대한 액세스가 필요한 경우, 적절한 인터페이스에 연결해야 할 수 있습니다.

새로 고침

스냅은 자동으로 업데이트됩니다. snapd 대몬(daemon)은 기본적으로 하루에 네 번 업데이트를 확인하는 스냅 패키지 관리자입니다. 각 업데이트 검사를 새로 고침이라고 합니다. 새로 고침이 발생하면 대몬(daemon)이 중지되고 스냅이 업데이트된 다음 대몬(daemon)이 다시 시작됩니다.

자세한 내용은 Snapcraft 웹 사이트를 참조하세요.

AWS IoT Greengrass 스냅 v1.11.x의 새로운 기능

다음은 AWS IoT Greengrass 스냅 버전 1.11.x의 새로운 기능과 변경된 기능에 대한 설명입니다.

  • 이 버전은 사용자 ID(UID)으로 표시되는 snap_daemon 사용자 및 그룹(GID) 584788만 지원합니다.

  • 이 버전은 컨테이너화되지 않은 Lambda 함수만 지원합니다.

    중요

    컨테이너화되지 않은 Lambda 함수는 동일한 사용자(snap_daemon)를 공유해야 하므로 Lambda 함수는 서로 격리되지 않습니다. 자세한 내용은 그룹별 구성을 사용한 Greengrass Lambda 함수의 실행 제어를 참조하십시오.

  • 이 버전은 C, C++, Java 8, Node.js 12.x, Python 2.7, Python 3.7, Python 3.8 런타임을 지원합니다.

    참고

    중복 Python 런타임을 방지하기 위해 Python 3.7 Lambda 함수는 실제로 Python 3.8 런타임을 실행합니다.

AWS IoT Greengrass 스냅 시작하기

다음 절차는 디바이스에 AWS IoT Greengrass 스냅을 설치하고 구성하는 데 도움이 됩니다.

요구 사항

AWS IoT Greengrass 스냅을 실행하려면 다음을 수행해야 합니다.

  • 지원되는 Linux 배포판(예: Ubuntu, Linux Mint, Debian, Fedora)에서 AWS IoT Greengrass 스냅을 실행합니다.

  • 디바이스에 snapd 대몬(daemon)을 설치합니다. snap 도구가 포함된 snapd 대몬(daemon)은 디바이스의 스냅 환경을 관리합니다.

지원되는 Linux 배포판 목록과 설치 지침은 스냅 설명서snapd 설치를 참조하세요.

AWS IoT Greengrass 스냅 설치 및 구성

다음 자습서에서는 디바이스에 AWS IoT Greengrass 스냅을 설치하고 구성하는 방법을 보여줍니다.

참고
  • 이 자습서에서는 Amazon EC2 인스턴스(x86 t2.micro Ubuntu 20.04)를 사용하지만 Raspberry Pi와 같은 물리적 하드웨어로 AWS IoT Greengrass 스냅을 실행할 수 있습니다.

  • snapd 대몬(daemon)은 Ubuntu에 사전 설치되어 있습니다.

  1. 디바이스 터미널에서 다음 명령을 실행하여 core18 스냅을 설치합니다.

    sudo snap install core18

    core18 스냅은 일반적으로 사용되는 라이브러리가 포함된 런타임 환경을 제공하는 기본 스냅입니다. 이 스냅은 Ubuntu 18.04 LTS에서 만들어졌습니다.

  2. 다음 명령을 실행하여 snapd을(를) 업그레이드합니다.

    sudo snap install --channel=edge snapd; sudo snap refresh --channel=edge snapd
  3. snap list 명령을 실행하여 AWS IoT Greengrass 스냅이 설치되어 있는지 확인합니다.

    다음 예제 응답은 snapd은(는) 설치되었지만 aws-iot-greengrass은(는) 설치되지 않았음을 보여줍니다.

    Name Version Rev Tracking Publisher Notes amazon-ssm-agent 3.0.161.0 2996 latest/stable/… aws✓ classic core 16-2.48 10444 latest/stable canonical✓ core core18 20200929 1932 latest/stable canonical✓ base lxd 4.0.4 18150 4.0/stable/… canonical✓ - snapd 2.48+git548.g929ccfb 10526 latest/edge canonical✓ snapd
  4. 다음 옵션 중 하나를 선택하여 AWS IoT Greengrass 스냅 1.11.x를 설치합니다.

    • 다음 명령을 실행하여 AWS IoT Greengrass 스냅을 설치합니다.

      sudo snap install aws-iot-greengrass

      응답의 예:

      aws-iot-greengrass 1.11.5 from Amazon Web Services (aws) installed
    • 이전 버전에서 v1.11.x로 마이그레이션하거나 사용 가능한 최신 패치 버전으로 업데이트하려면 다음 명령을 실행합니다.

      sudo snap refresh --channel=1.11.x aws-iot-greengrass

    다른 스냅과 마찬가지로 AWS IoT Greengrass 스냅은 채널을 사용하여 마이너 버전을 관리합니다. 스냅은 현재 채널의 사용 가능한 최신 버전으로 자동 업데이트됩니다. 예를 들어, --channel=1.11.x을(를) 지정하면 AWS IoT Greengrass 스냅이 v1.11.5로 업데이트됩니다.

    snap info aws-iot-greengrass 명령을 실행하여 AWS IoT Greengrass에 사용 가능한 채널 목록을 가져올 수 있습니다.

    응답의 예:

    name: aws-iot-greengrass summary: AWS supported software that extends cloud capabilities to local devices. publisher: Amazon Web Services (aws✓) store-url: https://snapcraft.io/aws-iot-greengrass contact: https://repost.aws/tags/TA4ckIed1sR4enZBey29rKTg/aws-io-t-greengrass license: Proprietary description: | AWS IoT Greengrass seamlessly extends AWS onto edge devices so they can act locally on the data they generate, while still using the cloud for management, analytics, and durable storage. AWS IoT Greenrgrass snap v1.11.0 enables you to run a limited version of AWS IoT Greengrass with all necessary dependencies in a containerized environment. The AWS IoT Greengrass snap doesn't support connectors and machine learning (ML) inference. By downloading this software you agree to the Greengrass Core Software License Agreement (https://s3-us-west-2.amazonaws.com/greengrass-release-license/greengrass-license-v1.pdf). For more information, see Run AWS IoT Greengrass in a snap (https://docs.aws.amazon.com/greengrass/latest/developerguide/install-ggc.html#gg-snap-support) in the AWS IoT Greengrass Developer. If you need help, try the AWS IoT Greengrass tag on AWS re:Post (https://repost.aws/tags/TA4ckIed1sR4enZBey29rKTg/aws-io-t-greengrass) or connect with an AWS IQ expert (https://iq.aws.amazon.com/services/aws/greengrass). snap-id: SRDuhPJGj4XPxFNNZQKOTvURAp0wxKnd channels: latest/stable: 1.11.3 2021-06-15 (59) 111MB - latest/candidate: 1.11.3 2021-06-14 (59) 111MB - latest/beta: 1.11.3 2021-06-14 (59) 111MB - latest/edge: 1.11.3 2021-06-14 (59) 111MB - 1.11.x/stable: 1.11.3 2021-06-15 (59) 111MB - 1.11.x/candidate: 1.11.3 2021-06-15 (59) 111MB - 1.11.x/beta: 1.11.3 2021-06-15 (59) 111MB - 1.11.x/edge: 1.11.3 2021-06-15 (59) 111MB -
  5. Lambda 함수에 필요한 특정 리소스에 액세스하기 위해 추가 인터페이스에 연결할 수 있습니다.

    다음 명령을 실행하여 AWS IoT Greengrass 스냅이 지원되는 인터페이스 목록을 파악합니다.

    snap connections aws-iot-greengrass

    응답의 예:

    Interface Plug Slot Notes camera aws-iot-greengrass:camera - - dvb aws-iot-greengrass:dvb - - gpio aws-iot-greengrass:gpio - - gpio-memory-control aws-iot-greengrass:gpio-memory-control - - greengrass-support aws-iot-greengrass:greengrass-support-no-container :greengrass-support - hardware-observe aws-iot-greengrass:hardware-observe :hardware-observe manual hardware-random-control aws-iot-greengrass:hardware-random-control - - home aws-iot-greengrass:home-for-greengrassd - - home aws-iot-greengrass:home-for-hooks :home manual hugepages-control aws-iot-greengrass:hugepages-control :hugepages-control manual i2c aws-iot-greengrass:i2c - - iio aws-iot-greengrass:iio - - joystick aws-iot-greengrass:joystick - - log-observe aws-iot-greengrass:log-observe :log-observe manual mount-observe aws-iot-greengrass:mount-observe :mount-observe manual network aws-iot-greengrass:network :network - network-bind aws-iot-greengrass:network-bind :network-bind - network-control aws-iot-greengrass:network-control :network-control - opengl aws-iot-greengrass:opengl :opengl - optical-drive aws-iot-greengrass:optical-drive :optical-drive - process-control aws-iot-greengrass:process-control :process-control - raw-usb aws-iot-greengrass:raw-usb - - removable-media aws-iot-greengrass:removable-media - - serial-port aws-iot-greengrass:serial-port - - spi aws-iot-greengrass:spi - - system-observe aws-iot-greengrass:system-observe :system-observe -

    슬롯 열에 하이픈(-)이 보이면 해당 인터페이스가 연결되지 않은 것입니다.

  6. AWS IoT Greengrass 코어 소프트웨어 설치를 따라 AWS IoT 사물, Greengrass 그룹, AWS IoT을(를) 통해 보안 통신을 가능하게 하는 보안 리소스, AWS IoT Greengrass 코어 소프트웨어 구성 파일을 생성합니다. 구성 파일 config.json에는 인증서 파일 위치 및 AWS IoT 디바이스 데이터 엔드포인트와 같은 Greengrass 코어와 관련된 구성이 포함되어 있습니다.

    참고

    파일을 다른 디바이스에 다운로드한 경우, 이 단계에 따라 파일을 AWS IoT Greengrass 코어 디바이스로 전송합니다.

  7. AWS IoT Greengrass 스냅을 위해서는 다음과 같이 config.json 파일을 업데이트해야 합니다.

    • certificateId의 각 인스턴스를 인증서 및 키 파일 이름의 인증서 ID로 교체합니다.

    • Amazon 루트 CA 1과 다른 아마존 루트 CA 인증서를 다운로드한 경우, AmazonRootca1.pem의 각 인스턴스를 Amazon 루트 CA 파일의 이름으로 교체하십시오.

    { ... "crypto" : { "principals" : { "SecretsManager" : { "privateKeyPath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/certificateId-private.pem.keyy" }, "IoTCertificate" : { "privateKeyPath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/certificateId-private.pem.key", "certificatePath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/certificateId-certificate.pem.crt" } }, "caPath" : "file:///snap/aws-iot-greengrass/current/greengrass/certs/AmazonRootCA1.pem" }, "writeDirectory": "/var/snap/aws-iot-greengrass/current/ggc-write-directory", "pidFileDirectory": "/var/snap/aws-iot-greengrass/current/pidFileDirectory" }
  8. 다음 명령을 실행하여 AWS IoT Greengrass 인증서 및 구성 파일을 추가합니다.

    sudo snap set aws-iot-greengrass gg-certs=/home/ubuntu/my-certs

Lambda 함수를 배포합니다.

이 섹션에서는 AWS IoT Greengrass 스냅에서 고객 관리형 Lambda 함수를 배포하는 방법을 보여 줍니다.

중요

AWS IoT Greengrass 스냅 v1.11은 컨테이너화되지 않은 Lambda 함수만 지원합니다.

  1. 다음 명령을 실행하여 AWS IoT Greengrass 대몬(daemon)을 시작합니다.

    sudo snap start aws-iot-greengrass

    응답의 예:

    Started.
  2. 다음 명령을 사용하여 대몬(daemon)이 실행 중인지 확인합니다.

    snap services aws-iot-greengrass.greengrassd

    응답의 예:

    Service Startup Current Notes aws-iot-greengrass.greengrassd disabled active -
  3. 모듈 3 (1부): AWS IoT Greengrass의 Lambda 함수를 따라 Hello World Lambda 함수 생성하고 배포합니다. 하지만 Lambda 함수를 배포하기 전에 다음 단계를 완료합니다.

  4. Lambda 함수가 컨테이너 없음 모드에서 snap_daemon 사용자로 실행되는지 확인합니다. Greengrass 그룹의 설정을 업데이트하려면 AWS IoT Greengrass 콘솔에서 다음과 같이 합니다.

    1. AWS IoT Greengrass 콘솔에 로그인합니다.

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

    3. Greengrass 그룹에서 대상 그룹을 선택합니다.

    4. 그룹 구성 페이지의 탐색 창에서 Lambda 함수 탭을 선택합니다.

    5. 기본 Lambda 함수 런타임 환경에서 편집을 선택하고 다음을 수행합니다.

      1. 기본 시스템 사용자 및 그룹의 경우, 다른 사용자 ID/그룹 ID를 선택한 다음 시스템 사용자 ID(번호)시스템 그룹 ID(숫자) 모두에 584788을 입력합니다.

      2. 기본 Lambda 함수 컨테이너화의 경우, 컨테이너 없음을 선택합니다.

      3. 저장을 선택합니다.

AWS IoT Greengrass 대몬(daemon) 중지

snap stop명령을 사용하여 서비스를 중지할 수 있습니다.

다음 명령을 실행해 AWS IoT Greengrass 대몬(daemon)을 중단합니다.

sudo snap stop aws-iot-greengrass

명령이 Stopped.을(를) 반환합니다.

스냅을 성공적으로 중지했는지 확인하려면 다음 명령을 실행합니다.

snap services aws-iot-greengrass.greengrassd

응답의 예:

Service Startup Current Notes aws-iot-greengrass.greengrassd disabled inactive -

AWS IoT Greengrass 스냅 제거

AWS IoT Greengrass 스냅을 제거하려면 다음 명령을 실행합니다.

sudo snap remove aws-iot-greengrass

응답의 예:

aws-iot-greengrass removed

AWS IoT Greengrass 스냅 문제 해결

다음 정보를 사용하면 AWS IoT Greengrass 스냅 문제 해결에 도움이 됩니다.

권한 거부 오류

해결책: 권한 거부 오류는 종종 인터페이스 누락으로 인해 발생합니다. 누락된 인터페이스 목록과 자세한 문제 해결 정보를 보려면 snappy-debug 도구를 사용할 수 있습니다.

다음 명령을 실행하여 도구를 설치합니다.

sudo snap install snappy-debug

응답의 예:

snappy-debug 0.36-snapd2.45.1 from Canonical✓ installed

별도의 터미널 세션에서 sudo snappy-debug 명령을 실행합니다. 권한 거부 오류가 발생할 때까지 작업이 계속됩니다.

예를 들어, Lambda 함수가 $HOME 디렉터리에 있는 파일을 읽으려고 하면 다음과 같은 응답을 받을 수 있습니다.

INFO: Following '/var/log/syslog'. If have dropped messages, use: INFO: $ sudo journalctl --output=short --follow --all | sudo snappy-debug kernel.printk_ratelimit = 0 = AppArmor = Time: Dec 6 04:48:26 Log: apparmor="DENIED" operation="mknod" profile="snap.aws-iot-greengrass.greengrassd" name="/home/ubuntu/my-file.txt" pid=12345 comm="touch" requested_mask="c" denied_mask="c" fsuid=0 ouid=0 File: /home/ubuntu/my-file.txt (write) Suggestion: * add 'home' to 'plugs'

이 예제는 /home/ubuntu/my-file.txt 파일을 생성할 때 권한 오류가 발생했음을 보여줍니다. 또한 plugshome을(를) 추가할 것을 제안합니다. 하지만 이 제안은 해당되지 않습니다. home-for-greengrassdhome-for-hooks 플러그에는 읽기 전용 액세스 권한만 제공됩니다.

자세한 내용은 스냅 설명서The 스냅py-debug 스냅을 참조하세요.

오류: 다음 작업을 수행할 수 없습니다. - snap "" ([start snap. aws-iot-greengrass aws-iot-greengrass[.greengrassd.service] 가 종료 상태 1: 스냅 작업 때문에 실패했습니다. aws-iot-greengrass제어 프로세스가 오류 코드와 함께 종료되어.greengrassd.service가 실패했습니다. “systemctl 상태 스냅”을 참조하십시오. aws-iot-greengrass자세한 내용은 .greengrassd.service 및 “journalctl -xe”를 참조하십시오.)

해결책: snap start aws-iot-greengrass 명령이 AWS IoT Greengrass 코어 소프트웨어가 시작하는 데 실패하면 이 오류가 발생할 수 있습니다.

자세한 문제 해결 정보를 보려면 다음 명령을 실행합니다.

sudo snap run aws-iot-greengrass.greengrassd

응답의 예:

Couldn't find /snap/aws-iot-greengrass/44/greengrass/config/config.json.

이 예제는 AWS IoT Greengrass이(가) config.json 파일을 찾을 수 없는 경우를 보여줍니다. 구성 및 인증서 파일을 확인할 수 있습니다.

/var/snap/ /current/ aws-iot-greengrass /packages/1.11.5/rootfs/merged는 절대 경로가 아니거나 심볼릭 링크입니다. ggc-write-directory

해결책: AWS IoT Greengrass 스냅은 컨테이너화되지 않은 Lambda 함수만 지원합니다. Lambda 함수를 컨테이너 없음 모드에서 실행해야 합니다. 자세한 내용은 AWS IoT Greengrass Version 1 개발자 안내서Lambda 함수 컨테이너화 선택 시 고려 사항을 참조하세요.

sudo snap refresh snapd 명령을 실행한 후 스냅d 대몬(daemon)을 다시 시작하지 못했습니다.

해결책: AWS IoT Greengrass 스냅 설치 및 구성에서 6~8단계에 따라 AWS IoT Greengrass스냅에 AWS IoT Greengrass 인증서 및 구성 파일을 추가합니다.

AWS IoT Greengrass 코어 소프트웨어 설치 아카이브

새로운 AWS IoT Greengrass 코어 소프트웨어 버전으로 업그레이드할 때 현재 설치된 버전을 아카이브할 수 있습니다. 그러면 현재 설치 환경이 보존되어 동일한 하드웨어에서 새 소프트웨어 버전을 테스트할 수 있습니다. 또한 어떤 이유이든 손쉽게 아카이브된 버전으로 롤백할 수 있습니다.

현재 버전을 아카이브하고 새 버전을 설치하려면
  1. 업그레이드하려는 AWS IoT Greengrass 코어 소프트웨어 설치 패키지를 다운로드합니다.

  2. 패키지를 대상 코어 디바이스에 복사합니다. 파일을 전송하는 방법을 보여 주는 지침은 이 단계를 참조하십시오.

    참고

    나중에 현재 인증서, 키 및 구성 파일을 새 설치에 복사합니다.

    코어 디바이스 터미널에서 다음 단계에 따라 명령을 실행합니다.

  3. 코어 디바이스에서 Greengrass 대몬(daemon)이 중지되어 있는지 확인합니다.

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

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

      출력에 root에 대한 /greengrass/ggc/packages/ggc-version/bin/daemon 입력이 포함되어 있는 경우에는 대몬(daemon)이 실행 중인 것입니다.

      참고

      이 절차는 AWS IoT Greengrass 코어 소프트웨어가 /greengrass 디렉터리에 설치되었다는 가정하에 작성되었습니다.

    2. 대몬(daemon)을 종료할 경우:

      cd /greengrass/ggc/core/ sudo ./greengrassd stop
  4. 현재 Greengrass 루트 디렉터리를 다른 디렉터리로 이동합니다.

    sudo mv /greengrass /greengrass_backup
  5. 코어 디바이스에서 새 소프트웨어의 압축을 해제합니다. 명령에서 os-architectureversion 자리 표시자를 바꿉니다.

    sudo tar –zxvf greengrass-os-architecture-version.tar.gz –C /
  6. 아카이브된 인증서, 키 및 구성 파일을 새 설치에 복사합니다.

    sudo cp /greengrass_backup/certs/* /greengrass/certs sudo cp /greengrass_backup/config/* /greengrass/config
  7. 대몬(daemon)을 시작합니다.

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

이제, 그룹 배포를 만들어 새 설치를 테스트할 수 있습니다. 문제가 발생할 경우, 아카이브된 설치를 복원할 수 있습니다.

아카이브된 설치를 복원하려면
  1. 대몬(daemon)을 중지합니다.

  2. /greengrass 디렉터리를 삭제합니다.

  3. /greengrass_backup 디렉터리를 다시 /greengrass로 이동합니다.

  4. 대몬(daemon)을 시작합니다.