

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

# AWS 제공 구성 요소
<a name="public-components"></a>

AWS IoT Greengrass는 디바이스에 배포할 수 있는 사전 구축된 구성 요소를 제공하고 유지 관리합니다. 이러한 구성 요소에는 기능(예: 스트림 관리자), AWS IoT Greengrass V1 커넥터(예: CloudWatch 지표) 및 로컬 개발 도구(예: AWS IoT Greengrass CLI)가 포함됩니다. 디바이스에 [이러한 구성 요소를 배포](manage-deployments.md)하여 독립 실행형 기능으로 실행하거나 [사용자 지정 Greengrass 구성 요소](develop-greengrass-components.md)의 종속성으로 사용할 수 있습니다.

**참고**  <a name="component-nucleus-dependency-update-note"></a>
AWS에서 제공하는 몇 가지 구성 요소는 Greengrass nucleus의 특정 마이너 버전에 따라 다릅니다. 이 종속성 때문에 Greengrass nucleus를 새로운 마이너 버전으로 업데이트할 때 이러한 구성 요소를 업데이트해야 합니다. 각 구성 요소가 달라지는 특정 nucleus 버전에 대한 내용은 해당 구성 요소 주제를 참조하세요. nucleus 업데이트에 대한 자세한 내용은 [AWS IoT Greengrass 코어 소프트웨어(OTA) 업데이트](update-greengrass-core-v2.md) 섹션을 참조하세요.

<a name="component-table-type-description"></a>구성 요소에 일반 및 Lambda 구성 요소 유형이 둘 다 있으면 구성 요소의 현재 버전은 일반 유형이고 구성 요소의 이전 버전은 Lambda 유형입니다.


| 구성 요소 | 설명 | [구성 요소 유형](develop-greengrass-components.md#component-types) | 지원되는 OS | [오픈 소스](open-source.md) | Nucleus lite 호환 | 
| --- | --- | --- | --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | AWS IoT Greengrass 코어 소프트웨어의 nucleus입니다. 이 구성 요소를 사용하여 코어 디바이스에서 소프트웨어를 구성하고 업데이트합니다. | Nucleus | Linux, Windows | [예](https://github.com/aws-greengrass/aws-greengrass-nucleus) | 아니요 | 
| [Greengrass nucleus lite](greengrass-nucleus-lite-component.md) | 리소스가 제한된 디바이스용 경량 nucleus로, 저비용 엣지 디바이스와 대용량 애플리케이션에 최적화됨 | NucleusLite | Linux | [예](https://github.com/aws-greengrass/aws-greengrass-lite) | 아니요 | 
| <a name="client-device-auth-component-table-row"></a>[클라이언트 디바이스 인증](client-device-auth-component.md) | 클라이언트 디바이스라는 로컬 IoT 디바이스를 활성화하여 코어 디바이스에 연결합니다. | 플러그인 | Linux, Windows | [예](https://github.com/aws-greengrass/aws-greengrass-client-device-auth) | 아니요 | 
| [CloudWatch 지표](cloudwatch-metrics-component.md) | Amazon CloudWatch에 사용자 지정 지표를 게시합니다. | 일반, Lambda | Linux, Windows | [예](https://github.com/aws-greengrass/aws-greengrass-cloudwatch-metrics) | 예 | 
| [AWS IoT Device Defender](device-defender-component.md) | 관리자에게 Greengrass 코어 디바이스의 상태 변경을 알려 비정상적인 동작을 식별합니다. | 일반, Lambda | Linux, Windows | [예](https://github.com/aws-greengrass/aws-greengrass-device-defender) | 아니요 | 
| [디스크 스풀러](disk-spooler-component.md) | Greengrass 코어 디바이스에서 AWS IoT Core로 스풀링되는 메시지에 대한 영구 스토리지 옵션을 활성화합니다. 이 구성 요소에서는 이러한 아웃바운드 메시지를 디스크에 저장합니다. | 플러그인 | Linux, Windows | [예](https://github.com/aws-greengrass/aws-greengrass-disk-spooler) | 아니요 | 
| [Docker 애플리케이션 관리자](docker-application-manager-component.md) | AWS IoT Greengrass가 Docker Hub 또는 Amazon Elastic Container Registry(Amazon ECR)에서 Docker 이미지를 다운로드할 수 있게 합니다. | 일반 | Linux, Windows | 아니요 | 아니요 | 
| [Kinesis Video Streams용 엣지 커넥터](kvs-edge-connector-component.md) | 로컬 카메라에서 비디오 피드를 읽고, 스트림을 Kinesis Video Streams에 게시하고, AWS IoT TwinMaker 를 사용하여 Grafana 대시보드에 스트림을 표시합니다. | 일반 | Linux | 아니요 | 아니요 | 
| [Greengrass CLI](greengrass-cli-component.md) | 로컬 배포를 생성하고 Greengrass 코어 디바이스 및 해당 구성 요소와 연동하는 데 사용할 수 있는 명령줄 인터페이스를 제공합니다. | 플러그인 | Linux, Windows | [예](https://github.com/aws-greengrass/aws-greengrass-cli) | [아니요](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/docs/ggl-cli.md) | 
| <a name="ip-detector-component-table-row"></a>[IP 감지기](ip-detector-component.md) | 클라이언트 디바이스가 연결 방법을 검색할 수 있도록 MQTT 연결 정보를 AWS IoT Greengrass에 보고합니다. | 플러그인 | Linux, Windows | [예](https://github.com/aws-greengrass/aws-greengrass-ip-detector) | 아니요 | 
| [Firehose](kinesis-firehose-component.md) | Amazon Data Firehose 전송 스트림을 통해 데이터를 AWS 클라우드의 대상에 게시합니다. | Lambda | Linux | 아니요 | 아니요 | 
| [Lambda 런처](lambda-launcher-component.md) | Lambda 함수에 대한 프로세스 및 환경 구성을 처리합니다. | 일반 | Linux | 아니요 | 아니요 | 
| [Lambda 관리자](lambda-manager-component.md) | Lambda 함수에 대한 프로세스 간 통신 및 조정을 처리합니다. | 플러그인 | Linux | 아니요 | 아니요 | 
| [Lambda 런타임](lambda-runtimes-component.md) | 각 Lambda 런타임에 대한 아티팩트를 제공합니다. | 일반 | Linux | 아니요 | 아니요 | 
| [레거시 구독 라우터](legacy-subscription-router-component.md) | AWS IoT Greengrass V1에서 실행되는 Lambda 함수에 대한 구독을 관리합니다. | 일반 | Linux | 아니요 | 아니요 | 
| [로컬 디버그 콘솔](local-debug-console-component.md) | Greengrass 코어 디바이스 및 해당 구성 요소를 디버깅하고 관리하는 데 사용할 수 있는 로컬 콘솔을 제공합니다. | 플러그인 | Linux, Windows | [예](https://github.com/aws-greengrass/aws-greengrass-localdebugconsole) | 아니요 | 
| [로그 관리자](log-manager-component.md) | Greengrass 코어 디바이스에서 로그를 수집하고 업로드합니다. | 플러그인 | Linux, Windows | [예](https://github.com/aws-greengrass/aws-greengrass-log-manager) | 아니요 | 
| [기계 학습 구성 요소](machine-learning-components.md) | Greengrass 코어 디바이스에서 기계 학습 추론을 수행하는 데 사용할 수 있는 기계 학습 모델 및 샘플 추론 코드를 제공합니다. | [기계 학습 구성 요소](machine-learning-components.md)을(를) 참조하세요. | 아니요 | 
| [Modbus-RTU 프로토콜 어댑터](modbus-rtu-protocol-adapter-component.md) | 로컬 Modbus RTU 디바이스에서 정보를 폴링합니다. | Lambda | Linux | 아니요 | 아니요 | 
| [nucleus 원격 측정 이미터](nucleus-emitter-component.md) | nucleus에서 수집한 시스템 상태 원격 측정 데이터를 로컬 주제 또는 AWS IoT Core MQTT 주제에 게시합니다. | 플러그인 | Linux, Windows | [예](https://github.com/aws-greengrass/aws-greengrass-telemetry-nucleus-emitter) | 아니요 | 
| <a name="mqtt-bridge-component-table-row"></a>[MQTT 브리지](mqtt-bridge-component.md) | 클라이언트 디바이스, 로컬 AWS IoT Greengrass 게시/구독 및 AWS IoT Core 간 MQTT 메시지를 릴레이합니다. | 플러그인 | Linux, Windows | [예](https://github.com/aws-greengrass/aws-greengrass-mqtt-bridge) | 아니요 | 
| <a name="mqtt-broker-moquette-component-table-row"></a>[MQTT 3.1.1 브로커(Moquette)](mqtt-broker-moquette-component.md) | 클라이언트 디바이스와 코어 디바이스 간 메시지를 처리하는 MQTT 3.1.1 브로커를 실행합니다. | 플러그인 | Linux, Windows | [예](https://github.com/aws-greengrass/aws-greengrass-moquette-mqtt) | 아니요 | 
| <a name="mqtt-broker-emqx-component-table-row"></a>[MQTT 5 브로커(EMQX)](mqtt-broker-emqx-component.md) | 클라이언트 디바이스와 코어 디바이스 간 메시지를 처리하는 MQTT 5 브로커를 실행합니다. | 일반 | Linux, Windows | 아니요 | 아니요 | 
| [PKCS\$111 공급자](pkcs11-provider-component.md) | Greengrass 구성 요소가 HSM(하드웨어 보안 모듈)에 안전하게 저장한 프라이빗 키 및 인증서에 액세스할 수 있도록 합니다. | 플러그인 | Linux | [예](https://github.com/aws-greengrass/aws-greengrass-pkcs11-provider) | 아니요 | 
| [보안 암호 관리자](secret-manager-component.md) | Greengrass 코어 디바이스의 사용자 지정 구성 요소에서 보안 암호와 같은 자격 증명을 안전하게 사용할 수 있도록 AWS Secrets Manager 보안 암호의 보안 암호를 배포합니다. | 플러그인 | Linux, Windows | [예](https://github.com/aws-greengrass/aws-greengrass-secret-manager) | 아니요 | 
| [보안 터널링](secure-tunneling-component.md) | 제한된 방화벽 뒤에 있는 Greengrass 코어 디바이스와의 양방향 통신을 설정하는 데 사용할 수 있는 AWS IoT 보안 터널링 연결을 활성화합니다. | 일반 | Linux | 아니요 | 예 | 
| <a name="shadow-manager-component-table-row"></a>[섀도 관리자](shadow-manager-component.md) | 코어 디바이스에서 섀도와 상호 작용을 활성화합니다. 섀도 문서 스토리지는 물론 AWS IoT 디바이스 섀도 서비스와 로컬 섀도 상태의 동기화도 관리합니다. | 플러그인 | Linux, Windows | [예](https://github.com/aws-greengrass/aws-greengrass-shadow-manager) | 아니요 | 
| [Amazon SNS](sns-component.md) | Amazon SNS 주제에 메시지를 게시합니다. | Lambda | Linux | 아니요 | 아니요 | 
| [스트림 관리자](stream-manager-component.md) | 로컬 소스에서 AWS 클라우드로 대용량 데이터를 스트리밍합니다. | 일반 | Linux, Windows | 아니요 | 예 | 
| [시스템 로그 전달자](system-log-forwarder-component.md) | systemd-journald 로그를 AWS 클라우드에 업로드합니다. | 일반 | Linux | [예](https://github.com/aws-greengrass/aws-greengrass-system-log-forwarder) | 예 | 
| [Systems Manager Agent](systems-manager-agent-component.md) | 디바이스 패치, 명령 실행 등을 할 수 있는 AWS Systems Manager를 사용하여 코어 디바이스를 관리합니다. | 일반 | Linux | [예](https://github.com/aws/amazon-ssm-agent/blob/mainline/packaging/greengrass/component.json) | 아니요 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | AWS 서비스와 연동하는 데 사용할 수 있는 AWS 자격 증명을 제공합니다. | 일반 | Linux, Windows | 아니요 | 아니요 | 
| [IoT SiteWise OPC UA 수집기](iotsitewise-opcua-collector-component.md) | OPC-UA 서버에서 데이터를 수집합니다. | 일반 | Linux, Windows | 아니요 | 아니요 | 
| [IoT SiteWise OPC UA 데이터 소스 시뮬레이터](iotsitewise-opcua-data-source-simulator-component.md) | 샘플 데이터를 생성하는 로컬 OPC-UA 서버를 실행합니다. | 일반 | Linux, Windows | 아니요 | 아니요 | 
| [IoT SiteWise 게시자](iotsitewise-publisher-component.md) | AWS 클라우드에 데이터를 게시합니다. | 일반 | Linux, Windows | 아니요 | 아니요 | 
| [IoT SiteWise 프로세서](iotsitewise-processor-component.md) | Greengrass 코어 디바이스에서 데이터를 처리합니다. | 일반 | Linux, Windows | 아니요 | 아니요 | 

# Greengrass nucleus
<a name="greengrass-nucleus-component"></a>

Greengrass nucleus 구성 요소(`aws.greengrass.Nucleus`)는 필수 구성 요소이며 디바이스에서 AWS IoT Greengrass 코어 소프트웨어를 실행하기 위한 최소 요구 사항입니다. AWS IoT Greengrass 코어 소프트웨어를 원격으로 사용자 지정하고 업데이트하도록이 구성 요소를 구성할 수 있습니다. 이 구성 요소를 배포하여 코어 디바이스에서 프록시, 디바이스 역할 및 AWS IoT 사물 구성과 같은 설정을 구성합니다.

**참고**  
Greengrass 버전 2.14.0부터, 리소스가 제한된 엣지 디바이스를 위해 메모리 사용량이 최적화된 nucleus 디바이스 런타임 버전이 제공됩니다. 구성 및 사용에 대한 자세한 내용은 [Greengrass nucleus lite](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)를 참조하세요.

**중요**  
nucleus 구성 요소의 버전이 변경되거나 특정 구성 파라미터를 변경하면 디바이스의 nucleus 및 기타 모든 구성 요소를 포함하는 AWS IoT Greengrass 코어 소프트웨어가 다시 시작되어 변경 사항이 적용됩니다.  
<a name="component-patch-update"></a>구성 요소를 배포할 때는 해당 구성 요소의 모든 종속성에 대해 지원되는 최신 버전을 AWS IoT Greengrass 설치합니다. 따라서 사물 그룹에 새 디바이스를 추가하거나 해당 디바이스를 대상으로 하는 배포를 업데이트하면 AWS제공된 퍼블릭 구성 요소의 새 패치 버전이 코어 디바이스에 자동으로 배포될 수 있습니다. Nucleus 업데이트와 같은 일부 자동 업데이트로 인해 디바이스가 예기치 않게 다시 시작될 수 있습니다.  
<a name="component-version-pinning"></a>디바이스에서 실행 중인 구성 요소에 대한 의도하지 않은 업데이트를 방지하려면 [배포를 생성](create-deployments.md)할 때 해당 구성 요소의 기본 버전을 직접 포함하는 것이 좋습니다. AWS IoT Greengrass 코어 소프트웨어의 업데이트 동작에 대한 자세한 내용은 섹션을 참조하세요[AWS IoT Greengrass 코어 소프트웨어(OTA) 업데이트](update-greengrass-core-v2.md).

**Topics**
+ [버전](#greengrass-nucleus-component-versions)
+ [디바이스 요구 사항](#greengrass-v2-requirements)
+ [지원하는 플랫폼](#greengrass-v2-supported-platforms)
+ [운영 체제](#greengrass-nucleus-component-os-support)
+ [요구 사항](#greengrass-nucleus-component-requirements)
+ [종속성](#greengrass-nucleus-component-dependencies)
+ [다운로드 및 설치](#greengrass-nucleus-component-install)
+ [구성](#greengrass-nucleus-component-configuration)
+ [로컬 로그 파일](#greengrass-nucleus-component-log-file)
+ [Changelog](#greengrass-nucleus-component-changelog)

## 버전
<a name="greengrass-nucleus-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.16.x
+ 2.15.x
+ 2.14.x
+ 2.13.x
+ 2.12.x
+ 2.11.x
+ 2.10.x
+ 2.9.x
+ 2.8.x
+ 2.7.x
+ 2.6.x
+ 2.5.x
+ 2.4.x
+ 2.3.x
+ 2.2.x
+ 2.1.x
+ 2.0.x

## 디바이스 요구 사항
<a name="greengrass-v2-requirements"></a>

**참고**  
 AWS IoT Device Tester 용 AWS IoT Greengrass 를 사용하여 디바이스가 AWS IoT Greengrass 코어 소프트웨어를 실행하고와 통신할 수 있는지 확인할 수 있습니다 AWS 클라우드. 자세한 내용은 [AWS IoT Greengrass V2용 AWS IoT Device Tester 사용](device-tester-for-greengrass-ug.md) 단원을 참조하십시오.

------
#### [ Linux ]
+ <a name="requirement-supported-region"></a>가 [AWS 리전](https://en.wikipedia.org/wiki/Amazon_Web_Services#Availability_and_topology) 지원하는의 사용 AWS IoT Greengrass V2. 지원되는 리전 목록은 *AWS 일반 참조*에서 [AWS IoT Greengrass V2 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/greengrassv2.html)을 참조하세요.
+  AWS IoT Greengrass 코어 소프트웨어에 사용할 수 있는 최소 디스크 공간은 256MB입니다. 이 요구 사항에는 코어 디바이스에 배포된 구성 요소는 포함되지 않습니다.
+  AWS IoT Greengrass 코어 소프트웨어에 할당된 최소 96MB RAM. 이 요구 사항에는 코어 디바이스에서 실행되는 구성 요소는 포함되지 않습니다. 자세한 내용은 [JVM 옵션으로 메모리 할당 제어](configure-greengrass-core-v2.md#jvm-tuning) 단원을 참조하십시오.
+ Java 런타임 환경(JRE) 버전 8 이상. 디바이스의 [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) 환경 변수에서 Java를 사용할 수 있어야 합니다. Java를 사용하여 사용자 정의 구성 요소를 개발하려면 JDK(Java Devopment Kit)를 설치해야 합니다. [Amazon Corretto](https://aws.amazon.com/corretto/) 또는 [OpenJDK](https://openjdk.java.net/) 장기 지원 버전을 사용하는 것이 좋습니다. 버전 8 이상이 필요합니다.
+ [GNU C Library](https://www.gnu.org/software/libc/)(glibc) 버전 2.25 이상.
+ 루트 사용자로 AWS IoT Greengrass 코어 소프트웨어를 실행해야 합니다. 예를 들어 `sudo`를 사용합니다.
+ 와 같은 AWS IoT Greengrass 코어 소프트웨어를 실행하는 루트 사용자는 모든 사용자 및 모든 그룹에서를 실행할 수 `sudo` 있는 권한이 `root`있어야 합니다. `/etc/sudoers` 파일은 이 사용자에게 다른 그룹으로 `sudo`를 실행할 수 있는 권한을 부여해야 합니다. `/etc/sudoers`의 사용자에 대한 권한은 다음 예제와 유사해야 합니다.

  ```
  root    ALL=(ALL:ALL) ALL
  ```
+ 코어 디바이스는 엔드포인트 및 포트 세트에 대한 아웃바운드 요청을 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.
+ `/tmp` 디렉터리는 `exec` 권한으로 탑재되어야 합니다.
+ 다음 쉘 명령 모두:
  + `ps -ax -o pid,ppid`
  + `sudo`
  + `sh`
  + `kill`
  + `cp`
  + `chmod`
  + `rm`
  + `ln`
  + `echo`
  + `exit`
  + `id`
  + `uname`
  + `grep`
+ 디바이스에 다음 쉘 명령(선택 사항)이 필요할 수도 있습니다.
  + (선택 사항) `systemctl`. 이 명령은 AWS IoT Greengrass 코어 소프트웨어를 시스템 서비스로 설정하는 데 사용됩니다.
  + (선택 사항) `useradd`, `groupadd`, `usermod`. 이 명령은 `ggc_user` 시스템 사용자 및 `ggc_group` 시스템 그룹을 설정하는 데 사용됩니다.
  + (선택 사항) `mkfifo`. 이 명령은 Lambda 함수를 구성 요소로 실행하는 데 사용됩니다.
+ 구성 요소 프로세스에 대한 시스템 리소스 제한을 구성하려면 디바이스에서 Linux 커널 버전 2.6.24 이상을 실행해야 합니다.
+ Lambda 함수를 실행하려면 디바이스가 추가 요구 사항을 충족해야 합니다. 자세한 내용은 [Lambda 함수 요구 사항](setting-up.md#greengrass-v2-lambda-requirements) 단원을 참조하십시오.

------
#### [ Windows ]
+ <a name="requirement-supported-region"></a>가 [AWS 리전](https://en.wikipedia.org/wiki/Amazon_Web_Services#Availability_and_topology) 지원하는의 사용 AWS IoT Greengrass V2. 지원되는 리전 목록은 *AWS 일반 참조*에서 [AWS IoT Greengrass V2 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/greengrassv2.html)을 참조하세요.
+  AWS IoT Greengrass 코어 소프트웨어에 사용할 수 있는 최소 디스크 공간은 256MB입니다. 이 요구 사항에는 코어 디바이스에 배포된 구성 요소는 포함되지 않습니다.
+  AWS IoT Greengrass 코어 소프트웨어에 할당된 최소 160MB RAM. 이 요구 사항에는 코어 디바이스에서 실행되는 구성 요소는 포함되지 않습니다. 자세한 내용은 [JVM 옵션으로 메모리 할당 제어](configure-greengrass-core-v2.md#jvm-tuning) 단원을 참조하십시오.
+ Java 런타임 환경(JRE) 버전 8 이상. 디바이스의 [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) 시스템 변수에서 Java를 사용할 수 있어야 합니다. Java를 사용하여 사용자 정의 구성 요소를 개발하려면 JDK(Java Devopment Kit)를 설치해야 합니다. [Amazon Corretto](https://aws.amazon.com/corretto/) 또는 [OpenJDK](https://openjdk.java.net/) 장기 지원 버전을 사용하는 것이 좋습니다. 버전 8 이상이 필요합니다.
**참고**  
[Greengrass nucleus](#greengrass-nucleus-component)의 버전 2.5.0을 사용하려면 Java 런타임 환경(JRE)의 64비트 버전을 사용해야 합니다. Greengrass nucleus 버전 2.5.1은 32비트 및 64비트 JRE를 지원합니다.
+  AWS IoT Greengrass 코어 소프트웨어를 설치하는 사용자는 관리자여야 합니다.
+  AWS IoT Greengrass 코어 소프트웨어를 시스템 서비스로 설치해야 합니다. 소프트웨어를 설치할 때 `--setup-system-service true`를 지정합니다.
+ 구성 요소 프로세스를 실행하는 각 사용자는 LocalSystem 계정에 있어야 하며 사용자의 이름과 암호는 LocalSystem 계정의 Credential Manager 인스턴스에 있어야 합니다. 지침에 따라 [AWS IoT Greengrass 코어 소프트웨어를 설치할 때이 사용자를 설정할 수 있습니다](install-greengrass-core-v2.md).
+ 코어 디바이스는 엔드포인트 및 포트 세트에 대한 아웃바운드 요청을 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.

------

## 지원하는 플랫폼
<a name="greengrass-v2-supported-platforms"></a>

AWS IoT Greengrass 는 다음 플랫폼을 실행하는 디바이스를 공식적으로 지원합니다. 이 목록에 포함되지 않은 플랫폼이 있는 디바이스는 작동할 수 있지만 이러한 지정된 플랫폼에서만 AWS IoT Greengrass 테스트합니다.

------
#### [ Linux ]

아키텍처:
+ Armv7l
+ ARMv8(AArch64)
+ x86\$164

------
#### [ Windows ]

아키텍처:
+ x86\$164

버전:
+ Windows 10
+ Windows 11
+ Windows Server 2019
+ Windows Server 2022

**참고**  
일부 AWS IoT Greengrass 기능은 현재 Windows 디바이스에서 지원되지 않습니다. 자세한 내용은 [Greengrass 기능 호환성](operating-system-feature-support-matrix.md) 및 [기능 고려 사항](#greengrass-v2-windows-feature-considerations) 섹션을 참조하세요.

------

### 기능 고려 사항
<a name="greengrass-v2-windows-feature-considerations"></a>

일부 AWS IoT Greengrass 기능은 현재 Windows 디바이스에서 지원되지 않습니다. 기능 차이를 검토하여 Windows 디바이스가 요구 사항을 충족하는지 확인합니다. 자세한 내용은 [Greengrass 기능 호환성](operating-system-feature-support-matrix.md) 단원을 참조하십시오.

사용자 지정 Linux 기반 운영 체제를 빌드하려면 [`meta-aws` 프로젝트](https://github.com/aws/meta-aws/tree/master/recipes-iot)에서 AWS IoT Greengrass 에 대한 BitBake 레시피를 사용하면 됩니다. `meta-aws` 프로젝트는 [OpenEmbedded](https://www.openembedded.org/wiki/Main_Page) 및 Yocto 프로젝트 빌드 프레임워크로 빌드된 [임베디드 Linux](https://elinux.org/) 시스템에서 AWS 엣지 소프트웨어 기능을 빌드하는 데 사용할 수 있는 레시피를 제공합니다. [Yocto Project](https://www.yoctoproject.org/)는 하드웨어 아키텍처에 관계없이 임베디드 애플리케이션을 위한 사용자 지정 Linux 기반 시스템을 빌드할 수 있도록 지원하는 오픈 소스 협업 프로젝트입니다. 용 AWS IoT Greengrass BitBake 레시피는 디바이스에서 AWS IoT Greengrass 코어 소프트웨어를 설치, 구성 및 자동으로 실행합니다.

Linux 플랫폼은 Docker 컨테이너 AWS IoT Greengrass 에서도 실행할 수 있습니다. 자세한 내용은 [Docker 컨테이너에서 AWS IoT Greengrass 코어 소프트웨어 실행](run-greengrass-docker.md) 단원을 참조하십시오.

## 운영 체제
<a name="greengrass-nucleus-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

자세한 내용은 [지원하는 플랫폼](#greengrass-v2-supported-platforms) 단원을 참조하십시오.

## 요구 사항
<a name="greengrass-nucleus-component-requirements"></a>

Greengrass nucleus 및 AWS IoT Greengrass 코어 소프트웨어를 설치하고 실행하려면 디바이스가 특정 요구 사항을 충족해야 합니다. 자세한 내용은 [디바이스 요구 사항](#greengrass-v2-requirements) 단원을 참조하십시오.

VPC에서 Greengrass nucleus 구성 요소의 실행이 지원됩니다. 이 구성 요소를 VPC에 배포하려면 다음이 필요합니다.
+ Greengrass nucleus 구성 요소는 AWS IoT data, AWS IoT Credentials 및 Amazon S3에 연결되어 있어야 합니다.

## 종속성
<a name="greengrass-nucleus-component-dependencies"></a>

Greengrass nucleus에는 구성 요소 종속성이 포함되지 않습니다. 하지만 AWS에서 제공하는 여러 구성 요소에는 종속성으로 nucleus가 포함됩니다. 자세한 내용은 [AWS 제공 구성 요소](public-components.md) 단원을 참조하십시오.

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 다운로드 및 설치
<a name="greengrass-nucleus-component-install"></a>

디바이스에 Greengrass nucleus 구성 요소를 설정하는 설치 관리자를 다운로드할 수 있습니다. 이 설치 관리자는 디바이스를 Greengrass 코어 디바이스로 설정합니다. 수행할 수 있는 설치에는 두 가지 유형이 있습니다. 즉, 필요한 AWS 리소스를 생성하는 빠른 설치 또는 AWS 리소스를 직접 생성하는 수동 설치가 있습니다. 자세한 내용은 [AWS IoT Greengrass 코어 소프트웨어 설치](install-greengrass-core-v2.md) 단원을 참조하십시오.

자습서를 따라 Greengrass nucleus를 설치하고 Greengrass 구성 요소 개발을 살펴볼 수도 있습니다. 자세한 내용은 [자습서: AWS IoT Greengrass V2 시작하기](getting-started.md) 단원을 참조하십시오.

## 구성
<a name="greengrass-nucleus-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다. 일부 파라미터를 사용하려면 AWS IoT Greengrass 코어 소프트웨어를 다시 시작해야 합니다. 그 이유와 이 구성 요소를 구성하는 방법에 대한 자세한 내용은 [AWS IoT Greengrass 코어 소프트웨어 구성](configure-greengrass-core-v2.md) 섹션을 참조하세요.

`iotRoleAlias`  
<a name="nucleus-component-configuration-iot-role-alias"></a>토큰 교환 IAM AWS IoT 역할을 가리키는 역할 별칭입니다. 자격 AWS IoT 증명 공급자는 Greengrass 코어 디바이스가 AWS 서비스와 상호 작용할 수 있도록이 역할을 맡습니다. 자세한 내용은 [코어 디바이스가 AWS 서비스와 상호 작용할 수 있도록 권한 부여](device-service-role.md) 단원을 참조하십시오.  
`--provision true` 옵션으로 AWS IoT Greengrass 코어 소프트웨어를 실행하면 소프트웨어가 역할 별칭을 프로비저닝하고 nucleus 구성 요소에서 해당 값을 설정합니다.

  `interpolateComponentConfiguration`   
(선택 사항) Greengrass nucleus가 구성 요소 구성에서 [구성 요소 레시피 변수](component-recipe-reference.md#recipe-variables)를 보간하고 [구성 업데이트를 병합](update-component-configurations.md#merge-configuration-update-recipe-variables)하도록 활성화할 수 있습니다. 코어 디바이스가 구성의 레시피 변수를 사용하는 Greengrass 구성 요소를 실행할 수 있도록 이 옵션을 `true`로 설정하는 것이 좋습니다.  
이 기능은 이 구성 요소의 v2.6.0 이상에서 사용할 수 있습니다.  
기본값: `false`

`networkProxy`  
(선택 사항) 모든 연결에 사용할 네트워크 프록시입니다. 자세한 내용은 [포트 443에서 또는 네트워크 프록시를 통해 연결](configure-greengrass-core-v2.md#configure-alpn-network-proxy) 단원을 참조하십시오.  
<a name="nucleus-component-parameter-restart-para"></a>이 구성 파라미터에 변경 사항을 배포하면 AWS IoT Greengrass 코어 소프트웨어가 다시 시작되어 변경 사항이 적용됩니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`noProxyAddresses`  
(선택 사항) 프록시에서 제외되는 IP 주소 또는 호스트 이름을 쉼표로 구분한 목록입니다.  
`proxy`  
연결할 프록시입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`url`  
`scheme://userinfo@host:port` 형식으로 표시되는 프록시 서버의 URL입니다.  <a name="nucleus-component-configuration-proxy-url-segments"></a>
+ `scheme` - 체계로, `http` 또는 `https`여야 합니다.
**중요**  
<a name="https-proxy-greengrass-nucleus-requirement"></a>Greengrass 코어 디바이스에서 HTTPS 프록시가 사용되려면 [Greengrass nucleus ](#greengrass-nucleus-component) v2.5.0 이상을 실행해야 합니다.  
HTTPS 프록시를 구성하는 경우 코어 디바이스의 Amazon 루트 CA 인증서에 프록시 서버 CA 인증서를 추가해야 합니다. 자세한 내용은 [HTTPS 프록시가 신뢰될 수 있도록 코어 디바이스 설정](configure-greengrass-core-v2.md#https-proxy-certificate-trust) 단원을 참조하십시오.
+ `userinfo` - (선택 사항) 사용자 이름 및 암호 정보입니다. `url`에서 이 정보를 지정하면 Greengrass 코어 디바이스에서는 `username` 및 `password` 필드를 무시합니다.
+ `host` - 프록시 서버의 호스트 이름 또는 IP 주소입니다.
+ `port` – (선택 사항) 포트 번호입니다. 포트를 지정하지 않으면 Greengrass 코어 디바이스에서는 다음 기본값이 사용됩니다.
  + `http` – 80
  + `https` – 443  
`username`  
(선택 사항) 프록시 서버를 인증하는 사용자 이름입니다.  
`password`  
(선택 사항) 프록시 서버를 인증하는 암호입니다.

`mqtt`  
(선택 사항) Greengrass 코어 디바이스의 MQTT 구성입니다. 자세한 내용은 [포트 443에서 또는 네트워크 프록시를 통해 연결](configure-greengrass-core-v2.md#configure-alpn-network-proxy) 단원을 참조하십시오.  
<a name="nucleus-component-parameter-restart-para"></a>이 구성 파라미터에 변경 사항을 배포하면 AWS IoT Greengrass 코어 소프트웨어가 다시 시작되어 변경 사항이 적용됩니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`port`  
(선택 사항) MQTT 연결에 사용할 포트입니다.  
기본값: `8883`  
`keepAliveTimeoutMs`  
(선택 사항) MQTT 연결을 유지하기 위해 클라이언트가 보내는 각 `PING` 메시지 사이의 시간(밀리초)입니다. 이 값은 `pingTimeoutMs`보다 커야 합니다.  
기본값: `60000`(60초)  
`pingTimeoutMs`  
(선택 사항) 클라이언트가 서버로부터 `PINGACK` 메시지를 수신하기 위해 대기하는 시간(밀리초)입니다. 대기 시간이 제한 시간을 초과하면 코어 디바이스가 닫히고 MQTT 연결을 다시 엽니다. 이 값은 `keepAliveTimeoutMs`보다 작아야 합니다.  
기본값: `30000`(30초)  
`operationTimeoutMs`  
(선택 사항) 클라이언트가 MQTT 작업(예: `CONNECT` 또는 `PUBLISH`)이 완료될 때까지 기다리는 시간(밀리초)입니다. 이 옵션은 MQTT `PING` 또는 연결 유지 메시지에는 적용되지 않습니다.  
기본값: `30000`(30초)  
`maxInFlightPublishes`  
(선택 사항) 동시에 이동할 수 있는 확인되지 않은 MQTT QoS 1 메시지의 최대 수입니다.  
이 기능은 이 구성 요소의 v2.1.0 이상에서 사용할 수 있습니다.  
기본값: `5`  
유효 범위: 최대값 100  
`maxMessageSizeInBytes`  
(선택 사항) MQTT 메시지의 최대 크기입니다. 메시지가 이 크기를 초과하면 Greengrass nucleus가 오류와 함께 메시지를 거부합니다.  
이 기능은 이 구성 요소의 v2.1.0 이상에서 사용할 수 있습니다.  
기본값: `131072`(128KB)  
유효 범위: 최대값 `2621440`(2.5MB)  
`maxPublishRetry`  
(선택 사항) 게시에 실패한 메시지의 최대 재시도 횟수입니다. `-1`을 지정하면 무제한으로 재시도할 수 있습니다.  
이 기능은 이 구성 요소의 v2.1.0 이상에서 사용할 수 있습니다.  
기본값: `100`  
`spooler`  
(선택 사항) Greengrass 코어 디바이스의 MQTT 스풀러 구성입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`storageType`  
메시지 저장을 위한 스토리지 유형입니다. `storageType`이 `Disk`로 설정된 경우 `pluginName`을 구성할 수 있습니다. `Memory` 또는 `Disk`를 지정할 수 있습니다.  
이 기능은 [Greengrass nucleus 구성 요소](#greengrass-nucleus-component)의 v2.11.0 이상에서 사용할 수 있습니다.  
MQTT 스풀러 `storageType`이 `Disk`로 설정되어 있고 Greengrass nucleus를 버전 2.11.x에서 이보다 낮은 버전으로 다운그레이드하려는 경우 구성을 다시 `Memory`로 변경해야 합니다. Greengrass nucleus 버전 2.10.x 이하에서 지원되는 `storageType`의 유일한 구성은 `Memory`입니다. 이 지침을 따르지 않으면 스풀러가 손상될 수 있습니다. 이렇게 하면 Greengrass 코어 디바이스가 AWS 클라우드에 MQTT 메시지를 보낼 수 없게 됩니다.
기본값: `Memory`  
`pluginName`  
(선택 사항) 플러그인 구성 요소 이름입니다. 이 구성 요소는 `storageType`이 `Disk`로 설정된 경우에만 사용됩니다. 이 옵션은 기본적으로 `aws.greengrass.DiskSpooler`로 설정되고 Greengrass에서 제공하는 [디스크 스풀러](disk-spooler-component.md)를 사용합니다.  
이 기능은 [Greengrass nucleus 구성 요소](#greengrass-nucleus-component)의 v2.11.0 이상에서 사용할 수 있습니다.  
기본값: `"aws.greengrass.DiskSpooler"`  
`maxSizeInBytes`  
(선택 사항) 코어 디바이스가 처리되지 않은 MQTT 메시지를 메모리에 저장하는 캐시의 최대 크기입니다. 캐시가 가득 차면 새 메시지가 거부됩니다.  
기본값: `2621440`(2.5MB)  
`keepQos0WhenOffline`  
(선택 사항) 코어 디바이스가 오프라인 상태에서 수신하는 MQTT QoS 0 메시지를 스풀링할 수 있습니다. 이 옵션을 `true`로 설정하면 코어 디바이스는 오프라인 상태에서 보낼 수 없는 QoS 0 메시지를 스풀링합니다. 이 옵션을 `false`로 설정하면 코어 디바이스가 이러한 메시지를 폐기합니다. 코어 디바이스는 스풀이 가득 차지 않는 한 항상 QoS 1 메시지를 스풀링합니다.  
기본값: `false`  
`version`  
(선택 사항) MQTT의 버전입니다. `mqtt3` 또는 `mqtt5`를 지정할 수 있습니다.  
이 기능은 [Greengrass nucleus 구성 요소](#greengrass-nucleus-component)의 v2.10.0 이상에서 사용할 수 있습니다.  
기본값: `mqtt5`  
`receiveMaximum`  
(선택 사항) 브로커가 보낼 수 있는 확인되지 않은 최대 QoS1 패킷 수입니다.  
이 기능은 [Greengrass nucleus 구성 요소](#greengrass-nucleus-component)의 v2.10.0 이상에서 사용할 수 있습니다.  
기본값: `100`  
`sessionExpirySeconds`  
(선택 사항) 세션이 IoT 코어에서 지속되도록 요청할 수 있는 시간(초)입니다. 기본값은에서 지원하는 최대 시간입니다 AWS IoT Core.  
이 기능은 [Greengrass nucleus 구성 요소](#greengrass-nucleus-component)의 v2.10.0 이상에서 사용할 수 있습니다.  
기본값: `604800 (7 days)`  
`minimumReconnectDelaySeconds`  
(선택 사항) 재연결 동작 옵션입니다. MQTT가 다시 연결하는 데 걸리는 최소 시간(초)입니다.  
이 기능은 [Greengrass nucleus 구성 요소](#greengrass-nucleus-component)의 v2.10.0 이상에서 사용할 수 있습니다.  
기본값: `1`  
`maximumReconnectDelaySeconds`  
(선택 사항) 재연결 동작 옵션입니다. MQTT가 다시 연결하는 데 걸리는 최대 시간(초)입니다.  
이 기능은 [Greengrass nucleus 구성 요소](#greengrass-nucleus-component)의 v2.10.0 이상에서 사용할 수 있습니다.  
기본값: `120`  
`minimumConnectedTimeBeforeRetryResetSeconds`  
(선택 사항) 재연결 동작 옵션입니다. 재시도 지연이 최소로 재설정되기 전에 연결이 활성화되어야 하는 시간(초)입니다.  
이 기능은 [Greengrass nucleus 구성 요소](#greengrass-nucleus-component)의 v2.10.0 이상에서 사용할 수 있습니다.  
기본값: `30`

  `jvmOptions`  
(선택 사항) AWS IoT Greengrass 코어 소프트웨어를 실행하는 데 사용할 JVM 옵션입니다. AWS IoT Greengrass 코어 소프트웨어 실행을 위한 권장 JVM 옵션에 대한 자세한 내용은 섹션을 참조하세요[JVM 옵션으로 메모리 할당 제어](configure-greengrass-core-v2.md#jvm-tuning).  
<a name="nucleus-component-parameter-restart-para"></a>이 구성 파라미터에 변경 사항을 배포하면 AWS IoT Greengrass 코어 소프트웨어가 다시 시작되어 변경 사항이 적용됩니다.

`iotDataEndpoint`  
<a name="nucleus-component-configuration-iot-data-endpoint"></a>의 AWS IoT 데이터 엔드포인트입니다 AWS 계정.  
<a name="nucleus-component-set-iot-endpoints"></a>`--provision true` 옵션으로 AWS IoT Greengrass 코어 소프트웨어를 실행하면 소프트웨어는에서 데이터 및 자격 증명 엔드포인트를 가져 AWS IoT 와 nucleus 구성 요소에 설정합니다.

`iotCredEndpoint`  
<a name="nucleus-component-configuration-iot-cred-endpoint"></a>의 AWS IoT 자격 증명 엔드포인트입니다 AWS 계정.  
<a name="nucleus-component-set-iot-endpoints"></a>`--provision true` 옵션으로 AWS IoT Greengrass 코어 소프트웨어를 실행하면 소프트웨어는에서 데이터 및 자격 증명 엔드포인트를 가져 AWS IoT 와 nucleus 구성 요소에 설정합니다.

`greengrassDataPlaneEndpoint`  
이 기능은 이 구성 요소의 v2.7.0 이상에서 사용할 수 있습니다.  
자세한 내용은 [프라이빗 CA에서 서명한 디바이스 인증서 사용](configure-greengrass-core-v2.md#configure-nucleus-private-ca) 단원을 참조하십시오.

`greengrassDataPlanePort`  
이 기능은 이 구성 요소의 v2.0.4 이상에서 사용할 수 있습니다.  
(선택 사항) 데이터 플레인 연결에 사용할 포트입니다. 자세한 내용은 [포트 443에서 또는 네트워크 프록시를 통해 연결](configure-greengrass-core-v2.md#configure-alpn-network-proxy) 단원을 참조하십시오.  
디바이스가 아웃바운드 연결을 수행할 수 있는 포트를 지정해야 합니다. 차단된 포트를 지정하면 디바이스가에 연결하여 배포를 수신 AWS IoT Greengrass 할 수 없습니다.
다음 옵션 중 하나를 선택합니다.  
+ `443`
+ `8443`
기본값: `8443`

`awsRegion`  
사용할 AWS 리전 입니다.

`runWithDefault`  
구성 요소 실행에 사용할 시스템 사용자.  
<a name="nucleus-component-parameter-restart-para"></a>이 구성 파라미터에 변경 사항을 배포하면 AWS IoT Greengrass 코어 소프트웨어가 다시 시작되어 변경 사항이 적용됩니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`posixUser`  
코어 디바이스가 일반 및 Lambda 구성 요소를 실행하는 데 사용하는 시스템 사용자 및 선택적으로 시스템 그룹의 이름 또는 ID입니다. `user:group` 형식으로 사용자와 그룹을 콜론(`:`)으로 구분하여 지정합니다. 그룹은 선택 사항입니다. 그룹을 지정하지 않으면 AWS IoT Greengrass 코어 소프트웨어는 사용자의 기본 그룹을 사용합니다. 예를 들어 `ggc_user` 또는 `ggc_user:ggc_group`을 지정할 수 있습니다. 자세한 내용은 [구성 요소를 실행하는 사용자 구성](configure-greengrass-core-v2.md#configure-component-user) 단원을 참조하십시오.  
`--component-default-user ggc_user:ggc_group` 옵션을 사용하여 AWS IoT Greengrass 코어 소프트웨어 설치 관리자를 실행하면 소프트웨어가 nucleus 구성 요소에서이 파라미터를 설정합니다.  
`windowsUser`  
이 기능은 이 구성 요소의 v2.5.0 이상에서 사용할 수 있습니다.  
Windows 코어 디바이스에서 이 구성 요소를 실행하는 데 사용할 Windows 사용자의 이름입니다. 사용자가 각 Windows 코어 디바이스에 있어야 하며, 해당 이름과 암호가 LocalSystem 계정의 Credentials Manager 인스턴스에 저장되어야 합니다. 자세한 내용은 [구성 요소를 실행하는 사용자 구성](configure-greengrass-core-v2.md#configure-component-user) 단원을 참조하십시오.  
`--component-default-user ggc_user` 옵션을 사용하여 AWS IoT Greengrass 코어 소프트웨어 설치 관리자를 실행하면 소프트웨어가 nucleus 구성 요소에서이 파라미터를 설정합니다.  
`systemResourceLimits`  
이 기능은 이 구성 요소의 v2.4.0 이상에서 사용할 수 있습니다. AWS IoT Greengrass 는 현재 Windows 코어 디바이스에서 이 기능을 지원하지 않습니다.  
기본적으로 일반 및 컨테이너화되지 않은 Lambda 구성 요소 프로세스에 적용할 시스템 리소스 제한. 배포를 생성할 때 개별 구성 요소에 대한 시스템 리소스 제한을 재정의할 수 있습니다. 자세한 내용은 [구성 요소에 대한 시스템 리소스 제한 구성](configure-greengrass-core-v2.md#configure-component-system-resource-limits) 단원을 참조하십시오.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`cpus`  
 <a name="system-resource-limits-cpu-definition-each"></a>각 구성 요소의 프로세스가 코어 디바이스에서 사용할 수 있는 최대 CPU 시간입니다. 코어 디바이스의 총 CPU 시간은 디바이스의 CPU 코어 수와 같습니다. 예를 들어, 4개의 CPU 코어가 있는 코어 디바이스에서 이 값을 `2`로 설정하여 각 구성 요소의 프로세스를 각 CPU 코어 사용량의 50%로 제한할 수 있습니다. 1개의 CPU 코어가 있는 디바이스에서 이 값을 `0.25`로 설정하여 각 구성 요소의 프로세스를 CPU 사용량의 25%로 제한할 수 있습니다. 이 값을 CPU 코어 수보다 큰 수로 설정하면 AWS IoT Greengrass 코어 소프트웨어가 구성 요소의 CPU 사용량을 제한하지 않습니다.  
`memory`  
 <a name="system-resource-limits-memory-definition-each"></a>각 구성 요소의 프로세스가 코어 디바이스에서 사용할 수 있는 최대 RAM(KB 단위)입니다.

 `s3EndpointType`   
(선택 사항) S3 엔드포인트 유형입니다. 이 파라미터는 미국 동부(버지니아 북부)(`us-east-1`) 리전에만 적용됩니다. 다른 리전에서 이 파라미터를 설정하면 무시됩니다. 다음 옵션 중 하나를 선택합니다.  
+ `REGIONAL` – S3 클라이언트 및 미리 서명된 URL이 리전 엔드포인트를 사용합니다.
+ `GLOBAL` – S3 클라이언트 및 미리 서명된 URL이 레거시 엔드포인트를 사용합니다.
+ `DUALSTACK` – S3 미리 서명된 URL은 듀얼 스택 엔드포인트를 사용합니다.
기본값: `GLOBAL`

 `fipsMode`   
(선택 사항) Greengrass가 FIPS 엔드포인트를 사용하게 됩니다. FIPS 엔드포인트를 활성화하는 방법에 대한 자세한 내용은 [FIPS 엔드포인트](FIPS.html)를 참조하세요.  
다음 옵션 중 하나를 선택합니다.  
+ `true` true로 설정하면 엔드포인트는 FIPS 엔드포인트를 사용합니다.
+ `false` false일 경우 엔드포인트는 FIPS 엔드포인트를 사용하지 않습니다.
기본값: `false`

`logging`  
(선택 사항) 코어 디바이스의 로깅 구성입니다. Greengrass 로그 구성 및 사용 방법에 대한 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 섹션을 참조하세요.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
  `level`   
(선택 사항) 출력할 로그 메시지의 최소 수준입니다.  
여기에 수준 순서대로 나열된 다음 로그 수준 중에서 선택합니다.  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
기본값: `INFO`  
  `format`   
(선택 사항) 로그의 데이터 형식입니다. 다음 옵션 중 하나를 선택합니다.  
+ `TEXT` - 텍스트 형식으로 로그를 보려면 이 옵션을 선택합니다.
+ `JSON` - [Greengrass CLI logs 명령](gg-cli-logs.md)을 사용하여 로그를 보거나 프로그래밍 방식으로 로그와 상호 작용하려면 이 옵션을 선택합니다.
기본값: `TEXT`  
`outputType`  
(선택 사항) 로그의 출력 유형입니다. 다음 옵션 중 하나를 선택합니다.  
+ `FILE` - AWS IoT Greengrass 코어 소프트웨어는에서 지정한 디렉터리의 파일에 로그를 출력합니다`outputDirectory`.
+ `CONSOLE` - AWS IoT Greengrass 코어 소프트웨어는에 로그를 인쇄합니다`stdout`. 코어 디바이스에서 인쇄할 때 로그를 보려면 이 옵션을 선택합니다.
기본값: `FILE`  
  `fileSizeKB`   
(선택 사항) 각 로그 파일의 최대 크기(KB)입니다. 로그 파일이이 최대 파일 크기를 초과하면 AWS IoT Greengrass 코어 소프트웨어가 새 로그 파일을 생성합니다.  
<a name="nucleus-component-logging-parameter-file-only"></a>이 파라미터는 `outputType`에 대해 `FILE`을 지정한 경우에만 적용됩니다.  
기본값: `1024`  
  `totalLogsSizeKB`   
(선택 사항) Greengrass nucleus를 포함하여 각 구성 요소에 대한 로그 파일의 최대 총 크기(KB)입니다. Greengrass nucleus의 로그 파일에는 [플러그인 구성 요소](develop-greengrass-components.md#component-types)의 로그도 포함됩니다. 구성 요소의 총 로그 파일 크기가이 최대 크기를 초과하면 AWS IoT Greengrass 코어 소프트웨어는 해당 구성 요소의 가장 오래된 로그 파일을 삭제합니다.  
이 파라미터는 Greengrass nucleus(시스템) 및 각 구성 요소에 지정할 수 있는 [로그 관리자 구성 요소](log-manager-component.md)의 [디스크 공간 제한](log-manager-component.md#log-manager-component-configuration) 파라미터(`diskSpaceLimit`)와 동일합니다. AWS IoT Greengrass 코어 소프트웨어는 두 값의 최소값을 Greengrass nucleus 및 각 구성 요소의 최대 총 로그 크기로 사용합니다.  
<a name="nucleus-component-logging-parameter-file-only"></a>이 파라미터는 `outputType`에 대해 `FILE`을 지정한 경우에만 적용됩니다.  
기본값: `10240`  
  `outputDirectory`   
(선택 사항) 로그 파일의 출력 디렉터리입니다.  
<a name="nucleus-component-logging-parameter-file-only"></a>이 파라미터는 `outputType`에 대해 `FILE`을 지정한 경우에만 적용됩니다.  
기본값: `/greengrass/v2/logs`, 여기서 `/greengrass/v2`는 AWS IoT Greengrass 루트 폴더입니다.

  `fleetstatus`   
이 파라미터는 이 구성 요소의 v2.1.0 이상에서 사용할 수 있습니다.  
(선택 사항) 코어 디바이스의 플릿 상태 구성입니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`periodicStatusPublishIntervalSeconds`  
(선택 사항) 코어 디바이스가 AWS 클라우드에 디바이스 상태를 게시하는 간격의 시간(초)입니다.  
최소: `86400`(24시간)  
기본값: `86400`(24시간)

  `telemetry`   
(선택 사항) 코어 디바이스에 대한 시스템 상태 원격 측정 구성입니다. 원격 측정 지표 및 원격 측정 데이터를 활용하는 방법에 대한 자세한 내용은 [AWS IoT Greengrass 코어 디바이스에서 시스템 상태 원격 측정 데이터 수집](telemetry.md) 섹션을 참조하세요.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`enabled`  
(선택 사항) 원격 측정을 활성화 또는 비활성화할 수 있습니다.  
기본값: `true`  
`periodicAggregateMetricsIntervalSeconds`  
(선택 사항) 코어 디바이스가 지표를 집계하는 간격(초)입니다.  
이 값을 지원되는 최소값보다 낮게 설정하면 nucleus가 기본값을 대신 사용합니다.  
최소: `3600`  
기본값: `3600`  
`periodicPublishMetricsIntervalSeconds`  
(선택 사항) 코어 디바이스가 AWS 클라우드에 원격 측정 지표를 게시하는 간격의 시간(초)입니다.  
이 값을 지원되는 최소값보다 낮게 설정하면 nucleus가 기본값을 대신 사용합니다.  
최소: `86400`  
기본값: `86400`

`deploymentPollingFrequencySeconds`  
(선택 사항) 배포 알림을 위해 폴링할 기간(초)입니다.  
기본값: `15`

`componentStoreMaxSizeBytes`  
(선택 사항) 구성 요소 레시피와 아티팩트로 구성된 구성 요소 스토어의 디스크 최대 크기입니다.  
기본값: `10000000000`(10GB)

  `platformOverride`   
(선택 사항) 코어 디바이스의 플랫폼을 식별하는 속성 사전입니다. 이를 사용하여 구성 요소 레시피가 구성 요소의 올바른 수명 주기 및 아티팩트를 식별하는 데 사용할 수 있는 사용자 지정 플랫폼 속성을 정의합니다. 예를 들어 하드웨어 기능 속성을 정의하여 구성 요소가 실행할 최소 아티팩트 세트만 배포할 수 있습니다. 자세한 내용은 구성 요소 레시피의 [매니페스트 플랫폼 파라미터](component-recipe-reference.md#component-platform-definition)를 참조하세요.  
이 파라미터를 사용하여 코어 디바이스의 `os` 및 `architecture` 플랫폼 속성을 재정의할 수도 있습니다.

  `httpClient`   
이 파라미터는 이 구성 요소의 v2.5.0 이상에서 사용할 수 있습니다.  
(선택 사항) 코어 디바이스의 HTTP 클라이언트 구성입니다. 이러한 구성 옵션은 이 구성 요소의 모든 HTTP 요청에 적용됩니다. 코어 디바이스가 느린 네트워크에서 실행되는 경우 이러한 제한 시간을 늘려 HTTP 요청이 제한 시간에 도달하는 것을 방지할 수 있습니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`connectionTimeoutMs`  
(선택 사항) 연결 요청 시간이 초과되기 전에 연결이 열릴 때까지 대기하는 시간(밀리초)입니다.  
기본값: `2000`(2초)  
`socketTimeoutMs`  
(선택 사항) 연결 시간이 초과되기 전에 데이터가 열린 연결을 통해 전송될 때까지 대기하는 시간(밀리초)입니다.  
기본값: `30000`(30초)

  `deploymentConfigurationTimeSource`   
이 파라미터는이 구성 요소의 v2.15.0 이상에서 사용할 수 있습니다.  
(선택 사항) 배포를 처리할 때 사용할 타임스탬프입니다. 기본값은 `deploymentCreationTime`입니다.  
이 객체에는 다음 값이 포함됩니다.    
`deploymentCreationTime`  
`deploymentConfigurationTimeSource`의 기본값입니다. 디바이스는 배포 생성 타임스탬프를 사용하여 처리 중에 구성 키 충돌을 해결합니다. 이 동작이 선택되면, nucleus가 보유한 로컬 디바이스 구성의 타임스탬프가 들어오는 배포보다 더 최신일 수 있으며, 이 경우 들어오는 구성 변경 사항은 오래된 것으로 간주되어 거부됩니다.  
`deploymentProcessingTime`  
디바이스는 배포 처리 중에 로컬 타임스탬프를 사용하여 구성 키 충돌을 해결합니다. 이 경우 디바이스는 배포 생성 타임스탬프가 아니라 처리 시점의 타임스탬프를 기준으로 구성을 업데이트합니다. 이 동작은 디바이스의 시계가 올바르게 보정되어 있다고 가정합니다.  
새 디바이스가 처음 연결될 때부터 이 동작을 사용하도록 하려면 배포를 통해서가 아니라 초기 디바이스 이미지나 설치 과정에서 nucleus 설정을 구성합니다. 이 구성에는 nucleus classic 설치 관리자의 [https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-installer.html](https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-installer.html) 옵션을 사용합니다.  
이 초기 구성은 필수입니다. 디바이스가 여러 배포를 임의의 순서로 처리하기 때문입니다. 적절한 초기 구성이 이루어지지 않으면, 디바이스가 nucleus 구성을 `deploymentProcessingTime`으로 지정하는 배포를 받기 전에 기본 동작인 `deploymentCreationTime`을 사용하여 배포를 처리할 수 있습니다.

**Example 예: 구성 병합 업데이트**  

```
{
  "iotRoleAlias": "GreengrassCoreTokenExchangeRoleAlias",
  "networkProxy": {
    "noProxyAddresses": "http://192.168.0.1,www.example.com",
    "proxy": {
      "url": "http://my-proxy-server:1100",
      "username": "Mary_Major",
      "password": "pass@word1357"
    }
  },
  "mqtt": {
    "port": 443
  },
  "greengrassDataPlanePort": 443,
  "jvmOptions": "-Xmx64m",
  "runWithDefault": {
    "posixUser": "ggc_user:ggc_group"
  }
}
```

## 로컬 로그 파일
<a name="greengrass-nucleus-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="greengrass-nucleus-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.16.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.16.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.15.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.15.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.14.3  |  버그 수정 및 개선 사항 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.14.2  |  버그 수정 및 개선 사항 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.14.1  |  버그 수정 및 개선 사항 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.14.0  |  이 버전은 더 이상 사용할 수 없습니다. 이 버전의 개선 사항은 이 구성 요소의 이후 버전에서 사용할 수 있습니다.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.13.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.12.6  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.12.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.12.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.12.3  |   이 버전은 더 이상 사용할 수 없습니다. 이 버전의 개선 사항은 이 구성 요소의 이후 버전에서 사용할 수 있습니다.  버그 수정 및 개선 사항 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.12.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.12.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.12.0  |  <a name="changelog-nucleus-2.12.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.11.3  |  <a name="changelog-nucleus-2.11.3"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.11.2  |  <a name="changelog-nucleus-2.11.2"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.11.1  |  <a name="changelog-nucleus-2.11.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.11.0  |  <a name="changelog-nucleus-2.11.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.10.3  |  <a name="changelog-nucleus-2.10.3"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.10.2  |  <a name="changelog-nucleus-2.10.2"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.10.1  |  <a name="changelog-nucleus-2.10.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.10.0  |  <a name="changelog-nucleus-2.10.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.9.6  |  <a name="changelog-nucleus-2.9.6"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.9.5  |  <a name="changelog-nucleus-2.9.5"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.9.4  |  <a name="changelog-nucleus-2.9.4"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.9.3  |  <a name="changelog-nucleus-2.9.3"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.9.2  |  <a name="changelog-nucleus-2.9.2"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.9.1  |  <a name="changelog-nucleus-2.9.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.9.0  |  <a name="changelog-nucleus-2.9.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.8.1  |  <a name="changelog-nucleus-2.8.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.8.0  |  <a name="changelog-nucleus-2.8.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.7.0  |  <a name="changelog-nucleus-2.7.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.6.0  |  <a name="changelog-nucleus-2.6.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.5.6  |  <a name="changelog-nucleus-2.5.6"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.5.5  |  <a name="changelog-nucleus-2.5.5"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.5.4  |  <a name="changelog-nucleus-2.5.4"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.5.3  |  <a name="changelog-nucleus-2.5.3"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.5.2  |  <a name="changelog-nucleus-2.5.2"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.5.1  |   이 버전은 더 이상 사용할 수 없습니다. 이 버전의 개선 사항은 이 구성 요소의 이후 버전에서 사용할 수 있습니다.  <a name="changelog-nucleus-2.5.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.5.0  |  <a name="changelog-nucleus-2.5.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.4.0  |  <a name="changelog-nucleus-2.4.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.3.0  |  <a name="changelog-nucleus-2.3.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.2.0  |  <a name="changelog-nucleus-2.2.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.1.0  |  <a name="changelog-nucleus-2.1.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.0.5  |  <a name="changelog-nucleus-2.0.5"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.0.4  |  <a name="changelog-nucleus-2.0.4"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-component.html)  | 
|  2.0.3  |  초기 버전입니다.  | 

# Greengrass nucleus lite
<a name="greengrass-nucleus-lite-component"></a>

Greengrass nucleus lite(`aws.greengrass.NucleusLite`)는 최소 메모리 사용(5MB RAM 미만)에 최적화된 제한된 엣지 디바이스용 디바이스 런타임입니다. AWS IoT Greengrass 버전 2.14.0 릴리스에 도입되었으며 AWS IoT Greengrass 일반 구성 요소, Greengrass V2 API 및 SDK와 역호환됩니다.

Greengrass nucleus lite는 일반 [Greengrass nucleus(`aws.greengrass.Nucleus`)](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html)를 대체하는 옵션으로 제공되며, 이기종 Greengrass 디바이스로 구성된 플릿에서도 사용할 수 있습니다.

**Topics**
+ [버전](#greengrass-nucleus-lite-component-versions)
+ [운영 체제](#greengrass-nucleus-lite-component-os-support)
+ [요구 사항](#greengrass-nucleus-lite-component-requirements)
+ [호환성](#greengrass-nucleus-lite-component-compatibility)
+ [다운로드 및 설치](#greengrass-nucleus-lite-component-install)
+ [구성](#greengrass-nucleus-lite-component-configuration)
+ [로컬 로그 파일](#greengrass-nucleus-lite-component-log-file)
+ [Changelog](#greengrass-nucleus-lite-component-changelog)

## 버전
<a name="greengrass-nucleus-lite-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.3.x
+ 2.2.x
+ 2.1.x
+ 2.0.x

## 운영 체제
<a name="greengrass-nucleus-lite-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux(systemd를 사용한 배포)

자세한 내용은 [Greengrass nucleus](https://docs.aws.amazon.com/greengrass/v2/developerguide/operating-system-feature-support-matrix.html)를 참조하세요.

## 요구 사항
<a name="greengrass-nucleus-lite-component-requirements"></a>

 AWS IoT Greengrass nucleus lite 및 AWS IoT Greengrass 코어 소프트웨어를 설치하고 실행하려면 디바이스가 특정 요구 사항을 충족해야 합니다. 자세한 내용은 [설정 가이드](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/docs/SETUP.md#setting-up-greengrass-nucleus-lite)를 참조하세요.
+ nucleus 런타임을 위한 5MB RAM 공간.
+ 5MB 저장 공간(디스크/FLASH).

추가 시스템 의존성은 [설정 가이드](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/docs/SETUP.md#dependencies)에 문서화되어 있습니다.

VPC에서 Greengrass nucleus 구성 요소의 실행이 지원됩니다. 이 구성 요소를 VPC에 배포하려면 다음이 필요합니다.
+ Greengrass nucleus는 AWS IoT 데이터, AWS IoT 자격 증명 및 Amazon S3에 연결되어 있어야 합니다.

## 호환성
<a name="greengrass-nucleus-lite-component-compatibility"></a>

 AWS IoT Greengrass nucleus lite는 AWS IoT Greengrass v2 API(의 하위 세트) 및 지원되는 SDKs. 특정 언어 런타임/VM에 의존하지 않지만, 배포에 추가되는 구성 요소는 특정 런타임(Java JVM, Python 등)의 존재를 요구할 수 있습니다. nucleus lite에서 지원되는 기능에 대한 자세한 내용은 [Greengrass 기능 호환성](operating-system-feature-support-matrix.md) 섹션을 참조하세요.

## 다운로드 및 설치
<a name="greengrass-nucleus-lite-component-install"></a>

apt 패키지를 다운로드하거나, [소스에서 빌드](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/README.md#getting-started)하거나, [Yocto 계층을 사용](https://github.com/aws4embeddedlinux/meta-aws)하거나, [사전 빌드된 Yocto 이미지를 다운로드](https://github.com/aws4embeddedlinux/meta-aws-demos)할 수 있습니다(예: Raspberry Pi). [AWS IoT Core 콘솔](https://console.aws.amazon.com/iot/home)에서는 디바이스에 필요한 모든 자격 증명과 초기 설정이 포함된 **연결 키트**를 다운로드할 수 있습니다. 각 배포 방법별 설치 지침이 포함되어 있습니다.

자습서에 따라 AWS IoT Greengrass nucleus lite를 설치하고 Greengrass 구성 요소 개발을 탐색할 수도 있습니다. 자세한 내용은 [자습서: AWS IoT Greengrass V2 시작하기](getting-started.md) 단원을 참조하십시오.

## 구성
<a name="greengrass-nucleus-lite-component-configuration"></a>

nucleus는 다음 [구성](https://github.com/aws-greengrass/aws-greengrass-lite/blob/main/docs/SETUP.md#configuring-greengrass) 파라미터를 지원합니다. 일부 파라미터를 사용하려면 AWS IoT Greengrass 코어 소프트웨어를 다시 시작해야 합니다.

`iotRoleAlias`  
토큰 교환 IAM AWS IoT 역할을 가리키는 역할 별칭입니다. 자격 AWS IoT 증명 공급자는 Greengrass 코어 디바이스가 서비스와 상호 작용 AWS 할 수 있도록이 역할을 맡습니다. 자세한 내용은 [코어 디바이스가 AWS 서비스와 상호 작용하도록 권한 부여를 참조하세요.](https://docs.aws.amazon.com/greengrass/v2/developerguide/device-service-role.html)

`iotDataEndpoint`  
<a name="nucleus-component-configuration-iot-data-endpoint"></a>의 AWS IoT 데이터 엔드포인트입니다 AWS 계정.

`iotCredEndpoint`  
<a name="nucleus-component-configuration-iot-cred-endpoint"></a>의 AWS IoT 자격 증명 엔드포인트입니다 AWS 계정.

`greengrassDataPlanePort`  
데이터 플레인 연결에 사용할 포트입니다. 자세한 내용은 [포트 443에서 또는 네트워크 프록시를 통해 연결](https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html#configure-alpn-network-proxy)을 참조하세요.  
디바이스가 아웃바운드 연결을 수행할 수 있는 포트를 지정해야 합니다. 차단된 포트를 지정하면 디바이스가에 연결하여 배포를 수신 AWS IoT Greengrass 할 수 없습니다. 다음 옵션 중 하나를 선택합니다.  
+ `443`
+ `8443`
+ 기본값: `8443`

`awsRegion`  
사용할 AWS 리전 입니다.

`runWithDefault`  
구성 요소 실행에 사용할 시스템 사용자.  
<a name="nucleus-component-parameter-restart-para"></a>이 구성 파라미터에 변경 사항을 배포하면 AWS IoT Greengrass 코어 소프트웨어가 다시 시작되어 변경 사항이 적용됩니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`posixUser`  
코어 디바이스가 일반 구성 요소를 실행하는 데 사용하는 시스템 사용자 및 선택적으로 시스템 그룹의 이름 또는 ID입니다. `user:group` 형식으로 사용자와 그룹을 콜론(`:`)으로 구분하여 지정합니다. 그룹은 선택 사항입니다. 그룹을 지정하지 않으면 AWS IoT Greengrass 코어 소프트웨어는 사용자의 기본 그룹을 사용합니다. 예를 들어 `ggc_user` 또는 `ggc_user:ggc_group`을 지정할 수 있습니다. 자세한 내용은 [구성 요소를 실행하는 사용자 구성](configure-greengrass-core-v2.md#configure-component-user) 단원을 참조하십시오.

`networkProxy`  
(선택 사항) 모든 연결에 사용할 네트워크 프록시입니다. 자세한 내용은 [포트 443에서 또는 네트워크 프록시를 통해 연결](configure-greengrass-core-v2.md#configure-alpn-network-proxy) 단원을 참조하십시오.  
이 구성 파라미터에 대한 변경 사항을 배포하면 다음에 AWS IoT Greengrass 코어 소프트웨어를 다시 시작한 후 변경 사항이 적용됩니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`noProxyAddresses`  
(선택 사항) 프록시에서 제외되는 IP 주소 또는 호스트 이름을 쉼표로 구분한 목록입니다.  
`proxy`  
연결할 프록시입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`url`  
`http://host:port` 형식으로 표시되는 프록시 서버의 URL입니다.  
+ `scheme` - 체계로, `http`여야 합니다.
+ `host` - 프록시 서버의 호스트 이름 또는 IP 주소입니다.
+ `port` – (선택 사항) 포트 번호입니다. 포트를 지정하지 않으면 Greengrass 코어 디바이스에서는 다음 기본값이 사용됩니다.
  + `http` – 80

## 로컬 로그 파일
<a name="greengrass-nucleus-lite-component-log-file"></a>

메시지는 stdout에 로깅되고 로그 파일은 systemd에서 처리됩니다.

**이 구성 요소의 로그를 보려면**
+ 로그를 확인하려면 `journalctl`을 사용합니다.

## Changelog
<a name="greengrass-nucleus-lite-component-changelog"></a>


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.3.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.3.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.3.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.0.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.0.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)  | 
|  2.0.0  |  초기 버전입니다.  | 

# 클라이언트 디바이스 인증
<a name="client-device-auth-component"></a>

클라이언트 디바이스 인증 구성 요소(`aws.greengrass.clientdevices.Auth`)에서는 클라이언트 디바이스가 인증되고 클라이언트 디바이스 작업이 승인됩니다.

**참고**  <a name="client-device-component-context"></a>
클라이언트 디바이스는 Greengrass 코어 디바이스에 연결되어 처리할 MQTT 메시지와 데이터를 보내는 로컬 IoT 디바이스입니다. 자세한 내용은 [로컬 IoT 디바이스와 상호 작용](interact-with-local-iot-devices.md) 단원을 참조하십시오.

**Topics**
+ [버전](#client-device-auth-component-versions)
+ [유형](#client-device-auth-component-type)
+ [운영 체제](#client-device-auth-component-os-support)
+ [요구 사항](#client-device-auth-component-requirements)
+ [종속성](#client-device-auth-component-dependencies)
+ [구성](#client-device-auth-component-configuration)
+ [로컬 로그 파일](#client-device-auth-component-log-file)
+ [Changelog](#client-device-auth-component-changelog)

## 버전
<a name="client-device-auth-component-versions"></a>

**참고**  
클라이언트 디바이스 인증 버전 2.3.0은 중단되었습니다. 클라이언트 디바이스 인증 버전 2.3.1 이상으로 업그레이드하는 것이 좋습니다.

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.5.x
+ 2.4.x
+ 2.3.x
+ 2.2.x
+ 2.1.x
+ 2.0.x

## 유형
<a name="client-device-auth-component-type"></a>

<a name="public-component-type-plugin-para1"></a>이 구성 요소는 플러그인 구성 요소(`aws.greengrass.plugin`)입니다. [Greengrass nucleus는](greengrass-nucleus-component.md) 이 구성 요소를 nucleus와 동일한 Java 가상 머신(JVM)에서 실행합니다. 코어 디바이스에서 구성 요소의 버전을 변경하면 nucleus가 다시 시작됩니다.

<a name="public-component-type-plugin-para2"></a>이 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 단원을 참조하십시오.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="client-device-auth-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="client-device-auth-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
+ [Greengrass 서비스 역할은](greengrass-service-role.md)에 연결되어 AWS 계정 있어야 하며 `iot:DescribeCertificate` 권한을 허용해야 합니다.
+ 코어 디바이스의 AWS IoT 정책은 다음 권한을 허용해야 합니다.
  + 이 구성 요소가 실행되는 코어 디바이스의 ARN이 리소스에 포함되어 있는 `greengrass:GetConnectivityInfo`
  + 코어 디바이스에 연결되는 각 클라이언트 디바이스의 Amazon 리소스 이름(ARN)이 리소스에 포함되어 있는 `greengrass:VerifyClientDeviceIoTCertificateAssociation`
  + `greengrass:VerifyClientDeviceIdentity`
  + `greengrass:PutCertificateAuthorities`
  + 다음 MQTT 주제의 ARN이 리소스에 포함되어 있는 `iot:Publish`
    + `$aws/things/coreDeviceThingName*-gci/shadow/get`
  + 다음 MQTT 주제 필터의 ARN이 리소스에 포함되어 있는 `iot:Subscribe`
    + `$aws/things/coreDeviceThingName*-gci/shadow/update/delta`
    + `$aws/things/coreDeviceThingName*-gci/shadow/get/accepted`
  + 다음 MQTT 주제의 ARN이 리소스에 포함되어 있는 `iot:Receive`
    + `$aws/things/coreDeviceThingName*-gci/shadow/update/delta`
    + `$aws/things/coreDeviceThingName*-gci/shadow/get/accepted`

  자세한 내용은 [AWS IoT 데이터 영역 작업에 대한 정책](device-auth.md#iot-policies) 및 [클라이언트 디바이스를 지원하는 최소 AWS IoT 정책](device-auth.md#client-device-support-minimal-iot-policy) 섹션을 참조하세요.
+ (선택 사항) 오프라인 인증을 사용하려면 서비스에서 AWS IoT Greengrass 사용하는 AWS Identity and Access Management (IAM) 역할에 다음 권한이 포함되어야 합니다.
  + 코어 디바이스에서 사용하여 오프라인 인증 대상 클라이언트를 나열할 수 있는 `greengrass:ListClientDevicesAssociatedWithCoreDevice`입니다.
+ VPC에서 클라이언트 디바이스 인증 구성 요소의 실행이 지원됩니다. 이 구성 요소를 VPC에 배포하려면 다음이 필요합니다.
  + 클라이언트 디바이스 인증 구성 요소에는 AWS IoT data AWS IoT , 자격 증명 및 Amazon S3에 대한 연결이 있어야 합니다.

### 엔드포인트 및 포트
<a name="client-device-auth-component-endpoints"></a>

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에 다음 엔드포인트 및 포트에 대한 아웃바운드 요청도 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.


| 엔드포인트 | Port | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `iot.region.amazonaws.com`  | 443 | 예 |   AWS IoT 사물 인증서에 대한 정보를 가져오는 데 사용됩니다.  | 

## 종속성
<a name="client-device-auth-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#client-device-auth-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.5.5 ]

다음 표에는이 구성 요소의 버전 2.5.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.6.0 <2.17.0 | 소프트 | 

------
#### [ 2.5.4 ]

다음 표에는이 구성 요소의 버전 2.5.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.6.0 <2.16.0 | 소프트 | 

------
#### [ 2.5.2 – 2.5.3 ]

다음 표에는이 구성 요소의 버전 2.5.2 및 2.5.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.6.0 <2.15.0 | 소프트 | 

------
#### [ 2.5.1 ]

다음 표에는 이 구성 요소의 버전 2.5.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.6.0 <2.14.0 | 소프트 | 

------
#### [ 2.4.4 - 2.5.0 ]

다음 표에는 이 구성 요소의 버전 2.4.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.6.0 <2.13.0 | 소프트 | 

------
#### [ 2.4.3 ]

다음 표에는 이 구성 요소의 버전 2.4.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.6.0 <2.12.0 | 소프트 | 

------
#### [ 2.4.1 and 2.4.2 ]

다음 표에는 이 구성 요소의 버전 2.4.1 및 2.4.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.6.0 <2.11.0 | 소프트 | 

------
#### [ 2.3.0 – 2.4.0 ]

다음 표에는 이 구성 요소의 버전 2.3.0\$12.4.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.6.0 <2.10.0 | 소프트 | 

------
#### [ 2.3.0 ]

다음 표에는 이 구성 요소의 버전 2.3.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.6.0 <2.10.0 | 소프트 | 

------
#### [ 2.2.3 ]

다음 표에는 이 구성 요소의 버전 2.2.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.6.0 <=2.9.0 | 소프트 | 

------
#### [ 2.2.2 ]

다음 표에는 이 구성 요소의 버전 2.2.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.6.0 <=2.8.0 | 소프트 | 

------
#### [ 2.2.1 ]

다음 표에는 이 구성 요소의 버전 2.2.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.6.0 <2.8.0 | 소프트 | 

------
#### [ 2.2.0 ]

다음 표에는 이 구성 요소의 버전 2.2.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.6.0 <2.7.0 | 소프트 | 

------
#### [ 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.7.0 | 소프트 | 

------
#### [ 2.0.4 ]

다음 표에는 이 구성 요소의 버전 2.0.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.6.0 | 소프트 | 

------
#### [ 2.0.2 and 2.0.3 ]

다음 표에는 이 구성 요소의 버전 2.0.2 및 2.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.5.0 | 소프트 | 

------
#### [ 2.0.1 ]

다음 표에는 이 구성 요소의 버전 2.0.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.4.0 | 소프트 | 

------
#### [ 2.0.0 ]

다음 표에는 이 구성 요소의 버전 2.0.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.3.0 | 소프트 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="client-device-auth-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

**참고**  
구독 권한은 로컬 MQTT 브로커에 대한 클라이언트 구독 요청 중에 평가됩니다. 클라이언트의 기존 구독 권한이 취소되면 클라이언트에서는 더는 주제를 구독할 수 없습니다. 그러나 이전에 구독한 주제의 메시지는 계속 수신됩니다. 이 동작을 방지하려면 강제로 클라이언트의 권한이 다시 부여되도록 구독 권한을 취소한 후 로컬 MQTT 브로커를 다시 시작해야 합니다.  
MQTT 5 브로커(EMQX) 구성 요소의 경우 `restartIdentifier` 구성을 업데이트하여 MQTT 5 브로커를 다시 시작합니다.  
MQTT 3.1.1 브로커(Moquette) 구성 요소의 경우 서버 인증서가 변경되어 클라이언트에 강제로 다시 권한이 부여되면 기본적으로 매주 다시 시작됩니다. 코어 디바이스의 연결 정보(IP 주소)를 변경하거나 배포를 적용하여 브로커 구성 요소를 제거한 다음에 나중에 다시 배포하여 강제로 다시 시작할 수 있습니다.

------
#### [ v2.5.0 – 2.5.4 ]

`deviceGroups`  
디바이스 그룹은 코어 디바이스와 연결하고 통신할 권한이 있는 클라이언트 디바이스 그룹입니다. 선택 규칙을 사용하여 클라이언트 디바이스 그룹을 식별하고 디바이스 그룹마다 권한을 지정하는 *클라이언트 디바이스 권한 부여 정책*을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`formatVersion`  
이 구성 객체의 형식 버전입니다.  
다음 옵션 중 하나를 선택합니다.  
+ `2021-03-05`  
`definitions`  
이 코어 디바이스의 디바이스 그룹. 각 정의에서는 클라이언트 디바이스가 그룹의 멤버인지 평가할 *선택 규칙*이 지정됩니다. 각 정의에서는 선택 규칙과 일치하는 클라이언트 디바이스에 적용할 권한 정책도 지정됩니다. 클라이언트 디바이스가 여러 디바이스 그룹의 멤버인 경우 디바이스의 권한은 각 그룹의 권한 정책으로 구성됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`groupNameKey`  
이 디바이스 그룹의 이름입니다. 이 디바이스 그룹을 식별하는 데 도움이 되는 이름으로 *groupNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`selectionRule`  
이 디바이스 그룹의 멤버인 클라이언트 디바이스가 지정되는 쿼리입니다. 클라이언트 디바이스가 연결되면 코어 디바이스에서는 이 선택 규칙을 평가하여 클라이언트 디바이스가 이 디바이스 그룹의 멤버인지 결정됩니다. 클라이언트 디바이스가 멤버인 경우 코어 디바이스에서는 이 디바이스 그룹의 정책을 사용하여 클라이언트 디바이스의 작업에 권한이 부여됩니다.  
각 선택 규칙은 클라이언트 디바이스와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 *선택 규칙 절*로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [AWS IoT 플릿 인덱싱 쿼리 구문](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)을 참조하세요.  
여러 클라이언트 디바이스가 하나의 선택 규칙 절과 일치되도록 와일드카드(`*`)를 사용합니다. 지정하는 문자열로 이름이 시작하거나 끝나는 클라이언트 디바이스와 일치하도록 사물 이름의 시작과 끝에 이 와일드카드를 사용할 수 있습니다. 모든 클라이언트 디바이스가 일치되도록 이 와일드카드를 사용할 수도 있습니다.  
콜론 문자(`:`)가 있는 값을 선택하려면 백슬래시 문자(`\`)로 콜론을 이스케이프합니다. JSON과 같은 형식에서는 백슬래시 문자를 이스케이프해야 하므로 콜론 문자 앞에 백슬래시 문자 2개를 입력합니다. 예를 들어 `thingName: MyTeam\\:ClientDevice1`를 지정하여 이름이 `MyTeam:ClientDevice1`인 사물을 선택합니다.
다음 선택기를 지정할 수 있습니다.  
+ `thingName` - 클라이언트 디바이스 사물의 이름입니다 AWS IoT .

**Example 선택 규칙 예제**  
다음 선택 규칙에서는 이름이 `MyClientDevice1` 또는 `MyClientDevice2`인 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 선택 규칙 예제(와일드카드 사용)**  
다음 선택 규칙에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice*
```

**Example 선택 규칙 예제(와일드카드 사용)**  
다음 선택 규칙에서는 이름이 `MyClientDevice`로 끝나는 클라이언트 디바이스가 일치됩니다.  

```
thingName: *MyClientDevice
```

**Example 선택 규칙 예제(모든 디바이스 일치)**  
다음 선택 규칙에서는 모든 클라이언트 디바이스가 일치됩니다.  

```
thingName: *
```  
`policyName`  
이 디바이스 그룹의 클라이언트 디바이스에 적용되는 권한 정책. `policies` 객체에서 정의하는 정책의 이름이 지정됩니다.  
`policies`  
코어 디바이스에 연결되는 클라이언트 디바이스에 대한 클라이언트 디바이스 권한 부여 정책입니다. 각 권한 부여 정책을 통해 작업 세트 및 클라이언트 디바이스에서 해당 작업을 수행할 수 있는 리소스가 지정됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`policyNameKey`  
이 권한 부여 정책의 이름. 이 권한 부여 정책을 식별하는 데 도움이 되는 이름으로 *policyNameKey*를 바꿉니다. 이 정책 이름을 사용하여 디바이스 그룹에 적용되는 정책을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`statementNameKey`  
이 정책 문의 이름입니다. 이 정책 문을 식별하는 데 도움이 되는 이름으로 *statementNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`operations`  
이 정책의 리소스에 허용되는 작업 목록입니다.  
다음과 같은 작업을 임의로 포함할 수 있습니다.  
+ `mqtt:connect` – 코어 디바이스에 연결하는 권한을 부여합니다. 코어 디바이스에 연결하려면 클라이언트 디바이스에 이 권한이 있어야 합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + `mqtt:clientId:deviceClientId` - 클라이언트 디바이스에서 코어 디바이스의 MQTT 브로커에 연결하는 데 사용되는 클라이언트 ID에 따라 액세스를 제한합니다. 사용할 클라이언트 ID로 *deviceClientId*를 바꿉니다.
+ `mqtt:publish` - 주제에 MQTT 메시지를 게시하는 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` - 클라이언트 디바이스에서 메시지가 게시되는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제로 *mqttTopic*을 바꿉니다.

    이 리소스에서는 MQTT 주제 와일드카드가 지원되지 않습니다.
+ `mqtt:subscribe` – 메시지를 수신할 MQTT 주제 필터를 구독할 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + `mqtt:topicfilter:mqttTopicFilter` - 클라이언트 디바이스에서 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제 필터로 *mqttTopicFilter*를 바꿉니다.

    이 리소스에서는 MQTT 주제 와일드카드가 지원되지 않습니다.  
`resources`  
이 정책의 작업에 허용되는 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정합니다. 예를 들어 `mqtt:publish` 작업이 지정되는 정책에서 MQTT 주제 리소스(`mqtt:topic:mqttTopic`) 목록을 지정할 수 있습니다.  
리소스 변수 내 임의의 위치에 와일드카드(`*`)를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다. 예를 들어 **mqtt:topic:my\$1**를 지정하여 해당 입력과 일치하는 리소스에 대한 액세스를 허용할 수 있습니다.  
다음 리소스 변수가 지원됩니다.  
+ `mqtt:topic:${iot:Connection.Thing.ThingName}`

  이렇게 하면 정책이 평가되는 AWS IoT Core 레지스트리의 사물 이름으로 확인됩니다.는 디바이스가 인증할 때 제공하는 인증서를 AWS IoT Core 사용하여 연결을 확인하는 데 사용할 사물을 결정합니다. 이 정책 변수는 디바이스가 MQTT 또는 WebSocket 프로토콜을 통한 MQTT를 통해 연결하는 경우에만 사용할 수 있습니다.  
`statementDescription`  
(선택 사항) 이 정책 문에 대한 설명입니다.

`certificates`  <a name="client-device-auth-component-configuration-certificates"></a>
(선택 사항) 이 코어 디바이스의 인증서 구성 옵션입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`serverCertificateValiditySeconds`  
(선택 사항) 로컬 MQTT 서버 인증서가 만료되는 시간(초)입니다. 이 옵션을 구성하여 클라이언트 디바이스와 코어 디바이스의 연결 해제 및 재연결 빈도를 사용자 지정할 수 있습니다.  
이 구성 요소에서는 로컬 MQTT 서버 인증서가 만료 24시간 전에 교체됩니다. MQTT 브로커(예: [Moquette MQTT 브로커 구성 요소](mqtt-broker-moquette-component.md))에서는 새 인증서가 생성되어 다시 시작됩니다. 이 경우에는 이 코어 디바이스에 연결된 모든 클라이언트 디바이스의 연결이 해제됩니다. 짧은 기간 뒤에 코어 디바이스에 클라이언트 디바이스가 다시 연결될 수 있습니다.  
기본값: `604800`(7일)  
최솟값: `172800`(2일)  
최댓값: `864000`(10일)

`performance`  
(선택 사항) 이 코어 디바이스의 성능 구성 옵션입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`maxActiveAuthTokens`  
(선택 사항) 최대 활성 클라이언트 디바이스 권한 부여 토큰 수입니다. 이 수를 늘리면 다시 인증하지 않아도 더 많은 수의 클라이언트 디바이스가 단일 코어 디바이스에 연결될 수 있습니다.  
기본값: `2500`  
`cloudRequestQueueSize`  
(선택 사항)이 구성 요소가 AWS 클라우드 요청을 거부하기 전에 대기열에 추가할 최대 요청 수입니다.  
기본값: `100`  
`maxConcurrentCloudRequests`  
(선택 사항) AWS 클라우드에 보낼 최대 동시 요청 수입니다. 이 수를 늘려 많은 수의 클라이언트 디바이스를 연결하는 코어 디바이스의 인증 성능을 개선할 수 있습니다.  
기본값: `1`

`certificateAuthority`  
(선택 사항) 코어 디바이스 중간 기관을 자신의 중간 인증 기관으로 바꾸는 인증 기관 구성 옵션입니다.  
사용자 지정 인증 기관(CA)으로 Greengrass 코어 디바이스를 구성하고 동일한 CA를 사용하여 클라이언트 디바이스 인증서를 발급하는 경우 Greengrass에서는 클라이언트 디바이스 MQTT 작업에 대한 권한 부여 정책 확인이 우회됩니다. 클라이언트 디바이스 인증 구성 요소에서는 사용하도록 구성된 CA에서 서명한 인증서를 사용하는 클라이언트가 완전히 신뢰됩니다.  
사용자 지정 CA를 사용할 때 이 동작을 제한하려면 다른 CA 또는 중간 CA를 사용하여 클라이언트 디바이스를 생성하고 서명한 다음에 올바른 중간 CA를 가리키도록 `certificateUri` 및 `certificateChainUri` 필드를 조정합니다.
 이 객체에는 다음 정보가 포함됩니다.    
certificateUri  
인증서의 위치입니다. 하드웨어 보안 모듈에 저장된 인증서를 가리키는 파일 시스템 URI 또는 URI일 수 있습니다.  
`certificateChainUri`  
코어 디바이스 CA에 대한 인증서 체인의 위치입니다. 루트 CA로 돌아가는 전체 인증서 체인이어야 합니다. 하드웨어 보안 모듈에 저장된 인증서 체인을 가리키는 파일 시스템 URI 또는 URI일 수 있습니다.  
`privateKeyUri`  
코어 디바이스의 프라이빗 키 위치입니다. 하드웨어 보안 모듈에 저장된 인증서 프라이빗 키를 가리키는 파일 시스템 URI 또는 URI일 수 있습니다.

`security`  
(선택 사항) 이 코어 디바이스의 보안 구성 옵션입니다. 이 객체에는 다음 정보가 포함됩니다.    
`clientDeviceTrustDurationMinutes`  
코어 디바이스로 재인증해야 하기 전에 클라이언트 디바이스의 인증 정보를 신뢰할 수 있는 기간(분)입니다. 기본값은 1입니다.

`metrics`  
(선택 사항) 이 코어 디바이스의 지표 옵션입니다. 클라이언트 디바이스 인증에 오류가 있는 경우에만 오류 지표가 표시됩니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`disableMetrics`  
`disableMetrics` 필드가 `true`로 설정된 경우 클라이언트 디바이스 인증에서는 지표가 수집되지 않습니다.  
기본값: `false`  
`aggregatePeriodSeconds`  
클라이언트 디바이스에서 지표가 집계되어 원격 측정 에이전트로 보내지는 빈도가 결정되는 기간(초). 원격 측정 에이전트에서는 여전히 하루에 한 번씩 지표가 게시되기 때문에 지표가 게시되는 빈도는 변경되지 않습니다.  
기본값: `3600`

startupTimeoutSeconds  
(선택 사항) 구성 요소가 시작되는 최대 시간(초)입니다. 이 제한 시간이 초과되면 구성 요소의 상태가 `ERRORED`으로 변경됩니다.  
기본값: `120`

**Example 예제: 구성 병합 업데이트(제한적 정책 사용)**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
다음 예제 구성에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 예제: 구성 병합 업데이트(허용적 정책 사용)**  <a name="client-device-auth-component-configuration-example-permissive"></a>
다음 예제 구성에서는 모든 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

**Example 예제: 구성 병합 업데이트(사물 이름 정책 사용)**  <a name="client-device-auth-component-configuration-example-mythingname"></a>
다음 예제 구성에서는 클라이언트 디바이스에서 클라이언트 디바이스의 사물 이름으로 시작하고 문자열 `topic`으로 끝나는 주제에 게시할 수 있습니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "myThing": {
        "selectionRule": "thingName: *",
        "policyName": "MyThingNamePolicy"
      }
    },
    "policies": {
      "MyThingNamePolicy": {
        "policyStatement": {
          "statementDescription": "mqtt publish",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:${iot:Connection.Thing.ThingName}/*/topic"
          ]
        }
      }
    }
  }
}
```

------
#### [ v2.4.5 ]

`deviceGroups`  
디바이스 그룹은 코어 디바이스와 연결하고 통신할 권한이 있는 클라이언트 디바이스 그룹입니다. 선택 규칙을 사용하여 클라이언트 디바이스 그룹을 식별하고 디바이스 그룹마다 권한을 지정하는 *클라이언트 디바이스 권한 부여 정책*을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`formatVersion`  
이 구성 객체의 형식 버전입니다.  
다음 옵션 중 하나를 선택합니다.  
+ `2021-03-05`  
`definitions`  
이 코어 디바이스의 디바이스 그룹. 각 정의에서는 클라이언트 디바이스가 그룹의 멤버인지 평가할 *선택 규칙*이 지정됩니다. 각 정의에서는 선택 규칙과 일치하는 클라이언트 디바이스에 적용할 권한 정책도 지정됩니다. 클라이언트 디바이스가 여러 디바이스 그룹의 멤버인 경우 디바이스의 권한은 각 그룹의 권한 정책으로 구성됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`groupNameKey`  
이 디바이스 그룹의 이름입니다. 이 디바이스 그룹을 식별하는 데 도움이 되는 이름으로 *groupNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`selectionRule`  
이 디바이스 그룹의 멤버인 클라이언트 디바이스가 지정되는 쿼리입니다. 클라이언트 디바이스가 연결되면 코어 디바이스에서는 이 선택 규칙을 평가하여 클라이언트 디바이스가 이 디바이스 그룹의 멤버인지 결정됩니다. 클라이언트 디바이스가 멤버인 경우 코어 디바이스에서는 이 디바이스 그룹의 정책을 사용하여 클라이언트 디바이스의 작업에 권한이 부여됩니다.  
각 선택 규칙은 클라이언트 디바이스와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 *선택 규칙 절*로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [AWS IoT 플릿 인덱싱 쿼리 구문](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)을 참조하세요.  
여러 클라이언트 디바이스가 하나의 선택 규칙 절과 일치되도록 와일드카드(`*`)를 사용합니다. 지정하는 문자열로 이름이 시작하거나 끝나는 클라이언트 디바이스와 일치하도록 사물 이름의 시작과 끝에 이 와일드카드를 사용할 수 있습니다. 모든 클라이언트 디바이스가 일치되도록 이 와일드카드를 사용할 수도 있습니다.  
콜론 문자(`:`)가 있는 값을 선택하려면 백슬래시 문자(`\`)로 콜론을 이스케이프합니다. JSON과 같은 형식에서는 백슬래시 문자를 이스케이프해야 하므로 콜론 문자 앞에 백슬래시 문자 2개를 입력합니다. 예를 들어 `thingName: MyTeam\\:ClientDevice1`를 지정하여 이름이 `MyTeam:ClientDevice1`인 사물을 선택합니다.
다음 선택기를 지정할 수 있습니다.  
+ `thingName` - 클라이언트 디바이스 사물의 이름입니다 AWS IoT .

**Example 선택 규칙 예제**  
다음 선택 규칙에서는 이름이 `MyClientDevice1` 또는 `MyClientDevice2`인 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 선택 규칙 예제(와일드카드 사용)**  
다음 선택 규칙에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice*
```

**Example 선택 규칙 예제(와일드카드 사용)**  
다음 선택 규칙에서는 이름이 `MyClientDevice`로 끝나는 클라이언트 디바이스가 일치됩니다.  

```
thingName: *MyClientDevice
```

**Example 선택 규칙 예제(모든 디바이스 일치)**  
다음 선택 규칙에서는 모든 클라이언트 디바이스가 일치됩니다.  

```
thingName: *
```  
`policyName`  
이 디바이스 그룹의 클라이언트 디바이스에 적용되는 권한 정책. `policies` 객체에서 정의하는 정책의 이름이 지정됩니다.  
`policies`  
코어 디바이스에 연결되는 클라이언트 디바이스에 대한 클라이언트 디바이스 권한 부여 정책입니다. 각 권한 부여 정책을 통해 작업 세트 및 클라이언트 디바이스에서 해당 작업을 수행할 수 있는 리소스가 지정됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`policyNameKey`  
이 권한 부여 정책의 이름. 이 권한 부여 정책을 식별하는 데 도움이 되는 이름으로 *policyNameKey*를 바꿉니다. 이 정책 이름을 사용하여 디바이스 그룹에 적용되는 정책을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`statementNameKey`  
이 정책 문의 이름입니다. 이 정책 문을 식별하는 데 도움이 되는 이름으로 *statementNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`operations`  
이 정책의 리소스에 허용되는 작업 목록입니다.  
다음과 같은 작업을 임의로 포함할 수 있습니다.  
+ `mqtt:connect` – 코어 디바이스에 연결하는 권한을 부여합니다. 코어 디바이스에 연결하려면 클라이언트 디바이스에 이 권한이 있어야 합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + `mqtt:clientId:deviceClientId` - 클라이언트 디바이스에서 코어 디바이스의 MQTT 브로커에 연결하는 데 사용되는 클라이언트 ID에 따라 액세스를 제한합니다. 사용할 클라이언트 ID로 *deviceClientId*를 바꿉니다.
+ `mqtt:publish` - 주제에 MQTT 메시지를 게시하는 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` - 클라이언트 디바이스에서 메시지가 게시되는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제로 *mqttTopic*을 바꿉니다.

    이 리소스에서는 MQTT 주제 와일드카드가 지원되지 않습니다.
+ `mqtt:subscribe` – 메시지를 수신할 MQTT 주제 필터를 구독할 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + <a name="client-device-authorization-policy-resource-mqtt-topicfilter"></a>`mqtt:topicfilter:mqttTopicFilter` - 클라이언트 디바이스에서 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제 필터로 *mqttTopicFilter*를 바꿉니다.

    이 리소스에서는 `+` 및 `#` MQTT 주제 와일드카드가 지원됩니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.

    클라이언트 디바이스에서는 사용자가 허용하는 정확한 주제 필터가 구독될 수 있습니다. 예를 들어 클라이언트 디바이스에 `mqtt:topicfilter:client/+/status` 리소스 구독을 허용하면 클라이언트 디바이스에서는 `client/+/status`가 구독될 수 있지만 `client/client1/status`은 구독될 수 없습니다.
와일드카드(`*`)를 지정하여 모든 작업에 대한 액세스를 허용할 수 있습니다.  
`resources`  
이 정책의 작업에 허용되는 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정합니다. 예를 들어 `mqtt:publish` 작업이 지정되는 정책에서 MQTT 주제 리소스(`mqtt:topic:mqttTopic`) 목록을 지정할 수 있습니다.  
와일드카드(`*`)를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다. 부분 리소스 식별자와 일치하도록 와일드카드(`*`)를 사용할 수 있습니다. 예를 들어 **"resources": "\$1"**는 지정할 수 있지만, **"resources": "mqtt:clientId:\$1"**는 지정할 수 없습니다.  
`statementDescription`  
(선택 사항) 이 정책 문에 대한 설명입니다.

`certificates`  <a name="client-device-auth-component-configuration-certificates"></a>
(선택 사항) 이 코어 디바이스의 인증서 구성 옵션입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`serverCertificateValiditySeconds`  
(선택 사항) 로컬 MQTT 서버 인증서가 만료되는 시간(초)입니다. 이 옵션을 구성하여 클라이언트 디바이스와 코어 디바이스의 연결 해제 및 재연결 빈도를 사용자 지정할 수 있습니다.  
이 구성 요소에서는 로컬 MQTT 서버 인증서가 만료 24시간 전에 교체됩니다. MQTT 브로커(예: [Moquette MQTT 브로커 구성 요소](mqtt-broker-moquette-component.md))에서는 새 인증서가 생성되어 다시 시작됩니다. 이 경우에는 이 코어 디바이스에 연결된 모든 클라이언트 디바이스의 연결이 해제됩니다. 짧은 기간 뒤에 코어 디바이스에 클라이언트 디바이스가 다시 연결될 수 있습니다.  
기본값: `604800`(7일)  
최솟값: `172800`(2일)  
최댓값: `864000`(10일)

`performance`  
(선택 사항) 이 코어 디바이스의 성능 구성 옵션입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`maxActiveAuthTokens`  
(선택 사항) 최대 활성 클라이언트 디바이스 권한 부여 토큰 수입니다. 이 수를 늘리면 다시 인증하지 않아도 더 많은 수의 클라이언트 디바이스가 단일 코어 디바이스에 연결될 수 있습니다.  
기본값: `2500`  
`cloudRequestQueueSize`  
(선택 사항)이 구성 요소가 AWS 클라우드 요청을 거부하기 전에 대기열에 추가할 최대 요청 수입니다.  
기본값: `100`  
`maxConcurrentCloudRequests`  
(선택 사항) AWS 클라우드에 보낼 최대 동시 요청 수입니다. 이 수를 늘려 많은 수의 클라이언트 디바이스를 연결하는 코어 디바이스의 인증 성능을 개선할 수 있습니다.  
기본값: `1`

`certificateAuthority`  
(선택 사항) 코어 디바이스 중간 기관을 자신의 중간 인증 기관으로 바꾸는 인증 기관 구성 옵션입니다.  
사용자 지정 인증 기관(CA)으로 Greengrass 코어 디바이스를 구성하고 동일한 CA를 사용하여 클라이언트 디바이스 인증서를 발급하는 경우 Greengrass에서는 클라이언트 디바이스 MQTT 작업에 대한 권한 부여 정책 확인이 우회됩니다. 클라이언트 디바이스 인증 구성 요소에서는 사용하도록 구성된 CA에서 서명한 인증서를 사용하는 클라이언트가 완전히 신뢰됩니다.  
사용자 지정 CA를 사용할 때 이 동작을 제한하려면 다른 CA 또는 중간 CA를 사용하여 클라이언트 디바이스를 생성하고 서명한 다음에 올바른 중간 CA를 가리키도록 `certificateUri` 및 `certificateChainUri` 필드를 조정합니다.
 이 객체에는 다음 정보가 포함됩니다.    
certificateUri  
인증서의 위치입니다. 하드웨어 보안 모듈에 저장된 인증서를 가리키는 파일 시스템 URI 또는 URI일 수 있습니다.  
`certificateChainUri`  
코어 디바이스 CA에 대한 인증서 체인의 위치입니다. 루트 CA로 돌아가는 전체 인증서 체인이어야 합니다. 하드웨어 보안 모듈에 저장된 인증서 체인을 가리키는 파일 시스템 URI 또는 URI일 수 있습니다.  
`privateKeyUri`  
코어 디바이스의 프라이빗 키 위치입니다. 하드웨어 보안 모듈에 저장된 인증서 프라이빗 키를 가리키는 파일 시스템 URI 또는 URI일 수 있습니다.

`security`  
(선택 사항) 이 코어 디바이스의 보안 구성 옵션입니다. 이 객체에는 다음 정보가 포함됩니다.    
`clientDeviceTrustDurationMinutes`  
코어 디바이스로 재인증해야 하기 전에 클라이언트 디바이스의 인증 정보를 신뢰할 수 있는 기간(분)입니다. 기본값은 1입니다.

`metrics`  
(선택 사항) 이 코어 디바이스의 지표 옵션입니다. 클라이언트 디바이스 인증에 오류가 있는 경우에만 오류 지표가 표시됩니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`disableMetrics`  
`disableMetrics` 필드가 `true`로 설정된 경우 클라이언트 디바이스 인증에서는 지표가 수집되지 않습니다.  
기본값: `false`  
`aggregatePeriodSeconds`  
클라이언트 디바이스에서 지표가 집계되어 원격 측정 에이전트로 보내지는 빈도가 결정되는 기간(초). 원격 측정 에이전트에서는 여전히 하루에 한 번씩 지표가 게시되기 때문에 지표가 게시되는 빈도는 변경되지 않습니다.  
기본값: `3600`

startupTimeoutSeconds  
(선택 사항) 구성 요소가 시작되는 최대 시간(초)입니다. 이 제한 시간이 초과되면 구성 요소의 상태가 `ERRORED`으로 변경됩니다.  
기본값: `120`

**Example 예제: 구성 병합 업데이트(제한적 정책 사용)**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
다음 예제 구성에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 예제: 구성 병합 업데이트(허용적 정책 사용)**  <a name="client-device-auth-component-configuration-example-permissive"></a>
다음 예제 구성에서는 모든 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

------
#### [ v2.4.2 - v2.4.4 ]

`deviceGroups`  <a name="client-device-auth-component-configuration-devicegroups"></a>
디바이스 그룹은 코어 디바이스와 연결하고 통신할 권한이 있는 클라이언트 디바이스 그룹입니다. 선택 규칙을 사용하여 클라이언트 디바이스 그룹을 식별하고 디바이스 그룹마다 권한을 지정하는 *클라이언트 디바이스 권한 부여 정책*을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`formatVersion`  
이 구성 객체의 형식 버전입니다.  
다음 옵션 중 하나를 선택합니다.  
+ `2021-03-05`  
`definitions`  
이 코어 디바이스의 디바이스 그룹. 각 정의에서는 클라이언트 디바이스가 그룹의 멤버인지 평가할 *선택 규칙*이 지정됩니다. 각 정의에서는 선택 규칙과 일치하는 클라이언트 디바이스에 적용할 권한 정책도 지정됩니다. 클라이언트 디바이스가 여러 디바이스 그룹의 멤버인 경우 디바이스의 권한은 각 그룹의 권한 정책으로 구성됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`groupNameKey`  
이 디바이스 그룹의 이름입니다. 이 디바이스 그룹을 식별하는 데 도움이 되는 이름으로 *groupNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`selectionRule`  
이 디바이스 그룹의 멤버인 클라이언트 디바이스가 지정되는 쿼리입니다. 클라이언트 디바이스가 연결되면 코어 디바이스에서는 이 선택 규칙을 평가하여 클라이언트 디바이스가 이 디바이스 그룹의 멤버인지 결정됩니다. 클라이언트 디바이스가 멤버인 경우 코어 디바이스에서는 이 디바이스 그룹의 정책을 사용하여 클라이언트 디바이스의 작업에 권한이 부여됩니다.  
각 선택 규칙은 클라이언트 디바이스와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 *선택 규칙 절*로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [AWS IoT 플릿 인덱싱 쿼리 구문](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)을 참조하세요.  
여러 클라이언트 디바이스가 하나의 선택 규칙 절과 일치되도록 와일드카드(`*`)를 사용합니다. 지정하는 문자열로 이름이 시작하는 클라이언트 디바이스와 일치하도록 사물 이름의 끝에 이 와일드카드를 사용할 수 있습니다. 모든 클라이언트 디바이스가 일치되도록 이 와일드카드를 사용할 수도 있습니다.  
콜론 문자(`:`)가 있는 값을 선택하려면 백슬래시 문자(`\\`)로 콜론을 이스케이프합니다. JSON과 같은 형식에서는 백슬래시 문자를 이스케이프해야 하므로 콜론 문자 앞에 백슬래시 문자 2개를 입력합니다. 예를 들어 `thingName: MyTeam\\\\:ClientDevice1`를 지정하여 이름이 `MyTeam:ClientDevice1`인 사물을 선택합니다.
다음 선택기를 지정할 수 있습니다.  
+ `thingName` - 클라이언트 디바이스의 AWS IoT 사물 이름입니다.

**Example 선택 규칙 예제**  
다음 선택 규칙에서는 이름이 `MyClientDevice1` 또는 `MyClientDevice2`인 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 선택 규칙 예제(와일드카드 사용)**  
다음 선택 규칙에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice*
```

**Example 선택 규칙 예제(모든 디바이스 일치)**  
다음 선택 규칙에서는 모든 클라이언트 디바이스가 일치됩니다.  

```
thingName: *
```  
`policyName`  
이 디바이스 그룹의 클라이언트 디바이스에 적용되는 권한 정책. `policies` 객체에서 정의하는 정책의 이름이 지정됩니다.  
`policies`  
코어 디바이스에 연결되는 클라이언트 디바이스에 대한 클라이언트 디바이스 권한 부여 정책입니다. 각 권한 부여 정책을 통해 작업 세트 및 클라이언트 디바이스에서 해당 작업을 수행할 수 있는 리소스가 지정됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`policyNameKey`  
이 권한 부여 정책의 이름. 이 권한 부여 정책을 식별하는 데 도움이 되는 이름으로 *policyNameKey*를 바꿉니다. 이 정책 이름을 사용하여 디바이스 그룹에 적용되는 정책을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`statementNameKey`  
이 정책 문의 이름입니다. 이 정책 문을 식별하는 데 도움이 되는 이름으로 *statementNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`operations`  
이 정책의 리소스에 허용되는 작업 목록입니다.  
다음과 같은 작업을 임의로 포함할 수 있습니다.  
+ `mqtt:connect` – 코어 디바이스에 연결하는 권한을 부여합니다. 코어 디바이스에 연결하려면 클라이언트 디바이스에 이 권한이 있어야 합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + `mqtt:clientId:deviceClientId` - 클라이언트 디바이스에서 코어 디바이스의 MQTT 브로커에 연결하는 데 사용되는 클라이언트 ID에 따라 액세스를 제한합니다. 사용할 클라이언트 ID로 *deviceClientId*를 바꿉니다.
+ `mqtt:publish` - 주제에 MQTT 메시지를 게시하는 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` - 클라이언트 디바이스에서 메시지가 게시되는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제로 *mqttTopic*을 바꿉니다.

    이 리소스에서는 MQTT 주제 와일드카드가 지원되지 않습니다.
+ `mqtt:subscribe` – 메시지를 수신할 MQTT 주제 필터를 구독할 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + <a name="client-device-authorization-policy-resource-mqtt-topicfilter"></a>`mqtt:topicfilter:mqttTopicFilter` - 클라이언트 디바이스에서 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제 필터로 *mqttTopicFilter*를 바꿉니다.

    이 리소스에서는 `+` 및 `#` MQTT 주제 와일드카드가 지원됩니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.

    클라이언트 디바이스에서는 사용자가 허용하는 정확한 주제 필터가 구독될 수 있습니다. 예를 들어 클라이언트 디바이스에 `mqtt:topicfilter:client/+/status` 리소스 구독을 허용하면 클라이언트 디바이스에서는 `client/+/status`가 구독될 수 있지만 `client/client1/status`은 구독될 수 없습니다.
와일드카드(`*`)를 지정하여 모든 작업에 대한 액세스를 허용할 수 있습니다.  
`resources`  
이 정책의 작업에 허용되는 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정합니다. 예를 들어 `mqtt:publish` 작업이 지정되는 정책에서 MQTT 주제 리소스(`mqtt:topic:mqttTopic`) 목록을 지정할 수 있습니다.  
와일드카드(`*`)를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다. 부분 리소스 식별자와 일치하도록 와일드카드(`*`)를 사용할 수 있습니다. 예를 들어 **"resources": "\$1"**는 지정할 수 있지만, **"resources": "mqtt:clientId:\$1"**는 지정할 수 없습니다.  
`statementDescription`  
(선택 사항) 이 정책 문에 대한 설명입니다.

`certificates`  <a name="client-device-auth-component-configuration-certificates"></a>
(선택 사항) 이 코어 디바이스의 인증서 구성 옵션입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`serverCertificateValiditySeconds`  
(선택 사항) 로컬 MQTT 서버 인증서가 만료되는 시간(초)입니다. 이 옵션을 구성하여 클라이언트 디바이스와 코어 디바이스의 연결 해제 및 재연결 빈도를 사용자 지정할 수 있습니다.  
이 구성 요소에서는 로컬 MQTT 서버 인증서가 만료 24시간 전에 교체됩니다. MQTT 브로커(예: [Moquette MQTT 브로커 구성 요소](mqtt-broker-moquette-component.md))에서는 새 인증서가 생성되어 다시 시작됩니다. 이 경우에는 이 코어 디바이스에 연결된 모든 클라이언트 디바이스의 연결이 해제됩니다. 짧은 기간 뒤에 코어 디바이스에 클라이언트 디바이스가 다시 연결될 수 있습니다.  
기본값: `604800`(7일)  
최솟값: `172800`(2일)  
최댓값: `864000`(10일)

`performance`  
(선택 사항) 이 코어 디바이스의 성능 구성 옵션입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`maxActiveAuthTokens`  
(선택 사항) 최대 활성 클라이언트 디바이스 권한 부여 토큰 수입니다. 이 수를 늘리면 다시 인증하지 않아도 더 많은 수의 클라이언트 디바이스가 단일 코어 디바이스에 연결될 수 있습니다.  
기본값: `2500`  
`cloudRequestQueueSize`  
(선택 사항)이 구성 요소가 AWS 클라우드 요청을 거부하기 전에 대기열에 추가할 최대 요청 수입니다.  
기본값: `100`  
`maxConcurrentCloudRequests`  
(선택 사항) AWS 클라우드에 보낼 최대 동시 요청 수입니다. 이 수를 늘려 많은 수의 클라이언트 디바이스를 연결하는 코어 디바이스의 인증 성능을 개선할 수 있습니다.  
기본값: `1`

`certificateAuthority`  
(선택 사항) 코어 디바이스 중간 기관을 자신의 중간 인증 기관으로 바꾸는 인증 기관 구성 옵션입니다.  
사용자 지정 인증 기관(CA)으로 Greengrass 코어 디바이스를 구성하고 동일한 CA를 사용하여 클라이언트 디바이스 인증서를 발급하는 경우 Greengrass에서는 클라이언트 디바이스 MQTT 작업에 대한 권한 부여 정책 확인이 우회됩니다. 클라이언트 디바이스 인증 구성 요소에서는 사용하도록 구성된 CA에서 서명한 인증서를 사용하는 클라이언트가 완전히 신뢰됩니다.  
사용자 지정 CA를 사용할 때 이 동작을 제한하려면 다른 CA 또는 중간 CA를 사용하여 클라이언트 디바이스를 생성하고 서명한 다음에 올바른 중간 CA를 가리키도록 `certificateUri` 및 `certificateChainUri` 필드를 조정합니다.
 이 객체에는 다음 정보가 포함됩니다.    
certificateUri  
인증서의 위치입니다. 하드웨어 보안 모듈에 저장된 인증서를 가리키는 파일 시스템 URI 또는 URI일 수 있습니다.  
`certificateChainUri`  
코어 디바이스 CA에 대한 인증서 체인의 위치입니다. 루트 CA로 돌아가는 전체 인증서 체인이어야 합니다. 하드웨어 보안 모듈에 저장된 인증서 체인을 가리키는 파일 시스템 URI 또는 URI일 수 있습니다.  
`privateKeyUri`  
코어 디바이스의 프라이빗 키 위치입니다. 하드웨어 보안 모듈에 저장된 인증서 프라이빗 키를 가리키는 파일 시스템 URI 또는 URI일 수 있습니다.

`security`  
(선택 사항) 이 코어 디바이스의 보안 구성 옵션입니다. 이 객체에는 다음 정보가 포함됩니다.    
`clientDeviceTrustDurationMinutes`  
코어 디바이스로 재인증해야 하기 전에 클라이언트 디바이스의 인증 정보를 신뢰할 수 있는 기간(분)입니다. 기본값은 1입니다.

`metrics`  
(선택 사항) 이 코어 디바이스의 지표 옵션입니다. 클라이언트 디바이스 인증에 오류가 있는 경우에만 오류 지표가 표시됩니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`disableMetrics`  
`disableMetrics` 필드가 `true`로 설정된 경우 클라이언트 디바이스 인증에서는 지표가 수집되지 않습니다.  
기본값: `false`  
`aggregatePeriodSeconds`  
클라이언트 디바이스에서 지표가 집계되어 원격 측정 에이전트로 보내지는 빈도가 결정되는 기간(초). 원격 측정 에이전트에서는 여전히 하루에 한 번씩 지표가 게시되기 때문에 지표가 게시되는 빈도는 변경되지 않습니다.  
기본값: `3600`

startupTimeoutSeconds  
(선택 사항) 구성 요소가 시작되는 최대 시간(초)입니다. 이 제한 시간이 초과되면 구성 요소의 상태가 `ERRORED`으로 변경됩니다.  
기본값: `120`

**Example 예제: 구성 병합 업데이트(제한적 정책 사용)**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
다음 예제 구성에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 예제: 구성 병합 업데이트(허용적 정책 사용)**  <a name="client-device-auth-component-configuration-example-permissive"></a>
다음 예제 구성에서는 모든 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

------
#### [ v2.4.0 - v2.4.1 ]

`deviceGroups`  <a name="client-device-auth-component-configuration-devicegroups"></a>
디바이스 그룹은 코어 디바이스와 연결하고 통신할 권한이 있는 클라이언트 디바이스 그룹입니다. 선택 규칙을 사용하여 클라이언트 디바이스 그룹을 식별하고 디바이스 그룹마다 권한을 지정하는 *클라이언트 디바이스 권한 부여 정책*을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`formatVersion`  
이 구성 객체의 형식 버전입니다.  
다음 옵션 중 하나를 선택합니다.  
+ `2021-03-05`  
`definitions`  
이 코어 디바이스의 디바이스 그룹. 각 정의에서는 클라이언트 디바이스가 그룹의 멤버인지 평가할 *선택 규칙*이 지정됩니다. 각 정의에서는 선택 규칙과 일치하는 클라이언트 디바이스에 적용할 권한 정책도 지정됩니다. 클라이언트 디바이스가 여러 디바이스 그룹의 멤버인 경우 디바이스의 권한은 각 그룹의 권한 정책으로 구성됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`groupNameKey`  
이 디바이스 그룹의 이름입니다. 이 디바이스 그룹을 식별하는 데 도움이 되는 이름으로 *groupNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`selectionRule`  
이 디바이스 그룹의 멤버인 클라이언트 디바이스가 지정되는 쿼리입니다. 클라이언트 디바이스가 연결되면 코어 디바이스에서는 이 선택 규칙을 평가하여 클라이언트 디바이스가 이 디바이스 그룹의 멤버인지 결정됩니다. 클라이언트 디바이스가 멤버인 경우 코어 디바이스에서는 이 디바이스 그룹의 정책을 사용하여 클라이언트 디바이스의 작업에 권한이 부여됩니다.  
각 선택 규칙은 클라이언트 디바이스와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 *선택 규칙 절*로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [AWS IoT 플릿 인덱싱 쿼리 구문](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)을 참조하세요.  
여러 클라이언트 디바이스가 하나의 선택 규칙 절과 일치되도록 와일드카드(`*`)를 사용합니다. 지정하는 문자열로 이름이 시작하는 클라이언트 디바이스와 일치하도록 사물 이름의 끝에 이 와일드카드를 사용할 수 있습니다. 모든 클라이언트 디바이스가 일치되도록 이 와일드카드를 사용할 수도 있습니다.  
콜론 문자(`:`)가 있는 값을 선택하려면 백슬래시 문자(`\\`)로 콜론을 이스케이프합니다. JSON과 같은 형식에서는 백슬래시 문자를 이스케이프해야 하므로 콜론 문자 앞에 백슬래시 문자 2개를 입력합니다. 예를 들어 `thingName: MyTeam\\\\:ClientDevice1`를 지정하여 이름이 `MyTeam:ClientDevice1`인 사물을 선택합니다.
다음 선택기를 지정할 수 있습니다.  
+ `thingName` - 클라이언트 디바이스의 AWS IoT 사물 이름입니다.

**Example 선택 규칙 예제**  
다음 선택 규칙에서는 이름이 `MyClientDevice1` 또는 `MyClientDevice2`인 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 선택 규칙 예제(와일드카드 사용)**  
다음 선택 규칙에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice*
```

**Example 선택 규칙 예제(모든 디바이스 일치)**  
다음 선택 규칙에서는 모든 클라이언트 디바이스가 일치됩니다.  

```
thingName: *
```  
`policyName`  
이 디바이스 그룹의 클라이언트 디바이스에 적용되는 권한 정책. `policies` 객체에서 정의하는 정책의 이름이 지정됩니다.  
`policies`  
코어 디바이스에 연결되는 클라이언트 디바이스에 대한 클라이언트 디바이스 권한 부여 정책입니다. 각 권한 부여 정책을 통해 작업 세트 및 클라이언트 디바이스에서 해당 작업을 수행할 수 있는 리소스가 지정됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`policyNameKey`  
이 권한 부여 정책의 이름. 이 권한 부여 정책을 식별하는 데 도움이 되는 이름으로 *policyNameKey*를 바꿉니다. 이 정책 이름을 사용하여 디바이스 그룹에 적용되는 정책을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`statementNameKey`  
이 정책 문의 이름입니다. 이 정책 문을 식별하는 데 도움이 되는 이름으로 *statementNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`operations`  
이 정책의 리소스에 허용되는 작업 목록입니다.  
다음과 같은 작업을 임의로 포함할 수 있습니다.  
+ `mqtt:connect` – 코어 디바이스에 연결하는 권한을 부여합니다. 코어 디바이스에 연결하려면 클라이언트 디바이스에 이 권한이 있어야 합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + `mqtt:clientId:deviceClientId` - 클라이언트 디바이스에서 코어 디바이스의 MQTT 브로커에 연결하는 데 사용되는 클라이언트 ID에 따라 액세스를 제한합니다. 사용할 클라이언트 ID로 *deviceClientId*를 바꿉니다.
+ `mqtt:publish` - 주제에 MQTT 메시지를 게시하는 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` - 클라이언트 디바이스에서 메시지가 게시되는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제로 *mqttTopic*을 바꿉니다.

    이 리소스에서는 MQTT 주제 와일드카드가 지원되지 않습니다.
+ `mqtt:subscribe` – 메시지를 수신할 MQTT 주제 필터를 구독할 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + <a name="client-device-authorization-policy-resource-mqtt-topicfilter"></a>`mqtt:topicfilter:mqttTopicFilter` - 클라이언트 디바이스에서 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제 필터로 *mqttTopicFilter*를 바꿉니다.

    이 리소스에서는 `+` 및 `#` MQTT 주제 와일드카드가 지원됩니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.

    클라이언트 디바이스에서는 사용자가 허용하는 정확한 주제 필터가 구독될 수 있습니다. 예를 들어 클라이언트 디바이스에 `mqtt:topicfilter:client/+/status` 리소스 구독을 허용하면 클라이언트 디바이스에서는 `client/+/status`가 구독될 수 있지만 `client/client1/status`은 구독될 수 없습니다.
와일드카드(`*`)를 지정하여 모든 작업에 대한 액세스를 허용할 수 있습니다.  
`resources`  
이 정책의 작업에 허용되는 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정합니다. 예를 들어 `mqtt:publish` 작업이 지정되는 정책에서 MQTT 주제 리소스(`mqtt:topic:mqttTopic`) 목록을 지정할 수 있습니다.  
와일드카드(`*`)를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다. 부분 리소스 식별자와 일치하도록 와일드카드(`*`)를 사용할 수 있습니다. 예를 들어 **"resources": "\$1"**는 지정할 수 있지만, **"resources": "mqtt:clientId:\$1"**는 지정할 수 없습니다.  
`statementDescription`  
(선택 사항) 이 정책 문에 대한 설명입니다.

`certificates`  <a name="client-device-auth-component-configuration-certificates"></a>
(선택 사항) 이 코어 디바이스의 인증서 구성 옵션입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`serverCertificateValiditySeconds`  
(선택 사항) 로컬 MQTT 서버 인증서가 만료되는 시간(초)입니다. 이 옵션을 구성하여 클라이언트 디바이스와 코어 디바이스의 연결 해제 및 재연결 빈도를 사용자 지정할 수 있습니다.  
이 구성 요소에서는 로컬 MQTT 서버 인증서가 만료 24시간 전에 교체됩니다. MQTT 브로커(예: [Moquette MQTT 브로커 구성 요소](mqtt-broker-moquette-component.md))에서는 새 인증서가 생성되어 다시 시작됩니다. 이 경우에는 이 코어 디바이스에 연결된 모든 클라이언트 디바이스의 연결이 해제됩니다. 짧은 기간 뒤에 코어 디바이스에 클라이언트 디바이스가 다시 연결될 수 있습니다.  
기본값: `604800`(7일)  
최솟값: `172800`(2일)  
최댓값: `864000`(10일)

`performance`  
(선택 사항) 이 코어 디바이스의 성능 구성 옵션입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`maxActiveAuthTokens`  
(선택 사항) 최대 활성 클라이언트 디바이스 권한 부여 토큰 수입니다. 이 수를 늘리면 다시 인증하지 않아도 더 많은 수의 클라이언트 디바이스가 단일 코어 디바이스에 연결될 수 있습니다.  
기본값: `2500`  
`cloudRequestQueueSize`  
(선택 사항)이 구성 요소가 AWS 클라우드 요청을 거부하기 전에 대기열에 추가할 최대 요청 수입니다.  
기본값: `100`  
`maxConcurrentCloudRequests`  
(선택 사항) AWS 클라우드에 보낼 최대 동시 요청 수입니다. 이 수를 늘려 많은 수의 클라이언트 디바이스를 연결하는 코어 디바이스의 인증 성능을 개선할 수 있습니다.  
기본값: `1`

`certificateAuthority`  
(선택 사항) 코어 디바이스 중간 기관을 자신의 중간 인증 기관으로 바꾸는 인증 기관 구성 옵션입니다. 이 객체에는 다음 정보가 포함됩니다.  
 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
certificateUri  
인증서의 위치입니다. 하드웨어 보안 모듈에 저장된 인증서를 가리키는 파일 시스템 URI 또는 URI일 수 있습니다.  
`certificateChainUri`  
코어 디바이스 CA에 대한 인증서 체인의 위치입니다. 루트 CA로 돌아가는 전체 인증서 체인이어야 합니다. 하드웨어 보안 모듈에 저장된 인증서 체인을 가리키는 파일 시스템 URI 또는 URI일 수 있습니다.  
`privateKeyUri`  
코어 디바이스의 프라이빗 키 위치입니다. 하드웨어 보안 모듈에 저장된 인증서 프라이빗 키를 가리키는 파일 시스템 URI 또는 URI일 수 있습니다.

`security`  
(선택 사항) 이 코어 디바이스의 보안 구성 옵션입니다. 이 객체에는 다음 정보가 포함됩니다.    
`clientDeviceTrustDurationMinutes`  
코어 디바이스로 재인증해야 하기 전에 클라이언트 디바이스의 인증 정보를 신뢰할 수 있는 기간(분)입니다. 기본값은 1입니다.

`metrics`  
(선택 사항) 이 코어 디바이스의 지표 옵션입니다. 클라이언트 디바이스 인증에 오류가 있는 경우에만 오류 지표가 표시됩니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`disableMetrics`  
`disableMetrics` 필드가 `true`로 설정된 경우 클라이언트 디바이스 인증에서는 지표가 수집되지 않습니다.  
기본값: `false`  
`aggregatePeriodSeconds`  
클라이언트 디바이스에서 지표가 집계되어 원격 측정 에이전트로 보내지는 빈도가 결정되는 기간(초). 원격 측정 에이전트에서는 여전히 하루에 한 번씩 지표가 게시되기 때문에 지표가 게시되는 빈도는 변경되지 않습니다.  
기본값: `3600`

**Example 예제: 구성 병합 업데이트(제한적 정책 사용)**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
다음 예제 구성에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 예제: 구성 병합 업데이트(허용적 정책 사용)**  <a name="client-device-auth-component-configuration-example-permissive"></a>
다음 예제 구성에서는 모든 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

------
#### [ v2.3.x ]

`deviceGroups`  <a name="client-device-auth-component-configuration-devicegroups"></a>
디바이스 그룹은 코어 디바이스와 연결하고 통신할 권한이 있는 클라이언트 디바이스 그룹입니다. 선택 규칙을 사용하여 클라이언트 디바이스 그룹을 식별하고 디바이스 그룹마다 권한을 지정하는 *클라이언트 디바이스 권한 부여 정책*을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`formatVersion`  
이 구성 객체의 형식 버전입니다.  
다음 옵션 중 하나를 선택합니다.  
+ `2021-03-05`  
`definitions`  
이 코어 디바이스의 디바이스 그룹. 각 정의에서는 클라이언트 디바이스가 그룹의 멤버인지 평가할 *선택 규칙*이 지정됩니다. 각 정의에서는 선택 규칙과 일치하는 클라이언트 디바이스에 적용할 권한 정책도 지정됩니다. 클라이언트 디바이스가 여러 디바이스 그룹의 멤버인 경우 디바이스의 권한은 각 그룹의 권한 정책으로 구성됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`groupNameKey`  
이 디바이스 그룹의 이름입니다. 이 디바이스 그룹을 식별하는 데 도움이 되는 이름으로 *groupNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`selectionRule`  
이 디바이스 그룹의 멤버인 클라이언트 디바이스가 지정되는 쿼리입니다. 클라이언트 디바이스가 연결되면 코어 디바이스에서는 이 선택 규칙을 평가하여 클라이언트 디바이스가 이 디바이스 그룹의 멤버인지 결정됩니다. 클라이언트 디바이스가 멤버인 경우 코어 디바이스에서는 이 디바이스 그룹의 정책을 사용하여 클라이언트 디바이스의 작업에 권한이 부여됩니다.  
각 선택 규칙은 클라이언트 디바이스와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 *선택 규칙 절*로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [AWS IoT 플릿 인덱싱 쿼리 구문](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)을 참조하세요.  
여러 클라이언트 디바이스가 하나의 선택 규칙 절과 일치되도록 와일드카드(`*`)를 사용합니다. 지정하는 문자열로 이름이 시작하는 클라이언트 디바이스와 일치하도록 사물 이름의 끝에 이 와일드카드를 사용할 수 있습니다. 모든 클라이언트 디바이스가 일치되도록 이 와일드카드를 사용할 수도 있습니다.  
콜론 문자(`:`)가 있는 값을 선택하려면 백슬래시 문자(`\\`)로 콜론을 이스케이프합니다. JSON과 같은 형식에서는 백슬래시 문자를 이스케이프해야 하므로 콜론 문자 앞에 백슬래시 문자 2개를 입력합니다. 예를 들어 `thingName: MyTeam\\\\:ClientDevice1`를 지정하여 이름이 `MyTeam:ClientDevice1`인 사물을 선택합니다.
다음 선택기를 지정할 수 있습니다.  
+ `thingName` - 클라이언트 디바이스의 AWS IoT 사물 이름입니다.

**Example 선택 규칙 예제**  
다음 선택 규칙에서는 이름이 `MyClientDevice1` 또는 `MyClientDevice2`인 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 선택 규칙 예제(와일드카드 사용)**  
다음 선택 규칙에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice*
```

**Example 선택 규칙 예제(모든 디바이스 일치)**  
다음 선택 규칙에서는 모든 클라이언트 디바이스가 일치됩니다.  

```
thingName: *
```  
`policyName`  
이 디바이스 그룹의 클라이언트 디바이스에 적용되는 권한 정책. `policies` 객체에서 정의하는 정책의 이름이 지정됩니다.  
`policies`  
코어 디바이스에 연결되는 클라이언트 디바이스에 대한 클라이언트 디바이스 권한 부여 정책입니다. 각 권한 부여 정책을 통해 작업 세트 및 클라이언트 디바이스에서 해당 작업을 수행할 수 있는 리소스가 지정됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`policyNameKey`  
이 권한 부여 정책의 이름. 이 권한 부여 정책을 식별하는 데 도움이 되는 이름으로 *policyNameKey*를 바꿉니다. 이 정책 이름을 사용하여 디바이스 그룹에 적용되는 정책을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`statementNameKey`  
이 정책 문의 이름입니다. 이 정책 문을 식별하는 데 도움이 되는 이름으로 *statementNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`operations`  
이 정책의 리소스에 허용되는 작업 목록입니다.  
다음과 같은 작업을 임의로 포함할 수 있습니다.  
+ `mqtt:connect` – 코어 디바이스에 연결하는 권한을 부여합니다. 코어 디바이스에 연결하려면 클라이언트 디바이스에 이 권한이 있어야 합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + `mqtt:clientId:deviceClientId` - 클라이언트 디바이스에서 코어 디바이스의 MQTT 브로커에 연결하는 데 사용되는 클라이언트 ID에 따라 액세스를 제한합니다. 사용할 클라이언트 ID로 *deviceClientId*를 바꿉니다.
+ `mqtt:publish` - 주제에 MQTT 메시지를 게시하는 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` - 클라이언트 디바이스에서 메시지가 게시되는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제로 *mqttTopic*을 바꿉니다.

    이 리소스에서는 MQTT 주제 와일드카드가 지원되지 않습니다.
+ `mqtt:subscribe` – 메시지를 수신할 MQTT 주제 필터를 구독할 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + <a name="client-device-authorization-policy-resource-mqtt-topicfilter"></a>`mqtt:topicfilter:mqttTopicFilter` - 클라이언트 디바이스에서 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제 필터로 *mqttTopicFilter*를 바꿉니다.

    이 리소스에서는 `+` 및 `#` MQTT 주제 와일드카드가 지원됩니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.

    클라이언트 디바이스에서는 사용자가 허용하는 정확한 주제 필터가 구독될 수 있습니다. 예를 들어 클라이언트 디바이스에 `mqtt:topicfilter:client/+/status` 리소스 구독을 허용하면 클라이언트 디바이스에서는 `client/+/status`가 구독될 수 있지만 `client/client1/status`은 구독될 수 없습니다.
와일드카드(`*`)를 지정하여 모든 작업에 대한 액세스를 허용할 수 있습니다.  
`resources`  
이 정책의 작업에 허용되는 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정합니다. 예를 들어 `mqtt:publish` 작업이 지정되는 정책에서 MQTT 주제 리소스(`mqtt:topic:mqttTopic`) 목록을 지정할 수 있습니다.  
와일드카드(`*`)를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다. 부분 리소스 식별자와 일치하도록 와일드카드(`*`)를 사용할 수 있습니다. 예를 들어 **"resources": "\$1"**는 지정할 수 있지만, **"resources": "mqtt:clientId:\$1"**는 지정할 수 없습니다.  
`statementDescription`  
(선택 사항) 이 정책 문에 대한 설명입니다.

`certificates`  <a name="client-device-auth-component-configuration-certificates"></a>
(선택 사항) 이 코어 디바이스의 인증서 구성 옵션입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`serverCertificateValiditySeconds`  
(선택 사항) 로컬 MQTT 서버 인증서가 만료되는 시간(초)입니다. 이 옵션을 구성하여 클라이언트 디바이스와 코어 디바이스의 연결 해제 및 재연결 빈도를 사용자 지정할 수 있습니다.  
이 구성 요소에서는 로컬 MQTT 서버 인증서가 만료 24시간 전에 교체됩니다. MQTT 브로커(예: [Moquette MQTT 브로커 구성 요소](mqtt-broker-moquette-component.md))에서는 새 인증서가 생성되어 다시 시작됩니다. 이 경우에는 이 코어 디바이스에 연결된 모든 클라이언트 디바이스의 연결이 해제됩니다. 짧은 기간 뒤에 코어 디바이스에 클라이언트 디바이스가 다시 연결될 수 있습니다.  
기본값: `604800`(7일)  
최솟값: `172800`(2일)  
최댓값: `864000`(10일)

`performance`  
(선택 사항) 이 코어 디바이스의 성능 구성 옵션입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`maxActiveAuthTokens`  
(선택 사항) 최대 활성 클라이언트 디바이스 권한 부여 토큰 수입니다. 이 수를 늘리면 다시 인증하지 않아도 더 많은 수의 클라이언트 디바이스가 단일 코어 디바이스에 연결될 수 있습니다.  
기본값: `2500`  
`cloudRequestQueueSize`  
(선택 사항)이 구성 요소가 AWS 클라우드 요청을 거부하기 전에 대기열에 추가할 최대 요청 수입니다.  
기본값: `100`  
`maxConcurrentCloudRequests`  
(선택 사항) AWS 클라우드에 보낼 최대 동시 요청 수입니다. 이 수를 늘려 많은 수의 클라이언트 디바이스를 연결하는 코어 디바이스의 인증 성능을 개선할 수 있습니다.  
기본값: `1`

`certificateAuthority`  
(선택 사항) 코어 디바이스 중간 기관을 자신의 중간 인증 기관으로 바꾸는 인증 기관 구성 옵션입니다. 이 객체에는 다음 정보가 포함됩니다.    
certificateUri  
인증서의 위치입니다. 하드웨어 보안 모듈에 저장된 인증서를 가리키는 파일 시스템 URI 또는 URI일 수 있습니다.  
`certificateChainUri`  
코어 디바이스 CA에 대한 인증서 체인의 위치입니다. 루트 CA로 돌아가는 전체 인증서 체인이어야 합니다. 하드웨어 보안 모듈에 저장된 인증서 체인을 가리키는 파일 시스템 URI 또는 URI일 수 있습니다.  
`privateKeyUri`  
코어 디바이스의 프라이빗 키 위치입니다. 하드웨어 보안 모듈에 저장된 인증서 프라이빗 키를 가리키는 파일 시스템 URI 또는 URI일 수 있습니다.

`security`  
(선택 사항) 이 코어 디바이스의 보안 구성 옵션입니다. 이 객체에는 다음 정보가 포함됩니다.    
`clientDeviceTrustDurationMinutes`  
코어 디바이스로 재인증해야 하기 전에 클라이언트 디바이스의 인증 정보를 신뢰할 수 있는 기간(분)입니다. 기본값은 1입니다.

**Example 예제: 구성 병합 업데이트(제한적 정책 사용)**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
다음 예제 구성에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 예제: 구성 병합 업데이트(허용적 정책 사용)**  <a name="client-device-auth-component-configuration-example-permissive"></a>
다음 예제 구성에서는 모든 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

------
#### [ v2.2.x ]

`deviceGroups`  <a name="client-device-auth-component-configuration-devicegroups"></a>
디바이스 그룹은 코어 디바이스와 연결하고 통신할 권한이 있는 클라이언트 디바이스 그룹입니다. 선택 규칙을 사용하여 클라이언트 디바이스 그룹을 식별하고 디바이스 그룹마다 권한을 지정하는 *클라이언트 디바이스 권한 부여 정책*을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`formatVersion`  
이 구성 객체의 형식 버전입니다.  
다음 옵션 중 하나를 선택합니다.  
+ `2021-03-05`  
`definitions`  
이 코어 디바이스의 디바이스 그룹. 각 정의에서는 클라이언트 디바이스가 그룹의 멤버인지 평가할 *선택 규칙*이 지정됩니다. 각 정의에서는 선택 규칙과 일치하는 클라이언트 디바이스에 적용할 권한 정책도 지정됩니다. 클라이언트 디바이스가 여러 디바이스 그룹의 멤버인 경우 디바이스의 권한은 각 그룹의 권한 정책으로 구성됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`groupNameKey`  
이 디바이스 그룹의 이름입니다. 이 디바이스 그룹을 식별하는 데 도움이 되는 이름으로 *groupNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`selectionRule`  
이 디바이스 그룹의 멤버인 클라이언트 디바이스가 지정되는 쿼리입니다. 클라이언트 디바이스가 연결되면 코어 디바이스에서는 이 선택 규칙을 평가하여 클라이언트 디바이스가 이 디바이스 그룹의 멤버인지 결정됩니다. 클라이언트 디바이스가 멤버인 경우 코어 디바이스에서는 이 디바이스 그룹의 정책을 사용하여 클라이언트 디바이스의 작업에 권한이 부여됩니다.  
각 선택 규칙은 클라이언트 디바이스와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 *선택 규칙 절*로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [AWS IoT 플릿 인덱싱 쿼리 구문](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)을 참조하세요.  
여러 클라이언트 디바이스가 하나의 선택 규칙 절과 일치되도록 와일드카드(`*`)를 사용합니다. 지정하는 문자열로 이름이 시작하는 클라이언트 디바이스와 일치하도록 사물 이름의 끝에 이 와일드카드를 사용할 수 있습니다. 모든 클라이언트 디바이스가 일치되도록 이 와일드카드를 사용할 수도 있습니다.  
콜론 문자(`:`)가 있는 값을 선택하려면 백슬래시 문자(`\\`)로 콜론을 이스케이프합니다. JSON과 같은 형식에서는 백슬래시 문자를 이스케이프해야 하므로 콜론 문자 앞에 백슬래시 문자 2개를 입력합니다. 예를 들어 `thingName: MyTeam\\\\:ClientDevice1`를 지정하여 이름이 `MyTeam:ClientDevice1`인 사물을 선택합니다.
다음 선택기를 지정할 수 있습니다.  
+ `thingName` - 클라이언트 디바이스의 AWS IoT 사물 이름입니다.

**Example 선택 규칙 예제**  
다음 선택 규칙에서는 이름이 `MyClientDevice1` 또는 `MyClientDevice2`인 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 선택 규칙 예제(와일드카드 사용)**  
다음 선택 규칙에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice*
```

**Example 선택 규칙 예제(모든 디바이스 일치)**  
다음 선택 규칙에서는 모든 클라이언트 디바이스가 일치됩니다.  

```
thingName: *
```  
`policyName`  
이 디바이스 그룹의 클라이언트 디바이스에 적용되는 권한 정책. `policies` 객체에서 정의하는 정책의 이름이 지정됩니다.  
`policies`  
코어 디바이스에 연결되는 클라이언트 디바이스에 대한 클라이언트 디바이스 권한 부여 정책입니다. 각 권한 부여 정책을 통해 작업 세트 및 클라이언트 디바이스에서 해당 작업을 수행할 수 있는 리소스가 지정됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`policyNameKey`  
이 권한 부여 정책의 이름. 이 권한 부여 정책을 식별하는 데 도움이 되는 이름으로 *policyNameKey*를 바꿉니다. 이 정책 이름을 사용하여 디바이스 그룹에 적용되는 정책을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`statementNameKey`  
이 정책 문의 이름입니다. 이 정책 문을 식별하는 데 도움이 되는 이름으로 *statementNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`operations`  
이 정책의 리소스에 허용되는 작업 목록입니다.  
다음과 같은 작업을 임의로 포함할 수 있습니다.  
+ `mqtt:connect` – 코어 디바이스에 연결하는 권한을 부여합니다. 코어 디바이스에 연결하려면 클라이언트 디바이스에 이 권한이 있어야 합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + `mqtt:clientId:deviceClientId` - 클라이언트 디바이스에서 코어 디바이스의 MQTT 브로커에 연결하는 데 사용되는 클라이언트 ID에 따라 액세스를 제한합니다. 사용할 클라이언트 ID로 *deviceClientId*를 바꿉니다.
+ `mqtt:publish` - 주제에 MQTT 메시지를 게시하는 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` - 클라이언트 디바이스에서 메시지가 게시되는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제로 *mqttTopic*을 바꿉니다.

    이 리소스에서는 MQTT 주제 와일드카드가 지원되지 않습니다.
+ `mqtt:subscribe` – 메시지를 수신할 MQTT 주제 필터를 구독할 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + <a name="client-device-authorization-policy-resource-mqtt-topicfilter"></a>`mqtt:topicfilter:mqttTopicFilter` - 클라이언트 디바이스에서 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제 필터로 *mqttTopicFilter*를 바꿉니다.

    이 리소스에서는 `+` 및 `#` MQTT 주제 와일드카드가 지원됩니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.

    클라이언트 디바이스에서는 사용자가 허용하는 정확한 주제 필터가 구독될 수 있습니다. 예를 들어 클라이언트 디바이스에 `mqtt:topicfilter:client/+/status` 리소스 구독을 허용하면 클라이언트 디바이스에서는 `client/+/status`가 구독될 수 있지만 `client/client1/status`은 구독될 수 없습니다.
와일드카드(`*`)를 지정하여 모든 작업에 대한 액세스를 허용할 수 있습니다.  
`resources`  
이 정책의 작업에 허용되는 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정합니다. 예를 들어 `mqtt:publish` 작업이 지정되는 정책에서 MQTT 주제 리소스(`mqtt:topic:mqttTopic`) 목록을 지정할 수 있습니다.  
와일드카드(`*`)를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다. 부분 리소스 식별자와 일치하도록 와일드카드(`*`)를 사용할 수 있습니다. 예를 들어 **"resources": "\$1"**는 지정할 수 있지만, **"resources": "mqtt:clientId:\$1"**는 지정할 수 없습니다.  
`statementDescription`  
(선택 사항) 이 정책 문에 대한 설명입니다.

`certificates`  <a name="client-device-auth-component-configuration-certificates"></a>
(선택 사항) 이 코어 디바이스의 인증서 구성 옵션입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`serverCertificateValiditySeconds`  
(선택 사항) 로컬 MQTT 서버 인증서가 만료되는 시간(초)입니다. 이 옵션을 구성하여 클라이언트 디바이스와 코어 디바이스의 연결 해제 및 재연결 빈도를 사용자 지정할 수 있습니다.  
이 구성 요소에서는 로컬 MQTT 서버 인증서가 만료 24시간 전에 교체됩니다. MQTT 브로커(예: [Moquette MQTT 브로커 구성 요소](mqtt-broker-moquette-component.md))에서는 새 인증서가 생성되어 다시 시작됩니다. 이 경우에는 이 코어 디바이스에 연결된 모든 클라이언트 디바이스의 연결이 해제됩니다. 짧은 기간 뒤에 코어 디바이스에 클라이언트 디바이스가 다시 연결될 수 있습니다.  
기본값: `604800`(7일)  
최솟값: `172800`(2일)  
최댓값: `864000`(10일)

`performance`  
(선택 사항) 이 코어 디바이스의 성능 구성 옵션입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`maxActiveAuthTokens`  
(선택 사항) 최대 활성 클라이언트 디바이스 권한 부여 토큰 수입니다. 이 수를 늘리면 다시 인증하지 않아도 더 많은 수의 클라이언트 디바이스가 단일 코어 디바이스에 연결될 수 있습니다.  
기본값: `2500`  
`cloudRequestQueueSize`  
(선택 사항)이 구성 요소가 AWS 클라우드 요청을 거부하기 전에 대기열에 추가할 최대 요청 수입니다.  
기본값: `100`  
`maxConcurrentCloudRequests`  
(선택 사항) AWS 클라우드에 보낼 최대 동시 요청 수입니다. 이 수를 늘려 많은 수의 클라이언트 디바이스를 연결하는 코어 디바이스의 인증 성능을 개선할 수 있습니다.  
기본값: `1`

**Example 예제: 구성 병합 업데이트(제한적 정책 사용)**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
다음 예제 구성에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 예제: 구성 병합 업데이트(허용적 정책 사용)**  <a name="client-device-auth-component-configuration-example-permissive"></a>
다음 예제 구성에서는 모든 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

------
#### [ v2.1.x ]

`deviceGroups`  <a name="client-device-auth-component-configuration-devicegroups"></a>
디바이스 그룹은 코어 디바이스와 연결하고 통신할 권한이 있는 클라이언트 디바이스 그룹입니다. 선택 규칙을 사용하여 클라이언트 디바이스 그룹을 식별하고 디바이스 그룹마다 권한을 지정하는 *클라이언트 디바이스 권한 부여 정책*을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`formatVersion`  
이 구성 객체의 형식 버전입니다.  
다음 옵션 중 하나를 선택합니다.  
+ `2021-03-05`  
`definitions`  
이 코어 디바이스의 디바이스 그룹. 각 정의에서는 클라이언트 디바이스가 그룹의 멤버인지 평가할 *선택 규칙*이 지정됩니다. 각 정의에서는 선택 규칙과 일치하는 클라이언트 디바이스에 적용할 권한 정책도 지정됩니다. 클라이언트 디바이스가 여러 디바이스 그룹의 멤버인 경우 디바이스의 권한은 각 그룹의 권한 정책으로 구성됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`groupNameKey`  
이 디바이스 그룹의 이름입니다. 이 디바이스 그룹을 식별하는 데 도움이 되는 이름으로 *groupNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`selectionRule`  
이 디바이스 그룹의 멤버인 클라이언트 디바이스가 지정되는 쿼리입니다. 클라이언트 디바이스가 연결되면 코어 디바이스에서는 이 선택 규칙을 평가하여 클라이언트 디바이스가 이 디바이스 그룹의 멤버인지 결정됩니다. 클라이언트 디바이스가 멤버인 경우 코어 디바이스에서는 이 디바이스 그룹의 정책을 사용하여 클라이언트 디바이스의 작업에 권한이 부여됩니다.  
각 선택 규칙은 클라이언트 디바이스와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 *선택 규칙 절*로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [AWS IoT 플릿 인덱싱 쿼리 구문](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)을 참조하세요.  
여러 클라이언트 디바이스가 하나의 선택 규칙 절과 일치되도록 와일드카드(`*`)를 사용합니다. 지정하는 문자열로 이름이 시작하는 클라이언트 디바이스와 일치하도록 사물 이름의 끝에 이 와일드카드를 사용할 수 있습니다. 모든 클라이언트 디바이스가 일치되도록 이 와일드카드를 사용할 수도 있습니다.  
콜론 문자(`:`)가 있는 값을 선택하려면 백슬래시 문자(`\\`)로 콜론을 이스케이프합니다. JSON과 같은 형식에서는 백슬래시 문자를 이스케이프해야 하므로 콜론 문자 앞에 백슬래시 문자 2개를 입력합니다. 예를 들어 `thingName: MyTeam\\\\:ClientDevice1`를 지정하여 이름이 `MyTeam:ClientDevice1`인 사물을 선택합니다.
다음 선택기를 지정할 수 있습니다.  
+ `thingName` - 클라이언트 디바이스의 AWS IoT 사물 이름입니다.

**Example 선택 규칙 예제**  
다음 선택 규칙에서는 이름이 `MyClientDevice1` 또는 `MyClientDevice2`인 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 선택 규칙 예제(와일드카드 사용)**  
다음 선택 규칙에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice*
```

**Example 선택 규칙 예제(모든 디바이스 일치)**  
다음 선택 규칙에서는 모든 클라이언트 디바이스가 일치됩니다.  

```
thingName: *
```  
`policyName`  
이 디바이스 그룹의 클라이언트 디바이스에 적용되는 권한 정책. `policies` 객체에서 정의하는 정책의 이름이 지정됩니다.  
`policies`  
코어 디바이스에 연결되는 클라이언트 디바이스에 대한 클라이언트 디바이스 권한 부여 정책입니다. 각 권한 부여 정책을 통해 작업 세트 및 클라이언트 디바이스에서 해당 작업을 수행할 수 있는 리소스가 지정됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`policyNameKey`  
이 권한 부여 정책의 이름. 이 권한 부여 정책을 식별하는 데 도움이 되는 이름으로 *policyNameKey*를 바꿉니다. 이 정책 이름을 사용하여 디바이스 그룹에 적용되는 정책을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`statementNameKey`  
이 정책 문의 이름입니다. 이 정책 문을 식별하는 데 도움이 되는 이름으로 *statementNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`operations`  
이 정책의 리소스에 허용되는 작업 목록입니다.  
다음과 같은 작업을 임의로 포함할 수 있습니다.  
+ `mqtt:connect` – 코어 디바이스에 연결하는 권한을 부여합니다. 코어 디바이스에 연결하려면 클라이언트 디바이스에 이 권한이 있어야 합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + `mqtt:clientId:deviceClientId` - 클라이언트 디바이스에서 코어 디바이스의 MQTT 브로커에 연결하는 데 사용되는 클라이언트 ID에 따라 액세스를 제한합니다. 사용할 클라이언트 ID로 *deviceClientId*를 바꿉니다.
+ `mqtt:publish` - 주제에 MQTT 메시지를 게시하는 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` - 클라이언트 디바이스에서 메시지가 게시되는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제로 *mqttTopic*을 바꿉니다.

    이 리소스에서는 MQTT 주제 와일드카드가 지원되지 않습니다.
+ `mqtt:subscribe` – 메시지를 수신할 MQTT 주제 필터를 구독할 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + <a name="client-device-authorization-policy-resource-mqtt-topicfilter"></a>`mqtt:topicfilter:mqttTopicFilter` - 클라이언트 디바이스에서 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제 필터로 *mqttTopicFilter*를 바꿉니다.

    이 리소스에서는 `+` 및 `#` MQTT 주제 와일드카드가 지원됩니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.

    클라이언트 디바이스에서는 사용자가 허용하는 정확한 주제 필터가 구독될 수 있습니다. 예를 들어 클라이언트 디바이스에 `mqtt:topicfilter:client/+/status` 리소스 구독을 허용하면 클라이언트 디바이스에서는 `client/+/status`가 구독될 수 있지만 `client/client1/status`은 구독될 수 없습니다.
와일드카드(`*`)를 지정하여 모든 작업에 대한 액세스를 허용할 수 있습니다.  
`resources`  
이 정책의 작업에 허용되는 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정합니다. 예를 들어 `mqtt:publish` 작업이 지정되는 정책에서 MQTT 주제 리소스(`mqtt:topic:mqttTopic`) 목록을 지정할 수 있습니다.  
와일드카드(`*`)를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다. 부분 리소스 식별자와 일치하도록 와일드카드(`*`)를 사용할 수 있습니다. 예를 들어 **"resources": "\$1"**는 지정할 수 있지만, **"resources": "mqtt:clientId:\$1"**는 지정할 수 없습니다.  
`statementDescription`  
(선택 사항) 이 정책 문에 대한 설명입니다.

`certificates`  <a name="client-device-auth-component-configuration-certificates"></a>
(선택 사항) 이 코어 디바이스의 인증서 구성 옵션입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`serverCertificateValiditySeconds`  
(선택 사항) 로컬 MQTT 서버 인증서가 만료되는 시간(초)입니다. 이 옵션을 구성하여 클라이언트 디바이스와 코어 디바이스의 연결 해제 및 재연결 빈도를 사용자 지정할 수 있습니다.  
이 구성 요소에서는 로컬 MQTT 서버 인증서가 만료 24시간 전에 교체됩니다. MQTT 브로커(예: [Moquette MQTT 브로커 구성 요소](mqtt-broker-moquette-component.md))에서는 새 인증서가 생성되어 다시 시작됩니다. 이 경우에는 이 코어 디바이스에 연결된 모든 클라이언트 디바이스의 연결이 해제됩니다. 짧은 기간 뒤에 코어 디바이스에 클라이언트 디바이스가 다시 연결될 수 있습니다.  
기본값: `604800`(7일)  
최솟값: `172800`(2일)  
최댓값: `864000`(10일)

**Example 예제: 구성 병합 업데이트(제한적 정책 사용)**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
다음 예제 구성에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 예제: 구성 병합 업데이트(허용적 정책 사용)**  <a name="client-device-auth-component-configuration-example-permissive"></a>
다음 예제 구성에서는 모든 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

------
#### [ v2.0.x ]

`deviceGroups`  <a name="client-device-auth-component-configuration-devicegroups"></a>
디바이스 그룹은 코어 디바이스와 연결하고 통신할 권한이 있는 클라이언트 디바이스 그룹입니다. 선택 규칙을 사용하여 클라이언트 디바이스 그룹을 식별하고 디바이스 그룹마다 권한을 지정하는 *클라이언트 디바이스 권한 부여 정책*을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`formatVersion`  
이 구성 객체의 형식 버전입니다.  
다음 옵션 중 하나를 선택합니다.  
+ `2021-03-05`  
`definitions`  
이 코어 디바이스의 디바이스 그룹. 각 정의에서는 클라이언트 디바이스가 그룹의 멤버인지 평가할 *선택 규칙*이 지정됩니다. 각 정의에서는 선택 규칙과 일치하는 클라이언트 디바이스에 적용할 권한 정책도 지정됩니다. 클라이언트 디바이스가 여러 디바이스 그룹의 멤버인 경우 디바이스의 권한은 각 그룹의 권한 정책으로 구성됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`groupNameKey`  
이 디바이스 그룹의 이름입니다. 이 디바이스 그룹을 식별하는 데 도움이 되는 이름으로 *groupNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`selectionRule`  
이 디바이스 그룹의 멤버인 클라이언트 디바이스가 지정되는 쿼리입니다. 클라이언트 디바이스가 연결되면 코어 디바이스에서는 이 선택 규칙을 평가하여 클라이언트 디바이스가 이 디바이스 그룹의 멤버인지 결정됩니다. 클라이언트 디바이스가 멤버인 경우 코어 디바이스에서는 이 디바이스 그룹의 정책을 사용하여 클라이언트 디바이스의 작업에 권한이 부여됩니다.  
각 선택 규칙은 클라이언트 디바이스와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 *선택 규칙 절*로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [AWS IoT 플릿 인덱싱 쿼리 구문](https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)을 참조하세요.  
여러 클라이언트 디바이스가 하나의 선택 규칙 절과 일치되도록 와일드카드(`*`)를 사용합니다. 지정하는 문자열로 이름이 시작하는 클라이언트 디바이스와 일치하도록 사물 이름의 끝에 이 와일드카드를 사용할 수 있습니다. 모든 클라이언트 디바이스가 일치되도록 이 와일드카드를 사용할 수도 있습니다.  
콜론 문자(`:`)가 있는 값을 선택하려면 백슬래시 문자(`\\`)로 콜론을 이스케이프합니다. JSON과 같은 형식에서는 백슬래시 문자를 이스케이프해야 하므로 콜론 문자 앞에 백슬래시 문자 2개를 입력합니다. 예를 들어 `thingName: MyTeam\\\\:ClientDevice1`를 지정하여 이름이 `MyTeam:ClientDevice1`인 사물을 선택합니다.
다음 선택기를 지정할 수 있습니다.  
+ `thingName` - 클라이언트 디바이스의 AWS IoT 사물 이름입니다.

**Example 선택 규칙 예제**  
다음 선택 규칙에서는 이름이 `MyClientDevice1` 또는 `MyClientDevice2`인 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice1 OR thingName: MyClientDevice2
```

**Example 선택 규칙 예제(와일드카드 사용)**  
다음 선택 규칙에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스가 일치됩니다.  

```
thingName: MyClientDevice*
```

**Example 선택 규칙 예제(모든 디바이스 일치)**  
다음 선택 규칙에서는 모든 클라이언트 디바이스가 일치됩니다.  

```
thingName: *
```  
`policyName`  
이 디바이스 그룹의 클라이언트 디바이스에 적용되는 권한 정책. `policies` 객체에서 정의하는 정책의 이름이 지정됩니다.  
`policies`  
코어 디바이스에 연결되는 클라이언트 디바이스에 대한 클라이언트 디바이스 권한 부여 정책입니다. 각 권한 부여 정책을 통해 작업 세트 및 클라이언트 디바이스에서 해당 작업을 수행할 수 있는 리소스가 지정됩니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`policyNameKey`  
이 권한 부여 정책의 이름. 이 권한 부여 정책을 식별하는 데 도움이 되는 이름으로 *policyNameKey*를 바꿉니다. 이 정책 이름을 사용하여 디바이스 그룹에 적용되는 정책을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`statementNameKey`  
이 정책 문의 이름입니다. 이 정책 문을 식별하는 데 도움이 되는 이름으로 *statementNameKey*를 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`operations`  
이 정책의 리소스에 허용되는 작업 목록입니다.  
다음과 같은 작업을 임의로 포함할 수 있습니다.  
+ `mqtt:connect` – 코어 디바이스에 연결하는 권한을 부여합니다. 코어 디바이스에 연결하려면 클라이언트 디바이스에 이 권한이 있어야 합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + `mqtt:clientId:deviceClientId` - 클라이언트 디바이스에서 코어 디바이스의 MQTT 브로커에 연결하는 데 사용되는 클라이언트 ID에 따라 액세스를 제한합니다. 사용할 클라이언트 ID로 *deviceClientId*를 바꿉니다.
+ `mqtt:publish` - 주제에 MQTT 메시지를 게시하는 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + <a name="client-device-authorization-policy-resource-mqtt-topic"></a>`mqtt:topic:mqttTopic` - 클라이언트 디바이스에서 메시지가 게시되는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제로 *mqttTopic*을 바꿉니다.

    이 리소스에서는 MQTT 주제 와일드카드가 지원되지 않습니다.
+ `mqtt:subscribe` – 메시지를 수신할 MQTT 주제 필터를 구독할 권한을 부여합니다.

  이 작업에서는 다음과 같은 리소스가 지원됩니다.
  + <a name="client-device-authorization-policy-resource-mqtt-topicfilter"></a>`mqtt:topicfilter:mqttTopicFilter` - 클라이언트 디바이스에서 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. 사용할 주제 필터로 *mqttTopicFilter*를 바꿉니다.

    이 리소스에서는 `+` 및 `#` MQTT 주제 와일드카드가 지원됩니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.

    클라이언트 디바이스에서는 사용자가 허용하는 정확한 주제 필터가 구독될 수 있습니다. 예를 들어 클라이언트 디바이스에 `mqtt:topicfilter:client/+/status` 리소스 구독을 허용하면 클라이언트 디바이스에서는 `client/+/status`가 구독될 수 있지만 `client/client1/status`은 구독될 수 없습니다.
와일드카드(`*`)를 지정하여 모든 작업에 대한 액세스를 허용할 수 있습니다.  
`resources`  
이 정책의 작업에 허용되는 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정합니다. 예를 들어 `mqtt:publish` 작업이 지정되는 정책에서 MQTT 주제 리소스(`mqtt:topic:mqttTopic`) 목록을 지정할 수 있습니다.  
와일드카드(`*`)를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다. 부분 리소스 식별자와 일치하도록 와일드카드(`*`)를 사용할 수 있습니다. 예를 들어 **"resources": "\$1"**는 지정할 수 있지만, **"resources": "mqtt:clientId:\$1"**는 지정할 수 없습니다.  
`statementDescription`  
(선택 사항) 이 정책 문에 대한 설명입니다.

**Example 예제: 구성 병합 업데이트(제한적 정책 사용)**  <a name="client-device-auth-component-configuration-example-restrictive"></a>
다음 예제 구성에서는 이름이 `MyClientDevice`로 시작하는 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyDeviceGroup": {
        "selectionRule": "thingName: MyClientDevice*",
        "policyName": "MyRestrictivePolicy"
      }
    },
    "policies": {
      "MyRestrictivePolicy": {
        "AllowConnect": {
          "statementDescription": "Allow client devices to connect.",
          "operations": [
            "mqtt:connect"
          ],
          "resources": [
            "*"
          ]
        },
        "AllowPublish": {
          "statementDescription": "Allow client devices to publish on test/topic.",
          "operations": [
            "mqtt:publish"
          ],
          "resources": [
            "mqtt:topic:test/topic"
          ]
        },
        "AllowSubscribe": {
          "statementDescription": "Allow client devices to subscribe to test/topic/response.",
          "operations": [
            "mqtt:subscribe"
          ],
          "resources": [
            "mqtt:topicfilter:test/topic/response"
          ]
        }
      }
    }
  }
}
```

**Example 예제: 구성 병합 업데이트(허용적 정책 사용)**  <a name="client-device-auth-component-configuration-example-permissive"></a>
다음 예제 구성에서는 모든 클라이언트 디바이스의 연결 및 모든 주제 게시/구독이 허용되도록 지정됩니다.  

```
{
  "deviceGroups": {
    "formatVersion": "2021-03-05",
    "definitions": {
      "MyPermissiveDeviceGroup": {
        "selectionRule": "thingName: *",
        "policyName": "MyPermissivePolicy"
      }
    },
    "policies": {
      "MyPermissivePolicy": {
        "AllowAll": {
          "statementDescription": "Allow client devices to perform all actions.",
          "operations": [
            "*"
          ],
          "resources": [
            "*"
          ]
        }
      }
    }
  }
}
```

------

## 로컬 로그 파일
<a name="client-device-auth-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="client-device-auth-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.5.5  |  Greengrass nucleus 버전 2.16.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.4  | Greengrass nucleus 버전 2.15.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.5.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.5.2  |  Greengrass nucleus 버전 2.14.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.5.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.4.5  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/client-device-auth-component.html) | 
|  2.4.4  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.4.3  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.4.2  |  <a name="changelog-client-device-auth-2.4.2"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.4.1  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.4.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.3.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.3.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.3.0  |   더는 이 버전을 사용할 수 없습니다. 이 버전의 개선 사항은 이 구성 요소의 이후 버전에서 사용할 수 있습니다.  새로운 기능 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.2.3  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.2.1  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.2.0  |  <a name="changelog-client-device-auth-2.2.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.0.4  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/client-device-auth-component.html)  | 
|  2.0.2  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.1  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.0  |  초기 버전입니다.  | 

# CloudWatch 지표
<a name="cloudwatch-metrics-component"></a>

Amazon CloudWatch 지표 구성 요소(`aws.greengrass.Cloudwatch`)에서는 Greengrass 코어 디바이스의 사용자 지정 지표를 Amazon CloudWatch에 게시합니다. 구성 요소를 사용하면 Greengrass 코어 디바이스의 환경 모니터링 및 분석에 사용할 수 있는 CloudWatch 지표를 구성 요소에서 게시할 수 있습니다. 자세한 설명은 *Amazon CloudWatch 사용자 가이드*에서 [Amazon CloudWatch 지표 사용하기](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/working_with_metrics.html)를 참조하세요.

이 구성 요소로 CloudWatch 지표를 게시하려면 이 구성 요소에서 구독하는 주제에 메시지를 게시합니다. 기본적으로 이 구성 요소에서는 `cloudwatch/metric/put` [로컬 게시/구독](ipc-publish-subscribe.md) 주제를 구독합니다. 이 구성 요소를 배포할 때 AWS IoT Core MQTT 주제를 포함한 다른 주제를 지정할 수 있습니다.

이 구성 요소에서는 동일한 네임스페이스에 있는 지표를 배치 처리하며 정기적으로 CloudWatch에 게시합니다.

**참고**  
이 구성 요소는 AWS IoT Greengrass V1의 CloudWatch 지표 커넥터와 유사한 기능을 제공합니다. 자세한 내용은 *AWS IoT Greengrass V1 개발자 안내서*의 [CloudWatch 지표 커넥터](https://docs.aws.amazon.com/greengrass/latest/developerguide/cloudwatch-metrics-connector.html)를 참조하세요.

**Topics**
+ [버전](#cloudwatch-metrics-component-versions)
+ [Type](#cloudwatch-metrics-component-type)
+ [운영 체제](#cloudwatch-metrics-component-os-support)
+ [요구 사항](#cloudwatch-metrics-component-requirements)
+ [종속성](#cloudwatch-metrics-component-dependencies)
+ [구성](#cloudwatch-metrics-component-configuration)
+ [입력 데이터](#cloudwatch-metrics-component-input-data)
+ [출력 데이터](#cloudwatch-metrics-component-output-data)
+ [라이선스](#cloudwatch-metrics-component-licenses)
+ [로컬 로그 파일](#cloudwatch-metrics-component-log-file)
+ [Changelog](#cloudwatch-metrics-component-changelog)
+ [다음 사항도 참조하세요.](#cloudwatch-metrics-component-see-also)

## 버전
<a name="cloudwatch-metrics-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 3.2.x
+ 3.1.x
+ 3.0.x
+ 2.1.x
+ 2.0.x

각 구성 요소 버전의 변경 사항에 대한 내용은 [changelog](#cloudwatch-metrics-component-changelog)를 참조하세요.

## Type
<a name="cloudwatch-metrics-component-type"></a>

------
#### [ v3.x ]

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

------
#### [ v2.x ]

<a name="public-component-type-lambda"></a>이 <a name="public-component-type-lambda-phrase"></a>구성 요소는 Lambda 구성 요소(`aws.greengrass.lambda`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)에서는 [Lambda 런처 구성 요소](lambda-launcher-component.md)를 사용하여 이 구성 요소의 Lambda 함수를 실행합니다.

------

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="cloudwatch-metrics-component-os-support"></a>

------
#### [ v3.x ]

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

------
#### [ v2.x ]

이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.

------

## 요구 사항
<a name="cloudwatch-metrics-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.

------
#### [ 3.x ]
+ <a name="public-component-python3-requirement"></a>코어 장치에 설치되고 PATH 환경 변수에 추가된 [Python](https://www.python.org/) 버전 3.7입니다.
+ 다음 예제 IAM 정책에 표시된 대로 [Greengrass 디바이스 역할](device-service-role.md)에서는 `cloudwatch:PutMetricData` 작업이 허용되어야 합니다.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "cloudwatch:PutMetricData"
        ],
        "Effect": "Allow",
        "Resource": "*"
      }
    ]
  }
  ```

------

  자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [Amazon CloudWatch 권한 참조](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/permissions-reference-cw.html)를 참조하세요.

------
#### [ 2.x ]
+ <a name="core-device-lambda-function-requirements"></a>Lambda 함수를 실행하려면 코어 디바이스가 요구 사항을 충족해야 합니다. 코어 디바이스에서 컨테이너화된 Lambda 함수를 실행하려면 디바이스가 요구 사항을 충족해야 합니다. 자세한 내용은 [Lambda 함수 요구 사항](setting-up.md#greengrass-v2-lambda-requirements) 단원을 참조하십시오.
+ <a name="public-component-python3-requirement"></a>코어 장치에 설치되고 PATH 환경 변수에 추가된 [Python](https://www.python.org/) 버전 3.7입니다.
+ 다음 예제 IAM 정책에 표시된 대로 [Greengrass 디바이스 역할](device-service-role.md)에서는 `cloudwatch:PutMetricData` 작업이 허용되어야 합니다.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "cloudwatch:PutMetricData"
        ],
        "Effect": "Allow",
        "Resource": "*"
      }
    ]
  }
  ```

------

  자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [Amazon CloudWatch 권한 참조](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/permissions-reference-cw.html)를 참조하세요.
+ <a name="connector-component-legacy-subscription-router-dependency"></a>이 구성 요소의 출력 데이터를 수신하려면 이 구성 요소를 배포할 때 [레거시 구독 라우터 구성 요소](legacy-subscription-router-component.md)(`aws.greengrass.LegacySubscriptionRouter`)에 대한 다음 구성 업데이트를 병합해야 합니다. 이 구성에서는 이 구성 요소가 응답을 게시하는 주제를 지정합니다.

------
#### [ Legacy subscription router v2.1.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-cloudwatch": {
        "id": "aws-greengrass-cloudwatch",
        "source": "component:aws.greengrass.Cloudwatch",
        "subject": "cloudwatch/metric/put/status",
        "target": "cloud"
      }
    }
  }
  ```

------
#### [ Legacy subscription router v2.0.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-cloudwatch": {
        "id": "aws-greengrass-cloudwatch",
        "source": "arn:aws:lambda:region:aws:function:aws-greengrass-cloudwatch:version",
        "subject": "cloudwatch/metric/put/status",
        "target": "cloud"
      }
    }
  }
  ```<a name="connector-component-legacy-subscription-router-dependency-replace"></a>
  + *region*을 사용하는 AWS 리전 로 바꿉니다.
  + *버전*을 이 구성 요소에서 실행되는 Lambda 함수의 버전으로 바꿉니다. Lambda 함수 버전을 찾으려면 배포하려는 이 구성 요소의 버전에 대한 레시피를 확인해야 합니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서 이 구성 요소의 세부 정보 페이지를 열고 **Lambda 함수** 키-값 페어를 찾습니다. 이 키-값 페어에는 Lambda 함수의 이름과 버전이 포함되어 있습니다.

**중요**  <a name="connector-component-legacy-subscription-router-dependency-note"></a>
이 구성 요소를 배포할 때마다 레거시 구독 라우터의 Lambda 함수 버전을 업데이트해야 합니다. 이를 통해 배포하는 구성 요소 버전에 맞는 올바른 Lambda 함수 버전을 사용할 수 있습니다.

------

  <a name="connector-component-create-deployments"></a>자세한 내용은 [배포 만들기](create-deployments.md) 단원을 참조하십시오.

------

### 엔드포인트 및 포트
<a name="cloudwatch-metrics-component-endpoints"></a>

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에 다음 엔드포인트 및 포트에 대한 아웃바운드 요청도 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.


| 엔드포인트 | 포트 | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `monitoring.region.amazonaws.com`  | 443 | 예 |  CloudWatch 지표를 업로드합니다.  | 

## 종속성
<a name="cloudwatch-metrics-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#cloudwatch-metrics-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 3.2.0 ]

다음 표에는이 구성 요소의 버전 3.2.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0 | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=0.0.0 | 하드 | 

------
#### [ 3.0.0 - 3.1.0 ]

다음 표에는 이 구성 요소의 버전 3.0.0\$13.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0 | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=0.0.0 | 하드 | 

------
#### [ 2.1.4 - 2.1.9 ]

다음 표에는이 구성 요소의 버전 2.1.4\$12.1.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.4 - 2.1.8 ]

다음 표에는 이 구성 요소의 버전 2.1.4 및 2.1.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.2 - 2.1.3 ]

다음 표에는 이 구성 요소의 버전 2.1.2 및 2.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.8 - 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.0.8\$12.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.7 ]

다음 표에는 이 구성 요소의 버전 2.0.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.6 ]

다음 표에는 이 구성 요소의 버전 2.0.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.5 ]

다음 표에는 이 구성 요소의 버전 2.0.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.4 ]

다음 표에는 이 구성 요소의 버전 2.0.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.3 ]

다음 표에는 이 구성 요소의 버전 2.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.3 <2.1.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | >=1.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | >=1.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=1.0.0  | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="cloudwatch-metrics-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

------
#### [ v3.x ]

 `PublishInterval`   
(선택 사항) 주어진 네임스페이스에 대해 일괄 처리된 지표를 게시하기 전에 대기해야 하는 최대 시간(초)입니다. 지표를 받자마자 배치 처리 없이 게시하도록 구성 요소를 구성하려면 `0`을 지정합니다.  
이 구성 요소에서는 동일한 네임스페이스의 지표 20개를 받은 후 또는 사용자가 지정하는 간격 후 CloudWatch에 게시합니다.  
구성 요소에서는 이벤트가 게시되는 순서를 지정되지 않습니다.
이 값은 최대 900초가 될 수 있습니다.  
기본값: 10초

 `MaxMetricsToRetain`   
(선택 사항) 구성 요소에서 새 지표로 바꾸기 전에 메모리에 저장되는 모든 네임스페이스의 최대 지표 수입니다.  
이 제한은 인터넷에 대한 연결이 코어 디바이스에 없어서 구성 요소에서 나중에 게시할 지표를 버퍼링할 때 적용됩니다. 버퍼가 가득 차면 구성 요소에서는 가장 오래된 지표를 최신 지표로 바뀝니다. 주어진 네임스페이스의 지표에서는 동일한 네임스페이스의 지표만 바뀝니다.  
구성 요소에 대한 호스트 프로세스가 중단되면 구성 요소에서는 지표가 저장되지 않습니다. 예를 들어 배포 중이거나 코어 디바이스가 다시 시작할 때 이렇게 될 수 있습니다.
이 값의 지표는 2,000개 이상이어야 합니다.  
기본값: 지표 5,000개

`InputTopic`  
(선택 사항) 구성 요소에서 메시지 수신이 구독되는 주제입니다. `PubSubToIoTCore`에 `true`를 지정하는 경우 이 주제에서 MQTT 와일드카드(\$1 및 \$1)를 사용할 수 있습니다.  
기본값: `cloudwatch/metric/put`

`OutputTopic`  
(선택 사항) 구성 요소에서 상태 응답이 게시되는 주제입니다.  
기본값: `cloudwatch/metric/put/status`

`PubSubToIoTCore`  
(선택 사항) AWS IoT Core MQTT 주제에 게시하고 구독할지 여부를 정의하는 문자열 값입니다. 지원되는 값은 `true` 및 `false`입니다.  
기본값: `false`

`LogLevel`  
(선택 사항) 구성 요소의 로깅 수준. 여기에 수준 순서대로 나열된 다음 로그 수준 중에서 선택합니다.  
+ `DEBUG`
+ `INFO`
+ `WARNING`
+ `ERROR`
+ `CRITICAL`
기본값: `INFO`

`UseInstaller`  
(선택 사항) 이 구성 요소의 설치 프로그램 스크립트를 사용하여 이 구성 요소의 SDK 종속성을 설치할지 여부를 정의하는 부울 값입니다.  
사용자 지정 스크립트를 사용하여 종속성을 설치하려는 경우 또는 사전 구축된 Linux 이미지에 런타임 종속성을 포함하려는 경우 이 값을 `false`로 설정합니다. 이 구성 요소를 사용하려면 다음 라이브러리를 설치하고(종속성 포함), 기본 Greengrass 시스템 사용자가 사용할 수 있도록 해야 합니다.  
+ [Python용AWS IoT Device SDK v2](https://github.com/aws/aws-iot-device-sdk-python-v2)
+ [AWS SDK for Python (Boto3)](http://boto.readthedocs.org/en/latest/ref/)
기본값: `true`

`PublishRegion`  
(선택 사항) CloudWatch 지표를 게시 AWS 리전 할 입니다. 이 값으로 코어 디바이스의 기본 리전이 재정의됩니다. 이 파라미터는 리전 간 지표에만 필요합니다.

`accessControl`  
(선택 사항) 주어진 주제를 게시하고 구독하도록 구성 요소에 허용하는 [권한 부여 정책](interprocess-communication.md#ipc-authorization-policies)이 있는 객체입니다. `InputTopic` 및 `OutputTopic`에 대한 사용자 지정 값을 지정하는 경우 이 객체의 리소스 값을 업데이트해야 합니다.  
기본값:   

```
{
  "aws.greengrass.ipc.pubsub": {
    "aws.greengrass.Cloudwatch:pubsub:1": {
      "policyDescription": "Allows access to subscribe to input topics.",
      "operations": [
        "aws.greengrass#SubscribeToTopic"
      ],
      "resources": [
        "cloudwatch/metric/put"
      ]
    },
    "aws.greengrass.Cloudwatch:pubsub:2": {
      "policyDescription": "Allows access to publish to output topics.",
      "operations": [
        "aws.greengrass#PublishToTopic"
      ],
      "resources": [
        "cloudwatch/metric/put/status"
      ]
    }
  },
  "aws.greengrass.ipc.mqttproxy": {
    "aws.greengrass.Cloudwatch:mqttproxy:1": {
      "policyDescription": "Allows access to subscribe to input topics.",
      "operations": [
        "aws.greengrass#SubscribeToIoTCore"
      ],
      "resources": [
        "cloudwatch/metric/put"
      ]
    },
    "aws.greengrass.Cloudwatch:mqttproxy:2": {
      "policyDescription": "Allows access to publish to output topics.",
      "operations": [
        "aws.greengrass#PublishToIoTCore"
      ],
      "resources": [
        "cloudwatch/metric/put/status"
      ]
    }
  }
}
```

**Example 예: 구성 병합 업데이트**  

```
{
  "PublishInterval": 0,
  "PubSubToIoTCore": true
}
```

------
#### [ v2.x ]

**참고**  <a name="connector-component-lambda-parameters"></a>
이 구성 요소의 기본 구성에는 Lambda 함수 파라미터가 포함되어 있습니다. 디바이스에서 다음 파라미터만 사용하여 이 구성 요소를 구성하는 것이 좋습니다.

 `lambdaParams`   
이 구성 요소의 Lambda 함수에 대한 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
 `EnvironmentVariables`   
Lambda 함수의 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
 `PUBLISH_INTERVAL`   
(선택 사항) 주어진 네임스페이스에 대해 일괄 처리된 지표를 게시하기 전에 대기해야 하는 최대 시간(초)입니다. 지표를 받자마자 배치 처리 없이 게시하도록 구성 요소를 구성하려면 `0`을 지정합니다.  
이 구성 요소에서는 동일한 네임스페이스의 지표 20개를 받은 후 또는 사용자가 지정하는 간격 후 CloudWatch에 게시합니다.  
구성 요소에서는 이벤트가 게시되는 순서가 보장되지 않습니다.
이 값은 최대 900초가 될 수 있습니다.  
기본값: 10초  
 `MAX_METRICS_TO_RETAIN`   
(선택 사항) 구성 요소에서 새 지표로 바꾸기 전에 메모리에 저장되는 모든 네임스페이스의 최대 지표 수입니다.  
이 제한은 인터넷에 대한 연결이 코어 디바이스에 없어서 구성 요소에서 나중에 게시할 지표를 버퍼링할 때 적용됩니다. 버퍼가 가득 차면 구성 요소에서는 가장 오래된 지표를 최신 지표로 바뀝니다. 주어진 네임스페이스의 지표에서는 동일한 네임스페이스의 지표만 바뀝니다.  
구성 요소에 대한 호스트 프로세스가 중단되면 구성 요소에서는 지표가 저장되지 않습니다. 예를 들어 배포 중이거나 코어 디바이스가 다시 시작할 때 이렇게 될 수 있습니다.
이 값의 지표는 2,000개 이상이어야 합니다.  
기본값: 지표 5,000개  
 `PUBLISH_REGION`   
(선택 사항) CloudWatch 지표를 게시 AWS 리전 할 입니다. 이 값으로 코어 디바이스의 기본 리전이 재정의됩니다. 이 파라미터는 리전 간 지표에만 필요합니다.

`containerMode`  <a name="connector-component-container-mode-parameter"></a>
(선택 사항) 이 구성 요소에 대한 컨테이너화 모드입니다. 다음 옵션 중 하나를 선택합니다.  <a name="lambda-function-component-container-mode-parameter"></a>
+ `NoContainer` – 구성 요소가 격리된 런타임 환경에서 실행되지 않습니다.
+ `GreengrassContainer` - 구성 요소는 AWS IoT Greengrass 컨테이너 내의 격리된 런타임 환경에서 실행됩니다.
기본값: `GreengrassContainer`

 `containerParams`   
<a name="connector-component-container-params-description"></a>(선택 사항) 이 구성 요소에 대한 컨테이너 파라미터를 포함하는 객체입니다. `containerMode`에 `GreengrassContainer`를 지정하면 구성 요소에서 이러한 파라미터를 사용합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
 `memorySize`   
<a name="connector-component-container-params-memory-size-description"></a>(선택 사항) 구성 요소에 할당되는 메모리 양(킬로바이트)입니다.  
기본값은 64MB(65,535KB)입니다.

`pubsubTopics`  <a name="connector-component-pubsub-topics-parameter"></a>
(선택 사항) 구성 요소에서 메시지를 수신하려고 구독하는 주제를 포함하는 객체입니다. 각 주제와 구성 요소가 AWS IoT Core 또는 로컬 게시/구독 주제의 MQTT 주제를 구독하는지 여부를 지정할 수 있습니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`0` – 문자열 형태의 배열 인덱스입니다.  
다음 정보를 포함하는 객체입니다.    
`type`  
(선택 사항) 이 구성 요소에서 메시지 구독에 사용하는 게시/구독 메시징의 유형입니다. 다음 옵션 중 하나를 선택합니다.  
+ `PUB_SUB` – 로컬 게시/구독 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 섹션을 참조하세요.
+ `IOT_CORE` - AWS IoT Core MQTT 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.
기본값: `PUB_SUB`  
`topic`  
(선택 사항) 구성 요소가 메시지를 수신하기 위해 구독하는 주제입니다. `type`에 `IotCore`를 지정하면 이 주제에서 MQTT 와일드카드(`+` 및 `#`)를 사용할 수 있습니다.

**Example 예: 구성 병합 업데이트(컨테이너 모드)**  

```
{
  "containerMode": "GreengrassContainer"
}
```

**Example 예: 구성 병합 업데이트(컨테이너 없음 모드)**  

```
{
  "containerMode": "NoContainer"
}
```

------

## 입력 데이터
<a name="cloudwatch-metrics-component-input-data"></a>

이 구성 요소에서는 다음 주제에 대한 지표가 수락되고 지표가 CloudWatch에 게시됩니다. <a name="connector-component-local-publish"></a>기본적으로 이 구성 요소는 로컬 게시/구독 메시지가 구독됩니다. 사용자 지정 구성 요소에서 이 구성 요소로 메시지를 게시하는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 섹션을 참조하세요.

구성 요소 버전 v3.0.0부터 `PubSubToIoTCore` 구성 파라미터를 `true`로 설정하여 MQTT 주제를 구독하도록 이 구성 요소를 선택적으로 구성할 수 있습니다. 사용자 지정 구성 요소의 MQTT 주제로 메시지를 게시하는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.

 **기본 주제:** `cloudwatch/metric/put` 

<a name="connector-component-input-properties"></a>메시지는 다음 속성을 수락합니다. 입력 메시지는 JSON 형식이어야 합니다.

 `request`   
이 메시지의 지표입니다.  
요청 객체에는 CloudWatch에 게시할 지표 데이터가 포함되어 있습니다. 지표 값에서는 [https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html) 작업의 사양이 충족되어야 합니다.  
유형: 다음 정보를 포함하는 `object`입니다.    
 `namespace`   
이 요청의 지표 데이터에 대한 사용자 정의 네임스페이스입니다. CloudWatch는 네임스페이스를 지표 데이터 포인트의 컨테이너로 사용합니다.  
예약 문자어 `AWS/`로 시작하는 네임스페이스는 지정할 수 없습니다.
유형: `string`  
유효한 패턴: `[^:].*`  
 `metricData`   
지표에 대한 데이터.  
유형: 다음 정보를 포함하는 `object`입니다.    
 `metricName`   
지표의 이름.  
유형: `string`  
 `value`   
지표에 대한 값.  
CloudWatch에서는 너무 작거나 큰 값을 거부합니다. 값은 `8.515920e-109`\$1`1.174271e+108`(Base 10) 또는 `2e-360`\$1`2e360`(Base 2)로 되어야 합니다. CloudWatch에서는 특수 값이 지원되지 않습니다(예: `NaN`, `+Infinity` 및 `-Infinity`).
유형: `double`  
 `dimensions`   
(선택 사항) 지표의 차원입니다. 차원에서는 지표와 해당 데이터에 대한 추가 정보가 제공됩니다. 지표는 최대 10개 차원을 정의할 수 있습니다.  
이 구성 요소에는 이름이 `coreName`인 차원이 자동으로 포함되어 있으며, 여기에서 값은 코어 디바이스의 이름입니다.  
유형: 각각 다음 정보가 있는 객체의 `array`입니다.    
 `name`   
(선택 사항) 차원 이름입니다.  
유형: `string`  
 `value`   
(선택 사항) 차원 값입니다.  
유형: `string`  
 `timestamp`   
(선택 사항) Unix 에포크 시간으로 초 단위로 표시되는 메트릭 데이터가 수신된 시각입니다.  
기본값은 구성 요소에서 메시지를 받는 시각입니다.  
유형: `double`  
이 구성 요소의 버전 2.0.3\$12.0.7를 사용한다면 단일 소스의 여러 지표를 보낼 때 지표마다 타임스탬프를 개별적으로 검색하는 것이 좋습니다. 변수를 사용하여 타임스탬프를 저장하지 마세요.  
 `unit`   
(선택 사항) 지표의 단위입니다.  
유형: `string`  
유효한 값: `Seconds`, `Microseconds`, `Milliseconds`, `Bytes`, `Kilobytes`, `Megabytes`, `Gigabytes`, `Terabytes`, `Bits`, `Kilobits`, `Megabits`, `Gigabits`, `Terabits`, `Percent`, `Count`, `Bytes/Second`, `Kilobytes/Second`, `Megabytes/Second`, `Gigabytes/Second`, `Terabytes/Second`, `Bits/Second`, `Kilobits/Second`, `Megabits/Second`, `Gigabits/Second`, `Terabits/Second`, `Count/Second`, `None`   
기본값은 `None`입니다.

**참고**  
CloudWatch `PutMetricData` API에 적용되는 모든 할당량은 이 구성 요소로 게시하는 지표에 적용됩니다. 다음 할당량은 아주 중요합니다.  
API 페이로드에 대한 40KB 제한
API 요청당 20개 지표
`PutMetricData` API에 대한 150개의 초당 트랜잭션(TPS)
자세한 내용은 *CloudWatch 사용 설명서*의 [CloudWatch Service Quotas](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html)를 참조하세요.

**Example 입력 예**  

```
{
  "request": {
    "namespace": "Greengrass",
    "metricData": {
      "metricName": "latency",
      "dimensions": [
        {
          "name": "hostname",
          "value": "test_hostname"
        }
      ],
      "timestamp": 1539027324,
      "value": 123.0,
      "unit": "Seconds"
    }
  }
}
```

## 출력 데이터
<a name="cloudwatch-metrics-component-output-data"></a>

 <a name="connector-component-output-data-pubsub"></a>이 구성 요소는 기본적으로 다음 로컬 게시/구독 주제에 대한 출력 데이터로 응답을 게시합니다. 사용자 지정 구성 요소의 이 주제에 대한 메시지를 구독하는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 섹션을 참조하세요.

`PubSubToIoTCore` 구성 파라미터를 `true`로 설정하여 MQTT 주제에 게시하도록 이 구성 요소를 선택적으로 구성할 수 있습니다. 사용자 지정 구성 요소의 MQTT 주제에 대한 메시지를 구독하는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.

**참고**  
구성 요소 버전 2.0.x에서는 기본적으로 응답이 MQTT 주제에 대한 출력 데이터로 게시됩니다. [레거시 구독 라우터 구성 요소](legacy-subscription-router-component.md)의 구성에서 주제를 `subject`로 지정해야 합니다.

 **기본 주제:** `cloudwatch/metric/put/status` 

**Example 출력 예: 성공**  
응답에는 지표 데이터의 네임스페이스 및 CloudWatch 응답의 `RequestId` 필드가 포함되어 있습니다.  

```
{
  "response": {
    "cloudwatch_rid": "70573243-d723-11e8-b095-75ff2EXAMPLE",
    "namespace": "Greengrass",
    "status": "success"
  }
}
```

**Example 출력 예: 실패**  

```
{
  "response" : {
    "namespace": "Greengrass",
    "error": "InvalidInputException",
    "error_message": "cw metric is invalid",
    "status": "fail"
  }
}
```

**참고**  <a name="connector-component-retryable-error"></a>
구성 요소에서는 연결 오류와 같은 재시도할 수 있는 오류가 감지되면 다음 배치에서 게시를 다시 시도합니다.

## 라이선스
<a name="cloudwatch-metrics-component-licenses"></a>

이 구성 요소에는 다음 타사 소프트웨어/라이선스가 포함되어 있습니다.<a name="boto-3-licenses"></a>
+ [AWS SDK for Python (Boto3)](https://pypi.org/project/boto3/)/Apache 라이선스 2.0
+ [botocore](https://pypi.org/project/botocore/)/Apache 라이선스 2.0
+ [dateutil](https://pypi.org/project/python-dateutil/1.4/)/PSF 라이선스
+ [docutils](https://pypi.org/project/docutils/)/BSD 라이선스, GNU 일반 공개 라이선스(GPL), Python Software Foundation 라이선스, 퍼블릭 도메인
+ [jmespath](https://pypi.org/project/jmespath/)/MIT 라이선스
+ [s3transfer](https://pypi.org/project/s3transfer/)/Apache 라이선스 2.0
+ [urllib3](https://pypi.org/project/urllib3/)/MIT 라이선스

<a name="component-core-software-license"></a>이 구성 요소는 [Greengrass 코어 소프트웨어 라이선스 계약](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)에 따라 릴리스됩니다.

## 로컬 로그 파일
<a name="cloudwatch-metrics-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/aws.greengrass.Cloudwatch.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\aws.greengrass.Cloudwatch.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.Cloudwatch.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.Cloudwatch.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="cloudwatch-metrics-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.

------
#### [ v3.x ]


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  3.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/cloudwatch-metrics-component.html)  | 
|  3.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/cloudwatch-metrics-component.html)  | 
|  3.0.0  |  <a name="changelog-cloudwatch-metrics-3.0.0-major-version-changes"></a>CloudWatch 지표 구성 요소의 이 버전에는 버전 2.x와 다른 구성 파라미터가 필요합니다. 버전 2.x에 기본값이 아닌 구성을 사용하고 v2.x에서 v3.x로 업그레이드하려면 구성 요소의 구성을 업데이트해야 합니다. 자세한 내용은 [CloudWatch 지표 구성 요소 구성](#cloudwatch-metrics-component-configuration) 섹션을 참조하세요. <a name="changelog-cloudwatch-metrics-3.0.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/cloudwatch-metrics-component.html)  | 

------
#### [ v2.x ]


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.1.8  |  Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.3  |  Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.2  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.1  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/cloudwatch-metrics-component.html)  | 
|  2.0.8  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/cloudwatch-metrics-component.html)  | 
|  2.0.7  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.6  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.5  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.4  |  Greengrass nucleus 버전 2.1.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.3  |  초기 버전입니다.  | 

------

## 다음 사항도 참조하세요.
<a name="cloudwatch-metrics-component-see-also"></a>
+ *Amazon CloudWatch 사용 설명서*의 [Amazon CloudWatch 지표 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)
+ *Amazon CloudWatch API 참조*의 [PutMetricData](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_PutMetricData.html)

# AWS IoT Device Defender
<a name="device-defender-component"></a>

 AWS IoT Device Defender 구성 요소(`aws.greengrass.DeviceDefender`)는 Greengrass 코어 디바이스의 상태 변경에 대해 관리자에게 알립니다. 그러면 손상된 장치를 나타낼 수 있는 비정상적인 동작을 식별할 수 있습니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [AWS IoT Device Defender](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender.html) 섹션을 참조하세요.

이 구성 요소에서는 코어 디바이스의 시스템 지표를 읽습니다. 그런 다음에 지표를 AWS IoT Device Defender에 게시합니다. 이 구성 요소에서 보고되는 지표를 읽고 해석하는 방법에 대한 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [디바이스 지표 문서 사양](https://docs.aws.amazon.com/iot/latest/developerguide/detect-device-side-metrics.html#DetectMetricsMessagesSpec)을 참조하세요.

**참고**  
이 구성 요소는의 Device Defender 커넥터와 유사한 기능을 제공합니다 AWS IoT Greengrass V1. 자세한 내용은 *AWS IoT Greengrass V1 개발자 안내서*의 [Device Defender 커넥터](https://docs.aws.amazon.com/greengrass/latest/developerguide/device-defender-connector.html)를 참조하세요.

**Topics**
+ [버전](#device-defender-component-versions)
+ [유형](#device-defender-component-type)
+ [운영 체제](#device-defender-component-os-support)
+ [요구 사항](#device-defender-component-requirements)
+ [종속성](#device-defender-component-dependencies)
+ [구성](#device-defender-component-configuration)
+ [입력 데이터](#device-defender-component-input-data)
+ [출력 데이터](#device-defender-component-output-data)
+ [로컬 로그 파일](#device-defender-component-log-file)
+ [라이선스](#device-defender-component-licenses)
+ [Changelog](#device-defender-component-changelog)

## 버전
<a name="device-defender-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 3.1.x
+ 3.0.x
+ 2.0.x

각 구성 요소 버전의 변경 사항에 대한 내용은 [changelog](#device-defender-component-changelog)를 참조하세요.

## 유형
<a name="device-defender-component-type"></a>

------
#### [ v3.x ]

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

------
#### [ v2.x ]

<a name="public-component-type-lambda"></a>이 <a name="public-component-type-lambda-phrase"></a>구성 요소는 Lambda 구성 요소(`aws.greengrass.lambda`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)에서는 [Lambda 런처 구성 요소](lambda-launcher-component.md)를 사용하여 이 구성 요소의 Lambda 함수를 실행합니다.

------

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="device-defender-component-os-support"></a>

------
#### [ v3.x ]

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

------
#### [ v2.x ]

이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.

------

## 요구 사항
<a name="device-defender-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.

------
#### [ v3.x ]
+ <a name="public-component-python3-requirement"></a>코어 장치에 설치되고 PATH 환경 변수에 추가된 [Python](https://www.python.org/) 버전 3.7입니다.
+ AWS IoT Device Defender Detect 기능을 사용하여 위반을 모니터링하도록 구성되었습니다. 자세한 정보는 *AWS IoT Core 개발자 안내서*의 [감지](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-detect.html)를 참조하세요.

------
#### [ v2.x ]
+ <a name="core-device-lambda-function-requirements"></a>Lambda 함수를 실행하려면 코어 디바이스가 요구 사항을 충족해야 합니다. 코어 디바이스에서 컨테이너화된 Lambda 함수를 실행하려면 디바이스가 요구 사항을 충족해야 합니다. 자세한 내용은 [Lambda 함수 요구 사항](setting-up.md#greengrass-v2-lambda-requirements) 단원을 참조하십시오.
+ <a name="public-component-python3-requirement"></a>코어 장치에 설치되고 PATH 환경 변수에 추가된 [Python](https://www.python.org/) 버전 3.7입니다.
+ AWS IoT Device Defender Detect 기능을 사용하여 위반을 모니터링하도록 구성되었습니다. 자세한 정보는 *AWS IoT Core 개발자 안내서*의 [감지](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-detect.html)를 참조하세요.
+ 코어 디바이스에 설치된 [psutil](https://pypi.org/project/psutil/) 라이브러리입니다. 버전 5.7.0이 구성 요소와 연동하는 것으로 확인된 최신 버전입니다.
+ 코어 디바이스에 설치된 [cbor](https://pypi.org/project/cbor/) 라이브러리입니다. 버전 1.0.0이 구성 요소와 연동하는 것으로 확인된 최신 버전입니다.
+ <a name="connector-component-legacy-subscription-router-dependency"></a>이 구성 요소의 출력 데이터를 수신하려면 이 구성 요소를 배포할 때 [레거시 구독 라우터 구성 요소](legacy-subscription-router-component.md)(`aws.greengrass.LegacySubscriptionRouter`)에 대한 다음 구성 업데이트를 병합해야 합니다. 이 구성에서는 이 구성 요소가 응답을 게시하는 주제를 지정합니다.

------
#### [ Legacy subscription router v2.1.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-device-defender": {
        "id": "aws-greengrass-device-defender",
        "source": "component:aws.greengrass.DeviceDefender",
        "subject": "$aws/things/+/defender/metrics/json",
        "target": "cloud"
      }
    }
  }
  ```

------
#### [ Legacy subscription router v2.0.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-device-defender": {
        "id": "aws-greengrass-device-defender",
        "source": "arn:aws:lambda:region:aws:function:aws-greengrass-device-defender:version",
        "subject": "$aws/things/+/defender/metrics/json",
        "target": "cloud"
      }
    }
  }
  ```<a name="connector-component-legacy-subscription-router-dependency-replace"></a>
  + *region*을 사용하는 AWS 리전 로 바꿉니다.
  + *버전*을 이 구성 요소에서 실행되는 Lambda 함수의 버전으로 바꿉니다. Lambda 함수 버전을 찾으려면 배포하려는 이 구성 요소의 버전에 대한 레시피를 확인해야 합니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서 이 구성 요소의 세부 정보 페이지를 열고 **Lambda 함수** 키-값 페어를 찾습니다. 이 키-값 페어에는 Lambda 함수의 이름과 버전이 포함되어 있습니다.

**중요**  <a name="connector-component-legacy-subscription-router-dependency-note"></a>
이 구성 요소를 배포할 때마다 레거시 구독 라우터의 Lambda 함수 버전을 업데이트해야 합니다. 이를 통해 배포하는 구성 요소 버전에 맞는 올바른 Lambda 함수 버전을 사용할 수 있습니다.

------

  <a name="connector-component-create-deployments"></a>자세한 내용은 [배포 만들기](create-deployments.md) 단원을 참조하십시오.

------

## 종속성
<a name="device-defender-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#device-defender-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 3.1.1 ]

다음 표에는 이 구성 요소의 버전 3.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0 | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=0.0.0 | 하드 | 

------
#### [ 3.0.0 - 3.0.2 ]

다음 표에는 이 구성 요소의 버전 3.0.0\$13.0.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0 | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=0.0.0 | 하드 | 

------
#### [ 2.0.12 - 2.0.17 ]

다음 표에는이 구성 요소의 버전 2.0.12\$12.0.17에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.12 - 2.0.16 ]

다음 표에는 이 구성 요소의 버전 2.0.16에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.10 - 2.0.11 ]

다음 표에는 이 구성 요소의 버전 2.0.10 및 2.0.11에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.9 ]

다음 표에는 이 구성 요소의 버전 2.0.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.8 ]

다음 표에는 이 구성 요소의 버전 2.0.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.7 ]

다음 표에는 이 구성 요소의 버전 2.0.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.6 ]

다음 표에는 이 구성 요소의 버전 2.0.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.5 ]

다음 표에는 이 구성 요소의 버전 2.0.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.4 ]

다음 표에는 이 구성 요소의 버전 2.0.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.3 ]

다음 표에는 이 구성 요소의 버전 2.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.3 <2.1.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | >=1.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | >=1.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=1.0.0  | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="device-defender-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

------
#### [ v3.x ]

`PublishRetryCount`  
게시가 재시도되는 시간 간격입니다. 이 기능은 버전 3.1.1에서 사용할 수 있습니다.  
최소는 0입니다.  
최대는 72입니다.  
기본값: 5

`SampleIntervalSeconds`  
(선택 사항) 구성 요소에서 지표를 수집하고 보고하는 각 주기 간 시간(초)입니다.  
최소값은 300초(5분)입니다.  
기본값: 300초

 `UseInstaller`   
(선택 사항) 이 구성 요소의 설치 프로그램 스크립트를 사용하여 이 구성 요소의 종속성을 설치할지 여부를 정의하는 부울 값입니다.  
사용자 지정 스크립트를 사용하여 종속성을 설치하려는 경우 또는 사전 구축된 Linux 이미지에 런타임 종속성을 포함하려는 경우 이 값을 `false`로 설정합니다. 이 구성 요소를 사용하려면 다음 라이브러리를 설치하고(종속성 포함), 기본 Greengrass 시스템 사용자가 사용할 수 있도록 해야 합니다.  
+ [Python용AWS IoT Device SDK v2](https://github.com/aws/aws-iot-device-sdk-python-v2)
+ [cbor](https://pypi.org/project/cbor/) 라이브러리입니다. 버전 1.0.0이 구성 요소와 연동하는 것으로 확인된 최신 버전입니다.
+ [psutil](https://pypi.org/project/psutil/) 라이브러리입니다. 버전 5.7.0이 구성 요소와 연동하는 것으로 확인된 최신 버전입니다.
HTTPS 프록시를 사용하도록 구성한 코어 디바이스에서 이 구성 요소의 버전 3.0.0 또는 3.0.1을 사용하는 경우 이 값을 `false`로 설정해야 합니다. 설치 프로그램 스크립트에서는 이 구성 요소의 이러한 버전에서 HTTPS 프록시 이면의 작업을 지원하지 않습니다.
기본값: `true`

------
#### [ v2.x ]

**참고**  <a name="connector-component-lambda-parameters"></a>
이 구성 요소의 기본 구성에는 Lambda 함수 파라미터가 포함되어 있습니다. 디바이스에서 다음 파라미터만 사용하여 이 구성 요소를 구성하는 것이 좋습니다.

`lambdaParams`  
이 구성 요소의 Lambda 함수에 대한 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`EnvironmentVariables`  
Lambda 함수의 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`PROCFS_PATH`  
(선택 사항) `/proc` 폴더의 경로입니다.  
+ 이 구성 요소를 컨테이너에서 실행하려면 기본값(`/host-proc`)을 사용합니다. 기본적으로 컨테이너에서 구성 요소가 실행됩니다.
+ 컨테이너 없음 모드에서 이 구성 요소를 실행하려면 이 파라미터에 `/proc`를 지정합니다.
기본값: `/host-proc`. 이 구성 요소에서 컨테이너에 `/proc` 폴더를 탑재하는 기본 경로입니다.  
이 구성 요소에는 이 폴더에 대한 읽기 전용 액세스 권한이 있습니다.  
`SAMPLE_INTERVAL_SECONDS`  
(선택 사항) 구성 요소에서 지표를 수집하고 보고하는 각 주기 간 시간 간격(초)입니다.  
최소값은 300초(5분)입니다.  
기본값: 300초

`containerMode`  
(선택 사항) 이 구성 요소에 대한 컨테이너화 모드입니다. 다음 옵션 중 하나를 선택합니다.  
+ `GreengrassContainer` - 구성 요소는 AWS IoT Greengrass 컨테이너 내의 격리된 런타임 환경에서 실행됩니다.
+ `NoContainer` – 구성 요소가 격리된 런타임 환경에서 실행되지 않습니다.

  이 옵션을 지정하는 경우 `PROCFS_PATH` 환경 변수 파라미터에 `/proc`를 지정해야 합니다.
기본값: `GreengrassContainer`

`containerParams`  
<a name="connector-component-container-params-description"></a>(선택 사항) 이 구성 요소에 대한 컨테이너 파라미터를 포함하는 객체입니다. `containerMode`에 `GreengrassContainer`를 지정하면 구성 요소에서 이러한 파라미터를 사용합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`memorySize`  
<a name="connector-component-container-params-memory-size-description"></a>(선택 사항) 구성 요소에 할당되는 메모리 양(킬로바이트)입니다.  
기본값은 50,000KB입니다.

`pubsubTopics`  <a name="connector-component-pubsub-topics-parameter"></a>
(선택 사항) 구성 요소에서 메시지를 수신하려고 구독하는 주제를 포함하는 객체입니다. 각 주제와 구성 요소가 AWS IoT Core 의 MQTT 주제를 구독하는지 또는 로컬 게시/구독 주제를 구독하는지 여부를 지정할 수 있습니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`0` – 문자열 형태의 배열 인덱스입니다.  
다음 정보를 포함하는 객체입니다.    
`type`  
(선택 사항) 이 구성 요소에서 메시지 구독에 사용하는 게시/구독 메시징의 유형입니다. 다음 옵션 중 하나를 선택합니다.  
+ `PUB_SUB` – 로컬 게시/구독 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 섹션을 참조하세요.
+ `IOT_CORE` - AWS IoT Core MQTT 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.
기본값: `PUB_SUB`  
`topic`  
(선택 사항) 구성 요소가 메시지를 수신하기 위해 구독하는 주제입니다. `type`에 `IotCore`를 지정하면 이 주제에서 MQTT 와일드카드(`+` 및 `#`)를 사용할 수 있습니다.

**Example 예: 구성 병합 업데이트(컨테이너 모드)**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "PROCFS_PATH": "/host_proc"
    }
  },
  "containerMode": "GreengrassContainer"
}
```

**Example 예: 구성 병합 업데이트(컨테이너 없음 모드)**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "PROCFS_PATH": "/proc"
    }
  },
  "containerMode": "NoContainer"
}
```

------

## 입력 데이터
<a name="device-defender-component-input-data"></a>

이 구성 요소에서는 메시지를 입력 데이터로 수락하지 않습니다.

## 출력 데이터
<a name="device-defender-component-output-data"></a>

이 구성 요소는 다음 예약 주제에 대한 보안 지표를 게시합니다 AWS IoT Device Defender. 이 구성 요소에서는 지표 게시될 때 *coreDeviceName*을 코어 디바이스의 이름으로 바뀝니다.

**주제(AWS IoT Core MQTT):** `$aws/things/coreDeviceName/defender/metrics/json`

**Example 출력 예시**  

```
{
  "header": {
    "report_id": 1529963534,
    "version": "1.0"
  },
  "metrics": {
    "listening_tcp_ports": {
      "ports": [
        {
          "interface": "eth0",
          "port": 24800
        },
        {
          "interface": "eth0",
          "port": 22
        },
        {
          "interface": "eth0",
          "port": 53
        }
      ],
      "total": 3
    },
    "listening_udp_ports": {
      "ports": [
        {
          "interface": "eth0",
          "port": 5353
        },
        {
          "interface": "eth0",
          "port": 67
        }
      ],
      "total": 2
    },
    "network_stats": {
      "bytes_in": 1157864729406,
      "bytes_out": 1170821865,
      "packets_in": 693092175031,
      "packets_out": 738917180
    },
    "tcp_connections": {
      "established_connections":{
        "connections": [
          {
            "local_interface": "eth0",
            "local_port": 80,
            "remote_addr": "192.168.0.1:8000"
          },
          {
            "local_interface": "eth0",
            "local_port": 80,
            "remote_addr": "192.168.0.1:8000"
          }
        ],
        "total": 2
      }
    }
  }
}
```

이 구성 요소에서 보고하는 지표에 대한 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [디바이스 지표 문서 사양](https://docs.aws.amazon.com/iot/latest/developerguide/detect-device-side-metrics.html#DetectMetricsMessagesSpec)을 참조하세요.

## 로컬 로그 파일
<a name="device-defender-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/aws.greengrass.DeviceDefender.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.DeviceDefender.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log -Tail 10 -Wait
  ```

------

## 라이선스
<a name="device-defender-component-licenses"></a>

<a name="component-core-software-license"></a>이 구성 요소는 [Greengrass 코어 소프트웨어 라이선스 계약](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)에 따라 릴리스됩니다.

## Changelog
<a name="device-defender-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.

------
#### [ v3.x ]


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  3.1.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/device-defender-component.html)  | 
|  3.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/device-defender-component.html)  | 
|  3.0.1  |  구성 요소에서 지표에 대한 델타 값을 계산하는 방식과 관련한 문제가 해결되었습니다.  | 
|  3.0.0  |   더는 이 버전을 사용할 수 없습니다. 이 버전의 개선 사항은 이 구성 요소의 이후 버전에서 사용할 수 있습니다.  초기 버전입니다.  | 

------
#### [ v2.x ]


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.0.17  |  Greengrass nucleus 버전 2.14.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.16  |  Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.11  |  Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.10  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.9  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.8  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.7  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.6  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.5  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.4  |  Greengrass nucleus 버전 2.1.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.3  |  초기 버전입니다.  | 

------

# 디스크 스풀러
<a name="disk-spooler-component"></a>

디스크 스풀러 구성 요소(`aws.greengrass.DiskSpooler`)는 Greengrass 코어 디바이스에서 스풀링된 메시지를 위한 영구 스토리지 옵션을 제공합니다 AWS IoT Core. 이 구성 요소에서는 이러한 아웃바운드 메시지를 디스크에 저장합니다.

**Topics**
+ [버전](#disk-spooler-component-versions)
+ [유형](#disk-spooler-component-type)
+ [운영 체제](#disk-spooler-component-os-support)
+ [요구 사항](#disk-spooler-component-requirements)
+ [종속성](#disk-spooler-component-dependencies)
+ [사용법](#disk-spooler-component-usage)
+ [로컬 로그 파일](#disk-spooler-component-log-file)
+ [Changelog](#disk-spooler-component-changelog)

## 버전
<a name="disk-spooler-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 1.0.x

## 유형
<a name="disk-spooler-component-type"></a>

<a name="public-component-type-plugin-para1"></a>이 구성 요소는 플러그인 구성 요소(`aws.greengrass.plugin`)입니다. [Greengrass nucleus는](greengrass-nucleus-component.md) 이 구성 요소를 nucleus와 동일한 Java 가상 머신(JVM)에서 실행합니다. 코어 디바이스에서 구성 요소의 버전을 변경하면 nucleus가 다시 시작됩니다.

<a name="public-component-type-plugin-para2"></a>이 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 단원을 참조하십시오.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="disk-spooler-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="disk-spooler-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
+ 이 구성 요소를 사용하려면 `storageType`을 `Disk`로 설정해야 합니다. [Greengrass nucleus 구성](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration)에서 이렇게 설정할 수 있습니다.
+ 디바이스에서 사용할 수 있는 공간보다 크게 `maxSizeInBytes`를 구성해야 합니다. [Greengrass nucleus 구성](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration)에서 이렇게 설정할 수 있습니다.
+ VPC에서 디스크 스풀러 구성 요소의 실행이 지원됩니다.

## 종속성
<a name="disk-spooler-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#disk-spooler-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 1.0.7 ]

다음 표에는 이 구성 요소의 버전 1.0.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.11.0 <2.17.0 | 하드 | 

------
#### [ 1.0. ]

다음 표에는 이 구성 요소의 버전 1.0.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.11.0 <2.16.0 | 하드 | 

------
#### [ 1.0.5 ]

다음 표에는 이 구성 요소의 버전 1.0.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.11.0 <2.15.0 | 하드 | 

------
#### [ 1.0.4 ]

다음 표에는 이 구성 요소의 버전 1.0.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.11.0 <2.14.0 | 하드 | 

------
#### [ 1.0.1 – 1.0.3 ]

다음 표에는 이 구성 요소의 버전 1.0.1\$11.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.11.0 <2.13.0 | 하드 | 

------
#### [ 1.0.0 ]

다음 표에는 이 구성 요소의 버전 1.0.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.11.0 <2.12.0 | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 사용법
<a name="disk-spooler-component-usage"></a>

디스크 스풀러 구성 요소를 사용하려면 `aws.greengrass.DiskSpooler`가 배포되어야 합니다.

이 구성 요소를 구성하고 사용하려면 `pluginName`을 `aws.greengrass.DiskSpooler`로 설정해야 합니다.

## 로컬 로그 파일
<a name="disk-spooler-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="disk-spooler-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  1.0.7  |  Greengrass nucleus 버전 2.16.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.6  |  Greengrass nucleus 버전 2.15.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.5  |  Greengrass nucleus 버전 2.14.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/disk-spooler-component.html)  | 
|  1.0.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/disk-spooler-component.html)  | 
|  1.0.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/disk-spooler-component.html)  | 
|  1.0.1  |  Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.0  |  초기 버전입니다.  | 

# Docker 애플리케이션 관리자
<a name="docker-application-manager-component"></a>

Docker 애플리케이션 관리자 구성 요소(`aws.greengrass.DockerApplicationManager`) AWS IoT Greengrass 를 사용하면가 Amazon Elastic Container Registry(Amazon ECR)에 호스팅된 퍼블릭 이미지 레지스트리 및 프라이빗 레지스트리에서 Docker 이미지를 다운로드할 수 있습니다. 또한 AWS IoT Greengrass 는 자격 증명을 자동으로 관리하여 Amazon ECR의 프라이빗 리포지토리에서 이미지를 안전하게 다운로드할 수 있습니다.

Docker 컨테이너가 실행되는 사용자 지정 구성 요소를 개발할 때 Docker 애플리케이션 관리자를 종속성으로 포함하여 구성 요소에서 아티팩트로 지정된 Docker 이미지를 다운로드합니다. 자세한 내용은 [Docker 컨테이너 실행](run-docker-container.md) 단원을 참조하십시오.

**Topics**
+ [버전](#docker-application-manager-component-versions)
+ [Type](#docker-application-manager-component-type)
+ [운영 체제](#docker-application-manager-component-os-support)
+ [요구 사항](#docker-application-manager-component-requirements)
+ [종속성](#docker-application-manager-component-dependencies)
+ [구성](#docker-application-manager-component-configuration)
+ [로컬 로그 파일](#docker-application-manager-component-log-file)
+ [Changelog](#docker-application-manager-component-changelog)
+ [다음 사항도 참조하세요.](#docker-application-manager-component-see-also)

## 버전
<a name="docker-application-manager-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.0.x

## Type
<a name="docker-application-manager-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="docker-application-manager-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="docker-application-manager-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.
+ <a name="docker-engine-requirement"></a>Greengrass 코어 디바이스에 [Docker Engine](https://docs.docker.com/engine/) 1.9.1 이상이 설치되어 있어야 합니다. 버전 20.10은 AWS IoT Greengrass 코어 소프트웨어에서 작동하는 것으로 확인된 최신 버전입니다. Docker 컨테이너를 실행하는 구성 요소를 배포하기 전에 코어 디바이스에 직접 Docker를 설치해야 합니다.
+ <a name="docker-daemon-requirement"></a>이 구성 요소를 배포하기 전에 Docker 대몬이 코어 디바이스에서 시작되어 실행 중입니다.
+ 다음 지원되는 이미지 소스 중 하나에 저장된 Docker 이미지입니다.
  + Amazon Elastic Container Registry(Amazon ECR)의 퍼블릭 및 프라이빗 이미지 리포지토리
  + 퍼블릭 Docker Hub 리포지토리
  + 퍼블릭 Docker 신뢰할 수 있는 레지스트리
+ 사용자 지정 Docker 컨테이너 구성 요소에 아티팩트로 포함된 Docker 이미지입니다. 다음 URI 형식을 사용하여 Docker 이미지를 지정합니다.<a name="docker-image-artifact-uri"></a>
  + 프라이빗 Amazon ECR 이미지: `docker:account-id.dkr.ecr.region.amazonaws.com/repository/image[:tag|@digest]`
  + 퍼블릭 Amazon ECR 이미지: `docker:public.ecr.aws/repository/image[:tag|@digest]`
  + 퍼블릭 Docker Hub 이미지: `docker:name[:tag|@digest]`

  자세한 내용은 [Docker 컨테이너 실행](run-docker-container.md) 단원을 참조하십시오.
**참고**  
이미지에 대한 아티팩트 URI에서 이미지 태그 또는 이미지 다이제스트를 지정하지 않으면 사용자 지정 Docker 컨테이너 구성 요소를 배포할 때 Docker 애플리케이션 관리자에서는 해당 이미지의 사용 가능한 최신 버전을 가져옵니다. 모든 코어 디바이스에서 동일한 이미지 버전이 실행되도록 하려면 아티팩트 URI에 이미지 태그 또는 이미지 다이제스트를 포함하는 것이 좋습니다.
+ <a name="docker-user-permissions-requirement"></a>Docker 컨테이너 구성 요소를 실행하는 시스템 사용자에게 루트 또는 관리자 권한이 있거나 루트 또는 관리자가 아닌 사용자로 실행하도록 Docker를 구성해야 합니다.
  + Linux 디바이스에서는 `docker` 그룹에 사용자를 추가하여 `sudo` 없이 `docker` 명령을 직접적으로 호출할 수 있습니다.
  + Windows 디바이스에서는 `docker-users` 그룹에 사용자를 추가하여 관리자 권한 없이 `docker` 명령을 직접적으로 호출할 수 있습니다.

------
#### [ Linux or Unix ]

  Docker 컨테이너 구성 요소를 실행하는 데 사용하는 `ggc_user` 또는 루트 사용자가 아닌 사용자를 `docker` 그룹에 추가하려면 다음 명령을 실행합니다.

  ```
  sudo usermod -aG docker ggc_user
  ```

  자세한 내용은 [루트 사용자가 아닌 사용자로 Docker 관리](https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user)를 참조하세요.

------
#### [ Windows Command Prompt (CMD) ]

  `ggc_user` 또는 Docker 컨테이너 구성 요소를 실행하는 데 사용하는 사용자를 `docker-users` 그룹에 추가하려면 관리자로 다음 명령을 실행합니다.

  ```
  net localgroup docker-users ggc_user /add
  ```

------
#### [ Windows PowerShell ]

  `ggc_user` 또는 Docker 컨테이너 구성 요소를 실행하는 데 사용하는 사용자를 `docker-users` 그룹에 추가하려면 관리자로 다음 명령을 실행합니다.

  ```
  Add-LocalGroupMember -Group docker-users -Member ggc_user
  ```

------
+ <a name="docker-proxy-requirement"></a>[네트워크 프록시를 사용하도록 AWS IoT Greengrass 코어 소프트웨어를 구성하는](configure-greengrass-core-v2.md#configure-alpn-network-proxy) 경우 [동일한 프록시 서버를 사용하도록 Docker를 구성](https://docs.docker.com/network/proxy/)해야 합니다.
+ Docker 이미지가 Amazon ECR 프라이빗 레지스트리에 저장되어 있는 경우 토큰 교환 서비스 구성 요소를 Docker 컨테이너 구성 요소에 종속성으로 포함해야 합니다. 또한 다음 예제 IAM 정책에 표시된 대로 [Greengrass 디바이스 역할](device-service-role.md)에서 `ecr:GetAuthorizationToken`, `ecr:BatchGetImage`, `ecr:GetDownloadUrlForLayer` 작업을 허용해야 합니다.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "ecr:GetAuthorizationToken",
          "ecr:BatchGetImage",
          "ecr:GetDownloadUrlForLayer"
        ],
        "Resource": [
          "*"
        ],
        "Effect": "Allow"
      }
    ]
  }
  ```

------

  ```
  ```
+ Docker 애플리케이션 관리자 구성 요소는 VPC에서 실행되도록 지원됩니다. 이 구성 요소를 VPC에 배포하려면 다음이 필요합니다.
  + 이미지를 다운로드할 연결이 Docker 애플리케이션 관리자 구성 요소에 있어야 합니다. 예를 들어, ECR을 사용하는 경우 다음 엔드포인트에 대한 연결이 있어야 합니다.
    + `*.dkr.ecr.region.amazonaws.com`(VPC 엔드포인트 `com.amazonaws.region.ecr.dkr`)
    + `api.ecr.region.amazonaws.com`(VPC 엔드포인트 `com.amazonaws.region.ecr.api`)

### 엔드포인트 및 포트
<a name="docker-application-manager-component-endpoints"></a>

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에 다음 엔드포인트 및 포트에 대한 아웃바운드 요청도 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.


| 엔드포인트 | 포트 | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `ecr.region.amazonaws.com`  | 443 | 아니요 |  Amazon ECR에서 Docker 이미지를 다운로드하는 경우에 필요합니다.  | 
|  `hub.docker.com` `registry.hub.docker.com/v1`  | 443 | 아니요 |  Docker Hub에서 Docker 이미지를 다운로드하는 경우에 필요합니다.  | 

## 종속성
<a name="docker-application-manager-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#docker-application-manager-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.0.15 ]

다음 표에는 이 구성 요소의 버전 2.0.15에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.17.0 | 소프트 | 

------
#### [ 2.0.14 ]

다음 표에는이 구성 요소의 버전 2.0.14에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.16.0 | 소프트 | 

------
#### [ 2.0.13 ]

다음 표에는이 구성 요소의 버전 2.0.13에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.15.0 | 소프트 | 

------
#### [ 2.0.12 ]

다음 표에는 이 구성 요소의 버전 2.0.12에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.14.0 | 소프트 | 

------
#### [ 2.0.11 ]

다음 표에는 이 구성 요소의 버전 2.0.11에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.13.0 | 소프트 | 

------
#### [ 2.0.10 ]

다음 표에는 이 구성 요소의 버전 2.0.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.12.0 | 소프트 | 

------
#### [ 2.0.9 ]

다음 표에는 이 구성 요소의 버전 2.0.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.11.0 | 소프트 | 

------
#### [ 2.0.8 ]

다음 표에는 이 구성 요소의 버전 2.0.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.10.0 | 소프트 | 

------
#### [ 2.0.7 ]

다음 표에는 이 구성 요소의 버전 2.0.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.9.0 | 소프트 | 

------
#### [ 2.0.6 ]

다음 표에는 이 구성 요소의 버전 2.0.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.8.0 | 소프트 | 

------
#### [ 2.0.5 ]

다음 표에는 이 구성 요소의 버전 2.0.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.7.0 | 소프트 | 

------
#### [ 2.0.4 ]

다음 표에는 이 구성 요소의 버전 2.0.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.6.0 | 소프트 | 

------
#### [ 2.0.3 ]

다음 표에는 이 구성 요소의 버전 2.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.5.0 | 소프트 | 

------
#### [ 2.0.2 ]

다음 표에는 이 구성 요소의 버전 2.0.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.4.0 | 소프트 | 

------
#### [ 2.0.1 ]

다음 표에는 이 구성 요소의 버전 2.0.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.3.0 | 소프트 | 

------
#### [ 2.0.0 ]

다음 표에는 이 구성 요소의 버전 2.0.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.2.0 | 소프트 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="docker-application-manager-component-configuration"></a>

이 구성 요소에는 구성 파라미터가 없습니다.

## 로컬 로그 파일
<a name="docker-application-manager-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="docker-application-manager-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|   **버전**   |   **변경 사항**   | 
| --- | --- | 
|  2.0.15  |  Greengrass nucleus 버전 2.16.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.14  | Greengrass nucleus 버전 2.15.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.13  | Greengrass nucleus 버전 2.14.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.12  | Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.11  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.10  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.9  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.8  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.7  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.6  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.5  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.4  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.3  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.2  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.1  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.0  |  초기 버전입니다.  | 

## 다음 사항도 참조하세요.
<a name="docker-application-manager-component-see-also"></a>
+  [Docker 컨테이너 실행](run-docker-container.md) 

# Kinesis Video Streams용 엣지 커넥터
<a name="kvs-edge-connector-component"></a>

Kinesis Video Streams 구성 요소용 엣지 커넥터(`aws.iot.EdgeConnectorForKVS`)는 로컬 카메라에서 비디오 피드를 읽고 스트림을 Kinesis Video Streams에 게시합니다. 실시간 스트리밍 프로토콜(RTSP)을 사용하여 인터넷 프로토콜(IP) 카메라에서 비디오 피드를 읽도록 이 구성 요소를 구성할 수 있습니다. 그런 다음 [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) 또는 로컬 Grafana 서버에서 대시보드를 설정하여 비디오 스트림을 모니터링하고 조작할 수 있습니다.

이 구성 요소를 AWS IoT TwinMaker와 통합하여 Grafana 대시보드에서 비디오 스트림을 표시하고 제어할 수 있습니다. AWS IoT TwinMaker는 물리적 시스템의 운영 디지털 트윈을 구축할 수 있는 AWS 서비스입니다. AWS IoT TwinMaker를 사용하여 센서, 카메라 및 엔터프라이즈 애플리케이션의 데이터를 시각화하여 물리적 공장, 건물 또는 산업 공장을 추적할 수 있습니다. 이 데이터를 사용하여 작업을 모니터링하고 오류를 진단하고 오류를 수정할 수도 있습니다. 자세한 내용은 [AWS IoT TwinMaker 사용 설명서의 What isTwinMaker?](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/what-is-twinmaker.html)를 참조하세요. *AWS IoT TwinMaker *

이 구성 요소는 산업 데이터를 모델링하고 저장하는 AWS 서비스 AWS IoT SiteWise인에 구성을 저장합니다. 에서 AWS IoT SiteWise*자산*은 디바이스, 장비 또는 다른 객체 그룹과 같은 객체를 나타냅니다. 이 구성 요소를 구성하고 사용하려면 각 Greengrass 코어 디바이스와 각 코어 디바이스에 연결된 각 IP 카메라에 대한 AWS IoT SiteWise 자산을 생성합니다. 각 자산에는 라이브 스트리밍, 온디맨드 업로드, 로컬 캐싱과 같은 기능을 제어하도록 구성하는 속성이 있습니다. 각 카메라의 URL을 지정하려면 AWS Secrets Manager 에서 카메라의 URL이 포함된 보안 암호를 생성합니다. 카메라에 인증이 필요한 경우 URL에 사용자 이름과 암호도 지정합니다. 그런 다음 IP 카메라의 자산 속성에서 해당 보안 암호를 지정합니다.

이 구성 요소는 각 카메라의 비디오 스트림을 Kinesis 비디오 스트림에 업로드합니다. 각 카메라의 AWS IoT SiteWise 자산 구성에서 대상 Kinesis 비디오 스트림의 이름을 지정합니다. Kinesis 비디오 스트림이 존재하지 않으면 이 구성 요소가 스트림을 생성합니다.

AWS IoT TwinMaker는 이러한 AWS IoT SiteWise 자산 및 Secrets Manager 보안 암호를 생성하기 위해 실행할 수 있는 스크립트를 제공합니다. 이러한 리소스를 생성하는 방법과 이 구성 요소를 설치, 구성 및 사용하는 방법에 대한 자세한 내용은 *AWS IoT TwinMaker 사용 설명서*의 [AWS IoT TwinMaker video integration](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/video-integration.html)을 참조하세요.

**참고**  
Kinesis Video Streams 구성 요소용 엣지 커넥터는 다음 AWS 리전에서만 사용할 수 있습니다.  
미국 동부(버지니아 북부)
미국 서부(오리건)
유럽(프랑크푸르트)
유럽(아일랜드)
아시아 태평양(싱가포르)
아시아 태평양(도쿄)
아시아 태평양(서울)
아시아 태평양(시드니)
아시아 태평양(뭄바이)
중국(베이징)

**Topics**
+ [버전](#kvs-edge-connector-component-versions)
+ [유형](#kvs-edge-connector-component-type)
+ [운영 체제](#kvs-edge-connector-component-os-support)
+ [요구 사항](#kvs-edge-connector-component-requirements)
+ [종속성](#kvs-edge-connector-component-dependencies)
+ [구성](#kvs-edge-connector-component-configuration)
+ [라이선스](#kvs-edge-connector-component-licenses)
+ [사용법](#kvs-edge-connector-component-usage)
+ [로컬 로그 파일](#kvs-edge-connector-component-log-file)
+ [Changelog](#kvs-edge-connector-component-changelog)
+ [다음 사항도 참조하세요.](#kvs-edge-connector-component-see-also)

## 버전
<a name="kvs-edge-connector-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 1.0.x

## 유형
<a name="kvs-edge-connector-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="kvs-edge-connector-component-os-support"></a>

이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.

## 요구 사항
<a name="kvs-edge-connector-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.
+ 이 구성 요소는 구성 요소 구성이 각 코어 디바이스에 고유해야 하므로 단일 코어 디바이스에만 배포할 수 있습니다. 이 구성 요소를 코어 디바이스 그룹에 배포할 수 없습니다.
+ 코어 디바이스에 설치된 [GStreamer](https://gstreamer.freedesktop.org) 1.18.4 이상. 자세한 내용은 [Installing GStreamer](https://gstreamer.freedesktop.org/documentation/installing/index.html?gi-language=c)를 참조하세요.

  `apt`가 있는 디바이스에서는 다음 명령을 실행하여 GStreamer를 설치할 수 있습니다.

  ```
  sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-plugins-base-apps
  sudo apt install -y gstreamer1.0-libav
  sudo apt install -y gstreamer1.0-plugins-bad gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-tools
  ```
+ 각 코어 디바이스의 AWS IoT SiteWise 자산입니다. 이 AWS IoT SiteWise 자산은 코어 디바이스를 나타냅니다. 이 자산을 생성하는 방법에 대한 자세한 내용은 *AWS IoT TwinMaker 사용 설명서*의 [AWS IoT TwinMaker video integration](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/video-integration.html)을 참조하세요.
+ 각 코어 디바이스에 연결하는 각 IP 카메라의 AWS IoT SiteWise 자산입니다. 이러한 AWS IoT SiteWise 자산은 각 코어 디바이스로 비디오를 스트리밍하는 카메라를 나타냅니다. 각 카메라의 자산은 카메라에 연결된 코어 디바이스의 자산에 연결되어 있어야 합니다. 카메라 자산에는 Kinesis 비디오 스트림, 인증 보안 암호 및 비디오 스트리밍 파라미터를 지정하기 위해 구성할 수 있는 속성이 있습니다. 카메라 자산을 생성하고 구성하는 방법에 대한 자세한 내용은 *AWS IoT TwinMaker 사용 설명서*의 [AWS IoT TwinMaker video integration](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/video-integration.html)을 참조하세요.
+ 각 IP 카메라의 AWS Secrets Manager 보안 암호입니다. 이 보안 암호에서는 키-값 페어를 정의해야 하며, 여기서 키는 `RTSPStreamUrl`이고 값은 카메라의 URL입니다. 카메라에 인증이 필요한 경우 이 URL에 사용자 이름과 암호를 포함합니다. 이 구성 요소에 필요한 리소스를 생성할 때 스크립트를 사용하여 보안 암호를 생성할 수 있습니다. 자세한 내용은 *AWS IoT TwinMaker 사용 설명서*의 [AWS IoT TwinMaker video integration](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/video-integration.html)을 참조하세요.

  Secrets Manager 콘솔 및 API를 사용하여 추가 보안 암호를 생성할 수도 있습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [보안 암호 생성](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html)을 참조하세요.
+ [Greengrass 토큰 교환 역할은](device-service-role.md) 다음 예제 IAM 정책에 표시된 대로 다음 AWS Secrets Manager AWS IoT SiteWise및 Kinesis Video Streams 작업을 허용해야 합니다.
**참고**  
이 예제 정책에서는 디바이스가 **IPCamera1Url** 및 **IPCamera2Url**이라는 보안 암호 값을 가져올 수 있도록 허용합니다. 각 IP 카메라를 구성할 때 해당 카메라의 URL이 포함된 보안 암호를 지정합니다. 카메라에 인증이 필요한 경우 URL에 사용자 이름과 암호도 지정합니다. 코어 디바이스의 토큰 교환 역할에서 연결할 각 IP 카메라의 보안 암호에 대한 액세스를 허용해야 합니다.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "secretsmanager:GetSecretValue"
        ],
        "Effect": "Allow",
        "Resource": [
        "arn:aws:secretsmanager:us-east-1:123456789012:secret:IPCamera1Url",
    "arn:aws:secretsmanager:us-east-1:123456789012:secret:IPCamera2Url"
        ]
      },
      {
        "Action": [
          "iotsitewise:BatchPutAssetPropertyValue",
          "iotsitewise:DescribeAsset",
          "iotsitewise:DescribeAssetModel",
          "iotsitewise:DescribeAssetProperty",
          "iotsitewise:GetAssetPropertyValue",
          "iotsitewise:ListAssetRelationships",
          "iotsitewise:ListAssets",
          "iotsitewise:ListAssociatedAssets",
          "kinesisvideo:CreateStream",
          "kinesisvideo:DescribeStream",
          "kinesisvideo:GetDataEndpoint",
          "kinesisvideo:PutMedia",
          "kinesisvideo:TagStream"
        ],
        "Effect": "Allow",
        "Resource": [
          "*"
        ]
      }
    ]
  }
  ```

------
**참고**  
고객 관리형 AWS Key Management Service 키를 사용하여 보안 암호를 암호화하는 경우 디바이스 역할도 `kms:Decrypt` 작업을 허용해야 합니다.

### 엔드포인트 및 포트
<a name="kvs-edge-connector-component-endpoints"></a>

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에 다음 엔드포인트 및 포트에 대한 아웃바운드 요청도 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.


| 엔드포인트 | 포트 | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `kinesisvideo.region.amazonaws.com`  | 443 | 예 |  Kinesis Video Streams에 데이터를 업로드합니다.  | 
|  `data.iotsitewise.region.amazonaws.com`  | 443 | 예 |  비디오 스트림 메타데이터를 AWS IoT SiteWise에 게시합니다.  | 
|  `secretsmanager.region.amazonaws.com`  | 443 | 예 |  카메라 URL 보안 암호를 코어 디바이스로 다운로드합니다.  | 

## 종속성
<a name="kvs-edge-connector-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#kvs-edge-connector-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

다음 표에는 이 구성 요소의 버전 1.0.0\$11.0.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=2.0.3 | 하드 | 
| [스트림 관리자](stream-manager-component.md) | >=2.0.9 | 하드 | 

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="kvs-edge-connector-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

`SiteWiseAssetIdForHub`  
이 코어 디바이스를 나타내는 AWS IoT SiteWise 자산의 ID입니다. 이 자산을 생성하고 사용하여 이 구성 요소와 연동하는 방법에 대한 자세한 내용은 *AWS IoT TwinMaker 사용 설명서*의 [AWS IoT TwinMaker video integration](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/video-integration.html)을 참조하세요.

**Example 예: 구성 병합 업데이트**  

```
{
  "SiteWiseAssetIdForHub": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
}
```

## 라이선스
<a name="kvs-edge-connector-component-licenses"></a>

이 구성 요소에는 다음 타사 소프트웨어/라이선스가 포함되어 있습니다.
+ [Quartz Job Scheduler](http://www.quartz-scheduler.org/)/Apache 라이선스 2.0
+ [GStreamer용 Java 바인딩 1.x](https://github.com/gstreamer-java/gst1-java-core)/GNU Lesser General Public License v3.0

## 사용법
<a name="kvs-edge-connector-component-usage"></a>

이 구성 요소를 구성하고 상호 작용하기 위해 코어 디바이스와 코어 디바이스가 연결되는 IP 카메라를 나타내는 AWS IoT SiteWise 자산에 속성을 설정할 수 있습니다. 또한 AWS IoT TwinMaker를 통해 Grafana 대시보드에서 비디오 스트림을 시각화하고 상호 작용할 수 있습니다. 자세한 내용은 *AWS IoT TwinMaker 사용 설명서*의 [AWS IoT TwinMaker video integration](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/video-integration.html)을 참조하세요.

## 로컬 로그 파일
<a name="kvs-edge-connector-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

```
/greengrass/v2/logs/aws.iot.EdgeConnectorForKVS.log
```

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. 를 AWS IoT Greengrass 루트 폴더의 경로`/greengrass/v2`로 바꿉니다.

  ```
  sudo tail -f /greengrass/v2/logs/aws.iot.EdgeConnectorForKVS.log
  ```

## Changelog
<a name="kvs-edge-connector-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  1.0.5  |  일반적인 버그 수정 및 개선 사항.  | 
|  1.0.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/kvs-edge-connector-component.html)  | 
|  1.0.3  |  일반적인 버그 수정 및 개선 사항.  | 
|  1.0.1  |  일반적인 버그 수정 및 개선 사항.  | 
|  1.0.0  |  초기 버전입니다.  | 

## 다음 사항도 참조하세요.
<a name="kvs-edge-connector-component-see-also"></a>
+ [AWS IoT TwinMaker 사용 설명서의TwinMaker란 무엇입니까?](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/what-is-twinmaker.html) *AWS IoT TwinMaker *
+ [AWS IoT TwinMaker 사용 설명서의 TwinMaker 비디오 통합](https://docs.aws.amazon.com/iot-twinmaker/latest/guide/video-integration.html) *AWS IoT TwinMaker *
+ *AWS IoT SiteWise 사용 설명서*의 [란 무엇입니까 AWS IoT SiteWise?](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html) 
+ *AWS IoT SiteWise 사용 설명서*의 [속성 값 업데이트](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/update-attribute-values.html)
+ *AWS Secrets Manager 사용 설명서*의 [AWS Secrets Manager란 무엇입니까?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)
+ *AWS Secrets Manager 사용 설명서*의 [보안 암호 생성 및 관리](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html)

# Greengrass CLI
<a name="greengrass-cli-component"></a>

Greengrass CLI 구성 요소(`aws.greengrass.Cli`)는 코어 디바이스에서 로컬로 구성 요소를 개발하고 디버깅하는 데 사용할 수 있는 로컬 명령줄 인터페이스를 제공합니다. 예를 들어 Greengrass CLI를 사용하면 코어 디바이스에서 로컬 배포를 생성하고 구성 요소를 다시 시작할 수 있습니다.

 AWS IoT Greengrass 코어 소프트웨어를 설치할 때이 구성 요소를 설치할 수 있습니다. 자세한 내용은 [자습서: AWS IoT Greengrass V2 시작하기](getting-started.md) 단원을 참조하십시오.

**중요**  
 <a name="local-dev-tools-production-environment-warning"></a>이 구성 요소는 프로덕션 환경이 아닌 개발 환경에서만 사용하는 것이 좋습니다. 이 구성 요소는 일반적으로 프로덕션 환경에서는 필요하지 않은 정보와 작업에 대한 액세스를 제공합니다. 필요한 코어 디바이스에만 이 구성 요소를 배포하여 최소 권한 원칙을 따르세요.

이 구성 요소를 설치한 후 다음 명령을 실행하여 도움말 설명서를 확인합니다. 이 구성 요소가 설치되면 `/greengrass/v2/bin` 폴더의 `greengrass-cli`에 기호 링크가 추가됩니다. 이 경로에서 Greengrass CLI를 실행하거나 `PATH` 환경 변수에 추가하여 절대 경로 없이 `greengrass-cli`를 실행할 수 있습니다.

------
#### [ Linux or Unix ]

```
/greengrass/v2/bin/greengrass-cli help
```

------
#### [ Windows ]

```
C:\greengrass\v2\bin\greengrass-cli help
```

------

예를 들어 다음 명령은 `com.example.HelloWorld`라는 구성 요소를 다시 시작합니다.

------
#### [ Linux or Unix ]

```
sudo /greengrass/v2/bin/greengrass-cli component restart --names "com.example.HelloWorld"
```

------
#### [ Windows ]

```
C:\greengrass\v2\bin\greengrass-cli component restart --names "com.example.HelloWorld"
```

------

자세한 내용은 [Greengrass 명령줄 인터페이스](gg-cli.md) 단원을 참조하십시오.

**Topics**
+ [버전](#greengrass-cli-component-versions)
+ [유형](#greengrass-cli-component-type)
+ [운영 체제](#greengrass-cli-component-os-support)
+ [요구 사항](#greengrass-cli-component-requirements)
+ [종속성](#greengrass-cli-component-dependencies)
+ [구성](#greengrass-cli-component-configuration)
+ [로컬 로그 파일](#greengrass-cli-component-log-file)
+ [Changelog](#greengrass-cli-component-changelog)

## 버전
<a name="greengrass-cli-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.16.x
+ 2.15.x
+ 2.14.x
+ 2.13.x
+ 2.12.x
+ 2.11.x
+ 2.10.x
+ 2.9.x
+ 2.8.x
+ 2.7.x
+ 2.6.x
+ 2.5.x
+ 2.4.x
+ 2.3.x
+ 2.2.x
+ 2.1.x
+ 2.0.x

## 유형
<a name="greengrass-cli-component-type"></a>

<a name="public-component-type-plugin-para1"></a>이 구성 요소는 플러그인 구성 요소(`aws.greengrass.plugin`)입니다. [Greengrass nucleus는](greengrass-nucleus-component.md) 이 구성 요소를 nucleus와 동일한 Java 가상 머신(JVM)에서 실행합니다. 코어 디바이스에서 구성 요소의 버전을 변경하면 nucleus가 다시 시작됩니다.

<a name="public-component-type-plugin-para2"></a>이 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 단원을 참조하십시오.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="greengrass-cli-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="greengrass-cli-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
+ <a name="greengrass-cli-authorization-requirement"></a> AWS IoT Greengrass 코어 소프트웨어와 상호 작용하려면 Greengrass CLI를 사용할 권한이 있어야 합니다. 다음 중 하나를 수행하여 Greengrass CLI 사용:
  +  AWS IoT Greengrass 코어 소프트웨어를 실행하는 시스템 사용자를 사용합니다.
  + 루트 또는 관리 권한이 있는 사용자를 사용합니다. Linux 코어 디바이스에서 `sudo`를 사용하여 루트 권한을 얻을 수 있습니다.
  + 구성 요소를 배포할 때 `AuthorizedPosixGroups` 또는 `AuthorizedWindowsGroups` 구성 파라미터에 지정한 그룹에 있는 시스템 사용자를 사용합니다. 자세한 내용은 [Greengrass CLI 구성 요소 구성](#greengrass-cli-component-configuration)을 참조하세요.
+ VPC에서 Greengrass CLI 구성 요소의 실행이 지원됩니다.

## 종속성
<a name="greengrass-cli-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#greengrass-cli-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.16.0 ]

다음 표에는이 구성 요소의 버전 2.16.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.12.0 <2.17.0 | 소프트 | 

------
#### [ 2.15.1 ]

다음 표에는이 구성 요소의 버전 2.15.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.12.0 <2.16.0 | 소프트 | 

------
#### [ 2.15.0 ]

다음 표에는이 구성 요소의 버전 2.15.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.12.0 <2.16.0 | 소프트 | 

------
#### [ 2.14.0 – 2.14.3 ]

다음 표에는이 구성 요소의 버전 2.14.0 및 2.14.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.12.0 <2.15.0 | 소프트 | 

------
#### [ 2.13.0 ]

다음 표에는이 구성 요소의 버전 2.13.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.12.0 <2.14.0 | 소프트 | 

------
#### [ 2.12.0 – 2.12.6 ]

다음 표에는 이 구성 요소의 버전 2.12.0\$12.12.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.12.0 <2.13.0 | 소프트 | 

------
#### [ 2.11.0 – 2.11.3 ]

다음 표에는 이 구성 요소의 버전 2.11.0\$12.11.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.11.0 <2.12.0 | 소프트 | 

------
#### [ 2.10.0 – 2.10.3 ]

다음 표에는 이 구성 요소의 버전 2.10.0\$12.10.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.11.0 | 소프트 | 

------
#### [ 2.9.0 – 2.9.6 ]

다음 표에는 이 구성 요소의 버전 2.9.0\$12.9.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.10.0 | 소프트 | 

------
#### [ 2.8.0 – 2.8.1 ]

다음 표에는 이 구성 요소의 버전 2.8.0 및 2.8.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.9.0 | 소프트 | 

------
#### [ 2.7.0 ]

다음 표에는 이 구성 요소의 버전 2.7.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.8.0 | 소프트 | 

------
#### [ 2.6.0 ]

다음 표에는 이 구성 요소의 버전 2.6.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.7.0 | 소프트 | 

------
#### [ 2.5.0 – 2.5.6 ]

다음 표에는 이 구성 요소의 버전 2.5.0\$12.5.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.6.0 | 소프트 | 

------
#### [ 2.4.0 ]

다음 표에는 이 구성 요소의 버전 2.4.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.5.0 | 소프트 | 

------
#### [ 2.3.0 ]

다음 표에는 이 구성 요소의 버전 2.3.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.4.0 | 소프트 | 

------
#### [ 2.2.0 ]

다음 표에는 이 구성 요소의 버전 2.2.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.3.0 | 소프트 | 

------
#### [ 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.2.0 | 소프트 | 

------
#### [ 2.0.x ]

다음 표에는 이 구성 요소의 버전 2.0.x에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.1.0 | 소프트 | 

**참고**  
Greengrass nucleus의 최소 호환 버전은 Greengrass CLI 구성 요소의 패치 버전과 일치합니다.

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="greengrass-cli-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

------
#### [ 2.5.x - 2.14.x ]

`AuthorizedPosixGroups`  <a name="greengrass-cli-component-configuration-authorizedposixgroups"></a>
(선택 사항) 쉼표로 구분된 시스템 그룹 목록이 포함된 문자열. 이러한 시스템 그룹에 Greengrass CLI를 사용하여 AWS IoT Greengrass 코어 소프트웨어와 상호 작용할 수 있는 권한을 부여합니다. 그룹 이름 또는 그룹 ID를 지정할 수 있습니다. 예를 들어 `group1,1002,group3`은 3개의 시스템 그룹(`group1`, `1002` 및 `group3`)에 Greengrass CLI 사용 권한을 부여합니다.  
권한을 부여할 그룹을 지정하지 않으면 Greengrass CLI를 루트 사용자(`sudo`) 또는 AWS IoT Greengrass 코어 소프트웨어를 실행하는 시스템 사용자로 사용할 수 있습니다.

`AuthorizedWindowsGroups`  <a name="greengrass-cli-component-configuration-authorizedwindowsgroups"></a>
(선택 사항) 쉼표로 구분된 시스템 그룹 목록이 포함된 문자열. 이러한 시스템 그룹에 Greengrass CLI를 사용하여 AWS IoT Greengrass 코어 소프트웨어와 상호 작용할 수 있는 권한을 부여합니다. 그룹 이름 또는 그룹 ID를 지정할 수 있습니다. 예를 들어 `group1,1002,group3`은 3개의 시스템 그룹(`group1`, `1002` 및 `group3`)에 Greengrass CLI 사용 권한을 부여합니다.  
권한을 부여할 그룹을 지정하지 않으면 Greengrass CLI를 관리자 또는 AWS IoT Greengrass 코어 소프트웨어를 실행하는 시스템 사용자로 사용할 수 있습니다.

**Example 예: 구성 병합 업데이트**  
다음 예제 구성은 3개의 POSIX 시스템 그룹(`group1`, `1002` 및 `group3`)과 2개의 Windows 사용자 그룹(`Device Operators` 및 `QA Engineers`)에 Greengrass CLI 사용 권한을 부여하도록 지정합니다.  

```
{
  "AuthorizedPosixGroups": "group1,1002,group3",
  "AuthorizedWindowsGroups": "Device Operators,QA Engineers"
}
```

------
#### [ 2.4.x - 2.0.x ]

`AuthorizedPosixGroups`  <a name="greengrass-cli-component-configuration-authorizedposixgroups"></a>
(선택 사항) 쉼표로 구분된 시스템 그룹 목록이 포함된 문자열. 이러한 시스템 그룹에 Greengrass CLI를 사용하여 AWS IoT Greengrass 코어 소프트웨어와 상호 작용할 수 있는 권한을 부여합니다. 그룹 이름 또는 그룹 ID를 지정할 수 있습니다. 예를 들어 `group1,1002,group3`은 3개의 시스템 그룹(`group1`, `1002` 및 `group3`)에 Greengrass CLI 사용 권한을 부여합니다.  
권한을 부여할 그룹을 지정하지 않으면 Greengrass CLI를 루트 사용자(`sudo`) 또는 AWS IoT Greengrass 코어 소프트웨어를 실행하는 시스템 사용자로 사용할 수 있습니다.

**Example 예: 구성 병합 업데이트**  
다음 예제 구성은 3개의 시스템 그룹(`group1`, `1002` 및 `group3`)에 Greengrass CLI 사용 권한을 부여하도록 지정합니다.  

```
{
  "AuthorizedPosixGroups": "group1,1002,group3"
}
```

------

## 로컬 로그 파일
<a name="greengrass-cli-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="greengrass-cli-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.16.1  |  Greengrass nucleus 버전 2.16.1 릴리스용으로 업데이트된 버전입니다.  | 
|  2.16.0  |  Greengrass nucleus 버전 2.16.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.15.1  |  Greengrass nucleus 버전 2.15.1 릴리스용으로 업데이트된 버전입니다.  | 
|  2.15.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-cli-component.html)  | 
|  2.14.3  |  Greengrass nucleus 버전 2.14.3 릴리스용으로 업데이트된 버전입니다.  | 
|  2.14.2  |  Greengrass nucleus 버전 2.14.2 릴리스용으로 업데이트된 버전입니다.  | 
|  2.14.1  |  Greengrass nucleus 버전 2.14.1 릴리스용으로 업데이트된 버전입니다.  | 
|  2.14.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-cli-component.html)  | 
|  2.13.0  |  Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.12.6  |  Greengrass nucleus 버전 2.12.6 릴리스용으로 업데이트된 버전입니다.  | 
|  2.12.5  |  Greengrass nucleus 버전 2.12.5 릴리스용으로 업데이트된 버전입니다.  | 
|  2.12.4  |  Greengrass nucleus 버전 2.12.4 릴리스용으로 업데이트된 버전입니다.  | 
|  2.12.3  |   이 버전은 더 이상 사용할 수 없습니다. 이 버전의 개선 사항은 이 구성 요소의 이후 버전에서 사용할 수 있습니다.  Greengrass nucleus 버전 2.12.3 릴리스용으로 업데이트된 버전입니다.  | 
|  2.12.2  |  Greengrass nucleus 버전 2.12.2 릴리스용으로 업데이트된 버전입니다.  | 
|  2.12.1  |  Greengrass nucleus 버전 2.12.1 릴리스용으로 업데이트된 버전입니다.  | 
|  2.12.0  |  Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.11.3  |  Greengrass nucleus 버전 2.11.3 릴리스용으로 업데이트된 버전입니다.  | 
|  2.11.2  |  Greengrass nucleus 버전 2.11.2 릴리스용으로 업데이트된 버전입니다.  | 
|  2.11.1  |  Greengrass nucleus 버전 2.11.1 릴리스용으로 업데이트된 버전입니다.  | 
|  2.11.0  |  <a name="changelog-cli-2.11.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-cli-component.html)  | 
|  2.10.3  |  Greengrass nucleus 버전 2.10.3 릴리스용으로 업데이트된 버전입니다.  | 
|  2.10.2  |  Greengrass nucleus 버전 2.10.2 릴리스용으로 업데이트된 버전입니다.  | 
|  2.10.1  |  Greengrass nucleus 버전 2.10.1 릴리스용으로 업데이트된 버전입니다.  | 
|  2.10.0  |  Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.9.6  |  Greengrass nucleus 버전 2.9.6 릴리스용으로 업데이트된 버전입니다.  | 
|  2.9.5  |  Greengrass nucleus 버전 2.9.5 릴리스용으로 업데이트된 버전입니다.  | 
|  2.9.4  |  Greengrass nucleus 버전 2.9.4 릴리스용으로 업데이트된 버전입니다.  | 
|  2.9.3  |  Greengrass nucleus 버전 2.9.3 릴리스용으로 업데이트된 버전입니다.  | 
|  2.9.2  |  Greengrass nucleus 버전 2.9.2 릴리스용으로 업데이트된 버전입니다.  | 
|  2.9.1  |  Greengrass nucleus 버전 2.9.1 릴리스용으로 업데이트된 버전입니다.  | 
|  2.9.0  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.8.1  |  Greengrass nucleus 버전 2.8.1 릴리스용으로 업데이트된 버전입니다.  | 
|  2.8.0  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.7.0  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.6.0  |  <a name="changelog-greengrass-cli-2.6.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-cli-component.html)  | 
|  2.5.6  |  Greengrass nucleus 버전 2.5.6 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.5  |  Greengrass nucleus 버전 2.5.5 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.4  |  Greengrass nucleus 버전 2.5.4 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.3  |  Greengrass nucleus 버전 2.5.3 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.2  |  Greengrass nucleus 버전 2.5.2 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.1  |  Greengrass nucleus 버전 2.5.1 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.0  |  <a name="changelog-greengrass-cli-2.5.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-cli-component.html)  | 
|  2.4.0  |  <a name="changelog-greengrass-cli-2.4.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/greengrass-cli-component.html)  | 
|  2.3.0  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.2.0  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.0  |  Greengrass nucleus 버전 2.1.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.5  | Greengrass nucleus 버전 2.0.5 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.4  | Greengrass nucleus 버전 2.0.4 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.3  |  초기 버전입니다.  | 

# IP 감지기
<a name="ip-detector-component"></a>

IP 감지기 구성 요소(`aws.greengrass.clientdevices.IPDetector`)는 다음을 수행합니다.
+ Greengrass 코어 디바이스의 네트워크 연결 정보를 모니터링합니다. 이 정보에는 코어 디바이스의 네트워크 엔드포인트와 MQTT 브로커가 작동하는 포트가 포함됩니다.
+  AWS IoT Greengrass 클라우드 서비스에서 코어 디바이스의 연결 정보를 업데이트합니다.

클라이언트 디바이스는 Greengrass 클라우드 검색을 사용하여 관련 코어 디바이스의 연결 정보를 검색할 수 있습니다. 그런 다음 클라이언트 디바이스는 연결될 때까지 각 코어 디바이스에 대한 연결을 시도할 수 있습니다.

**참고**  <a name="client-device-component-context"></a>
클라이언트 디바이스는 Greengrass 코어 디바이스에 연결되어 처리할 MQTT 메시지와 데이터를 보내는 로컬 IoT 디바이스입니다. 자세한 내용은 [로컬 IoT 디바이스와 상호 작용](interact-with-local-iot-devices.md) 단원을 참조하십시오.

IP 감지기 구성 요소는 코어 디바이스의 기존 연결 정보를 감지하는 정보로 대체합니다. 이 구성 요소는 기존 정보를 제거하므로 IP 감지기 구성 요소를 사용하거나 연결 정보를 수동으로 관리할 수 있습니다.

**Topics**
+ [버전](#ip-detector-component-versions)
+ [유형](#ip-detector-component-type)
+ [운영 체제](#ip-detector-component-os-support)
+ [요구 사항](#ip-detector-component-requirements)
+ [종속성](#ip-detector-component-dependencies)
+ [구성](#ip-detector-component-configuration)
+ [로컬 로그 파일](#ip-detector-component-log-file)
+ [Changelog](#ip-detector-component-changelog)

## 버전
<a name="ip-detector-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.2.x
+ 2.1.x
+ 2.0.x

## 유형
<a name="ip-detector-component-type"></a>

<a name="public-component-type-plugin-para1"></a>이 구성 요소는 플러그인 구성 요소(`aws.greengrass.plugin`)입니다. [Greengrass nucleus는](greengrass-nucleus-component.md) 이 구성 요소를 nucleus와 동일한 Java 가상 머신(JVM)에서 실행합니다. 코어 디바이스에서 구성 요소의 버전을 변경하면 nucleus가 다시 시작됩니다.

<a name="public-component-type-plugin-para2"></a>이 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 단원을 참조하십시오.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="ip-detector-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="ip-detector-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
+ [Greengrass 서비스 역할은](greengrass-service-role.md)에 연결되어 `iot:GetThingShadow` 있어야 AWS 계정 하며 및 `iot:UpdateThingShadow` 권한을 허용해야 합니다.
+ 코어 디바이스의 AWS IoT 정책은 `greengrass:UpdateConnectivityInfo` 권한을 허용해야 합니다. 자세한 내용은 [AWS IoT 데이터 영역 작업에 대한 정책](device-auth.md#iot-policies) 및 [클라이언트 디바이스를 지원하는 최소 AWS IoT 정책](device-auth.md#client-device-support-minimal-iot-policy) 섹션을 참조하세요.
+ 기본 포트 8883 이외의 포트를 사용하도록 코어 디바이스의 MQTT 브로커 구성 요소를 구성하는 경우 IP 감지기 v2.1.0 이상을 사용해야 합니다. 브로커가 작동하는 포트를 보고하도록 구성합니다.
+ 네트워크 설정이 복잡한 경우 IP 감지기 구성 요소에서 클라이언트 디바이스가 코어 디바이스에 연결할 수 있는 엔드포인트를 식별하지 못할 수 있습니다. IP 탐지기 구성 요소가 엔드포인트를 관리할 수 없는 경우 대신 코어 디바이스 엔드포인트를 수동으로 관리해야 합니다. 예를 들어 코어 디바이스가 MQTT 브로커 포트를 전달하는 라우터 뒤에 있는 경우 라우터의 IP 주소를 코어 디바이스의 엔드포인트로 지정해야 합니다. 자세한 내용은 [코어 디바이스 엔드포인트 관리](manage-core-device-endpoints.md) 단원을 참조하십시오.
+ IP 감지기 구성 요소는 VPC에서 실행할 수 있습니다.

## 종속성
<a name="ip-detector-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#ip-detector-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.2.3 ]

다음 표에는 이 구성 요소의 버전 2.2.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.17.0 | 소프트 | 

------
#### [ 2.2.2 ]

다음 표에는 이 구성 요소의 버전 2.2.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.16.0 | 소프트 | 

------
#### [ 2.2.1 ]

다음 표에는 이 구성 요소의 버전 2.2.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.15.0 | 소프트 | 

------
#### [ 2.2.0 ]

다음 표에는 이 구성 요소의 버전 2.2.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.14.0 | 소프트 | 

------
#### [ 2.1.8 – 2.1.9 ]

다음 표에는 이 구성 요소의 버전 2.1.8 및 2.1.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.13.0 | 소프트 | 

------
#### [ 2.1.7 ]

다음 표에는 이 구성 요소의 버전 2.1.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.12.0 | 소프트 | 

------
#### [ 2.1.6 ]

다음 표에는 이 구성 요소의 버전 2.1.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.11.0 | 소프트 | 

------
#### [ 2.1.5 ]

다음 표에는 이 구성 요소의 버전 2.1.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.10.0 | 소프트 | 

------
#### [ 2.1.4 ]

다음 표에는 이 구성 요소의 버전 2.1.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.9.0 | 소프트 | 

------
#### [ 2.1.3 ]

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.8.0 | 소프트 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.7.0 | 소프트 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.6.0 | 소프트 | 

------
#### [ 2.1.0 and 2.0.2 ]

다음 표에는 이 구성 요소의 버전 2.1.0 및 2.0.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.5.0 | 소프트 | 

------
#### [ 2.0.1 ]

다음 표에는 이 구성 요소의 버전 2.0.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.4.0 | 소프트 | 

------
#### [ 2.0.0 ]

다음 표에는 이 구성 요소의 버전 2.0.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.3.0 | 소프트 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="ip-detector-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

------
#### [ 2.2.x ]

`defaultPort`  <a name="ip-detector-component-configuration-default-port"></a>
<a name="ip-detector-component-configuration-default-port-definition"></a>(선택 사항) 이 구성 요소가 IP 주소를 감지할 때 보고할 MQTT 브로커 포트입니다. 기본 포트 8883이 아닌 다른 포트를 사용하도록 MQTT 브로커를 구성하는 경우 이 파라미터를 지정해야 합니다.  
기본값: `8883`

`includeIPv4LoopbackAddrs`  <a name="ip-detector-component-configuration-include-ipv4-loopback-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-loopback-addrs-definition"></a>(선택 사항) 이 옵션을 활성화하여 IPv4 루프백 주소를 감지하고 보고할 수 있습니다. 이들은 디바이스가 자체적으로 통신할 수 있는 IP 주소(예: `localhost`)입니다. 코어 디바이스와 클라이언트 디바이스가 동일한 시스템에서 실행되는 테스트 환경에서 이 옵션을 사용합니다.  
기본값: `false`

`includeIPv4LinkLocalAddrs`  <a name="ip-detector-component-configuration-include-ipv4-link-local-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-link-local-addrs-definition"></a>(선택 사항) 이 옵션을 활성화하여 IPv4 [링크-로컬 주소](https://en.wikipedia.org/wiki/Link-local_address)를 감지하고 보고할 수 있습니다. 코어 디바이스의 네트워크에 DHCP(Dynamic Host Configuration Protocol) 또는 정적 할당 IP 주소가 없는 경우 이 옵션을 사용합니다.  
기본값: `false`

`includeIPv6LoopbackAddrs`  <a name="ip-detector-component-configuration-include-ipv6-loopback-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv6-loopback-addrs-definition"></a>(선택 사항) 이 옵션을 활성화하여 IPv6 루프백 주소를 감지하고 보고할 수 있습니다. 이들은 디바이스가 자체적으로 통신할 수 있는 IP 주소(예: `localhost`)입니다. 코어 디바이스와 클라이언트 디바이스가 동일한 시스템에서 실행되는 테스트 환경에서 이 옵션을 사용합니다. 이 옵션을 사용하려면 `includeIPv4Addrs`를 `false`, `includeIPv6Addrs`를 `true`로 설정해야 합니다.  
기본값: `false`

`includeIPv6LinkLocalAddrs`  <a name="ip-detector-component-configuration-include-ipv6-link-local-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv6-link-local-addrs-definition"></a>(선택 사항) 이 옵션을 활성화하여 IPv6 [링크-로컬 주소](https://en.wikipedia.org/wiki/Link-local_address)를 감지하고 보고할 수 있습니다. 코어 디바이스의 네트워크에 DHCP(Dynamic Host Configuration Protocol) 또는 정적 할당 IP 주소가 없는 경우 이 옵션을 사용합니다. 이 옵션을 사용하려면 `includeIPv4Addrs`를 `false`, `includeIPv6Addrs`를 `true`로 설정해야 합니다.  
기본값: `false`

`includeIPv4Addrs`  <a name="ip-detector-component-configuration-include-ipv4-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-addrs-definition"></a>(선택 사항) 기본값은 `true`로 설정됩니다. 이 옵션을 활성화하여 코어 디바이스에서 찾은 IPv4 주소를 게시할 수 있습니다.  
기본값: `true`

`includeIPv6Addrs`  <a name="ip-detector-component-configuration-include-ipv6-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv6-addrs-definition"></a>(선택 사항) 이 옵션을 활성화하여 코어 디바이스에서 찾은 IPv6 주소를 게시할 수 있습니다. 이 옵션을 사용하려면 `includeIPv4Addrs`를 `false`로 설정합니다.  
기본값: `false`

------
#### [ 2.1.x ]

`defaultPort`  <a name="ip-detector-component-configuration-default-port"></a>
<a name="ip-detector-component-configuration-default-port-definition"></a>(선택 사항) 이 구성 요소가 IP 주소를 감지할 때 보고할 MQTT 브로커 포트입니다. 기본 포트 8883이 아닌 다른 포트를 사용하도록 MQTT 브로커를 구성하는 경우 이 파라미터를 지정해야 합니다.  
기본값: `8883`

`includeIPv4LoopbackAddrs`  <a name="ip-detector-component-configuration-include-ipv4-loopback-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-loopback-addrs-definition"></a>(선택 사항) 이 옵션을 활성화하여 IPv4 루프백 주소를 감지하고 보고할 수 있습니다. 이들은 디바이스가 자체적으로 통신할 수 있는 IP 주소(예: `localhost`)입니다. 코어 디바이스와 클라이언트 디바이스가 동일한 시스템에서 실행되는 테스트 환경에서 이 옵션을 사용합니다.  
기본값: `false`

`includeIPv4LinkLocalAddrs`  <a name="ip-detector-component-configuration-include-ipv4-link-local-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-link-local-addrs-definition"></a>(선택 사항) 이 옵션을 활성화하여 IPv4 [링크-로컬 주소](https://en.wikipedia.org/wiki/Link-local_address)를 감지하고 보고할 수 있습니다. 코어 디바이스의 네트워크에 DHCP(Dynamic Host Configuration Protocol) 또는 정적 할당 IP 주소가 없는 경우 이 옵션을 사용합니다.  
기본값: `false`

------
#### [ 2.0.x ]

`includeIPv4LoopbackAddrs`  <a name="ip-detector-component-configuration-include-ipv4-loopback-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-loopback-addrs-definition"></a>(선택 사항) 이 옵션을 활성화하여 IPv4 루프백 주소를 감지하고 보고할 수 있습니다. 이들은 디바이스가 자체적으로 통신할 수 있는 IP 주소(예: `localhost`)입니다. 코어 디바이스와 클라이언트 디바이스가 동일한 시스템에서 실행되는 테스트 환경에서 이 옵션을 사용합니다.  
기본값: `false`

`includeIPv4LinkLocalAddrs`  <a name="ip-detector-component-configuration-include-ipv4-link-local-addrs"></a>
<a name="ip-detector-component-configuration-include-ipv4-link-local-addrs-definition"></a>(선택 사항) 이 옵션을 활성화하여 IPv4 [링크-로컬 주소](https://en.wikipedia.org/wiki/Link-local_address)를 감지하고 보고할 수 있습니다. 코어 디바이스의 네트워크에 DHCP(Dynamic Host Configuration Protocol) 또는 정적 할당 IP 주소가 없는 경우 이 옵션을 사용합니다.  
기본값: `false`

------

## 로컬 로그 파일
<a name="ip-detector-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="ip-detector-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.2.3  |  Greengrass nucleus 버전 2.16.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.2.2  | Greengrass nucleus 버전 2.15.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.2.1  | Greengrass nucleus 버전 2.14.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.2.0  | Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/ip-detector-component.html)  | 
|  2.1.9  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/ip-detector-component.html)  | 
|  2.1.8  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.7  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.6  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.5  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.4  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.3  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/ip-detector-component.html)  | 
|  2.1.1  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/ip-detector-component.html)  | 
|  2.0.2  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.1  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.0  |  초기 버전입니다.  | 

# Firehose
<a name="kinesis-firehose-component"></a>

Firehose 구성 요소(`aws.greengrass.KinesisFirehose`)는 Amazon Data Firehose 전송 스트림을 통해 Amazon S3, Amazon Redshift, Amazon OpenSearch Service 등의 대상에 데이터를 게시합니다. 자세한 내용은 *Amazon Data Firehose 개발자 안내서*의 [Amazon Data Firehose란?](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html)을 참조하세요.

이 구성 요소를 사용하여 Kinesis 전송 스트림에 게시하려면 이 구성 요소가 구독하는 주제에 메시지를 게시합니다. 기본적으로 이 구성 요소는 `kinesisfirehose/message` 및 `kinesisfirehose/message/binary/#` [로컬 게시/구독](ipc-publish-subscribe.md) 주제를 구독합니다. 이 구성 요소를 배포할 때 AWS IoT Core MQTT 주제를 포함한 다른 주제를 지정할 수 있습니다.

**참고**  
이 구성 요소는 Firehose 커넥터 in AWS IoT Greengrass V1과 유사한 기능을 제공합니다. 자세한 내용은 *AWS IoT Greengrass V1 개발자 안내서*의 [Firehose 커넥터](https://docs.aws.amazon.com/greengrass/latest/developerguide/kinesis-firehose-connector.html)를 참조하세요.

**Topics**
+ [버전](#kinesis-firehose-component-versions)
+ [Type](#kinesis-firehose-component-type)
+ [운영 체제](#kinesis-firehose-component-os-support)
+ [요구 사항](#kinesis-firehose-component-requirements)
+ [종속성](#kinesis-firehose-component-dependencies)
+ [구성](#kinesis-firehose-component-configuration)
+ [입력 데이터](#kinesis-firehose-component-input-data)
+ [출력 데이터](#kinesis-firehose-component-output-data)
+ [로컬 로그 파일](#kinesis-firehose-component-log-file)
+ [라이선스](#kinesis-firehose-component-licenses)
+ [Changelog](#kinesis-firehose-component-changelog)
+ [다음 사항도 참조하세요.](#kinesis-firehose-component-see-also)

## 버전
<a name="kinesis-firehose-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.1.x
+ 2.0.x

## Type
<a name="kinesis-firehose-component-type"></a>

<a name="public-component-type-lambda"></a>이 <a name="public-component-type-lambda-phrase"></a>구성 요소는 Lambda 구성 요소(`aws.greengrass.lambda`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)에서는 [Lambda 런처 구성 요소](lambda-launcher-component.md)를 사용하여 이 구성 요소의 Lambda 함수를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="kinesis-firehose-component-os-support"></a>

이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.

## 요구 사항
<a name="kinesis-firehose-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
+ <a name="core-device-lambda-function-requirements"></a>Lambda 함수를 실행하려면 코어 디바이스가 요구 사항을 충족해야 합니다. 코어 디바이스에서 컨테이너화된 Lambda 함수를 실행하려면 디바이스가 요구 사항을 충족해야 합니다. 자세한 내용은 [Lambda 함수 요구 사항](setting-up.md#greengrass-v2-lambda-requirements) 단원을 참조하십시오.
+ <a name="public-component-python3-requirement"></a>코어 장치에 설치되고 PATH 환경 변수에 추가된 [Python](https://www.python.org/) 버전 3.7입니다.
+ 다음 예제 IAM 정책에 표시된 대로 [Greengrass 디바이스 역할](device-service-role.md)에서 `firehose:PutRecord` 및 `firehose:PutRecordBatch` 작업을 허용해야 합니다.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "firehose:PutRecord",
          "firehose:PutRecordBatch"
        ],
        "Effect": "Allow",
        "Resource": [
          "arn:aws:firehose:us-east-1:123456789012:deliverystream/stream-name"
        ]
      }
    ]
  }
  ```

------

  이 구성 요소의 입력 메시지 페이로드에서 기본 전송 스트림을 동적으로 재정의할 수 있습니다. 애플리케이션에서 이 기능을 사용하는 경우 IAM 정책에 모든 대상 스트림이 리소스로 포함되어야 합니다. 리소스에 대한 세부적 또는 조건부 액세스 권한을 부여할 수 있습니다(예: 와일드카드 `*` 이름 지정 스키마를 사용해).
+ <a name="connector-component-legacy-subscription-router-dependency"></a>이 구성 요소의 출력 데이터를 수신하려면 이 구성 요소를 배포할 때 [레거시 구독 라우터 구성 요소](legacy-subscription-router-component.md)(`aws.greengrass.LegacySubscriptionRouter`)에 대한 다음 구성 업데이트를 병합해야 합니다. 이 구성에서는 이 구성 요소가 응답을 게시하는 주제를 지정합니다.

------
#### [ Legacy subscription router v2.1.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-kinesisfirehose": {
        "id": "aws-greengrass-kinesisfirehose",
        "source": "component:aws.greengrass.KinesisFirehose",
        "subject": "kinesisfirehose/message/status",
        "target": "cloud"
      }
    }
  }
  ```

------
#### [ Legacy subscription router v2.0.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-kinesisfirehose": {
        "id": "aws-greengrass-kinesisfirehose",
        "source": "arn:aws:lambda:region:aws:function:aws-greengrass-kinesisfirehose:version",
        "subject": "kinesisfirehose/message/status",
        "target": "cloud"
      }
    }
  }
  ```<a name="connector-component-legacy-subscription-router-dependency-replace"></a>
  + *region*을 사용하는 AWS 리전 로 바꿉니다.
  + *버전*을 이 구성 요소에서 실행되는 Lambda 함수의 버전으로 바꿉니다. Lambda 함수 버전을 찾으려면 배포하려는 이 구성 요소의 버전에 대한 레시피를 확인해야 합니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서 이 구성 요소의 세부 정보 페이지를 열고 **Lambda 함수** 키-값 페어를 찾습니다. 이 키-값 페어에는 Lambda 함수의 이름과 버전이 포함되어 있습니다.

**중요**  <a name="connector-component-legacy-subscription-router-dependency-note"></a>
이 구성 요소를 배포할 때마다 레거시 구독 라우터의 Lambda 함수 버전을 업데이트해야 합니다. 이를 통해 배포하는 구성 요소 버전에 맞는 올바른 Lambda 함수 버전을 사용할 수 있습니다.

------

  <a name="connector-component-create-deployments"></a>자세한 내용은 [배포 만들기](create-deployments.md) 단원을 참조하십시오.
+ Firehose 구성 요소는 VPC에서 실행할 수 있습니다. 이 구성 요소를 VPC에 배포하려면 다음이 필요합니다.
  + Firehose 구성 요소에는 VPC 엔드포인트가 `com.amazonaws.region.kinesis-firehose`인 `firehose.region.amazonaws.com`에 대한 연결이 있어야 합니다.

### 엔드포인트 및 포트
<a name="kinesis-firehose-component-endpoints"></a>

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에 다음 엔드포인트 및 포트에 대한 아웃바운드 요청도 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.


| 엔드포인트 | 포트 | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `firehose.region.amazonaws.com`  | 443 | 예 |  Firehose에 데이터를 업로드합니다.  | 

## 종속성
<a name="kinesis-firehose-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#kinesis-firehose-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.1.10 ]

다음 표에는 이 구성 요소의 버전 2.1.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.16.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.9 ]

다음 표에는 이 구성 요소의 버전 2.1.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.15.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.8 ]

다음 표에는 이 구성 요소의 버전 2.1.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.14.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.7 ]

다음 표에는 이 구성 요소의 버전 2.1.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.6 ]

다음 표에는 이 구성 요소의 버전 2.1.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.5 ]

다음 표에는 이 구성 요소의 버전 2.1.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.4 ]

다음 표에는 이 구성 요소의 버전 2.1.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.3 ]

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.8 - 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.0.8 및 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.7 ]

다음 표에는 이 구성 요소의 버전 2.0.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.6 ]

다음 표에는 이 구성 요소의 버전 2.0.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.5 ]

다음 표에는 이 구성 요소의 버전 2.0.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.4 ]

다음 표에는 이 구성 요소의 버전 2.0.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.3 ]

다음 표에는 이 구성 요소의 버전 2.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.3 <2.1.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | >=1.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | >=1.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=1.0.0  | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="kinesis-firehose-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

**참고**  <a name="connector-component-lambda-parameters"></a>
이 구성 요소의 기본 구성에는 Lambda 함수 파라미터가 포함되어 있습니다. 디바이스에서 다음 파라미터만 사용하여 이 구성 요소를 구성하는 것이 좋습니다.

`lambdaParams`  
이 구성 요소의 Lambda 함수에 대한 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`EnvironmentVariables`  
Lambda 함수의 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`DEFAULT_DELIVERY_STREAM_ARN`  
구성 요소가 데이터를 보내는 기본 Firehose 전송 스트림의 ARN입니다. 입력 메시지 페이로드의 `delivery_stream_arn` 속성으로 대상 스트림을 재정의할 수 있습니다.  
코어 디바이스 역할에서 모든 대상 전송 스트림에 대해 필요한 작업을 허용해야 합니다. 자세한 내용은 [요구 사항](#kinesis-firehose-component-requirements) 단원을 참조하십시오.  
`PUBLISH_INTERVAL`  
(선택 사항) 구성 요소가 Firehose에 일괄 처리된 데이터를 게시하기 전에 대기할 최대 시간(초)입니다. 지표를 받자마자 배치 처리 없이 게시하도록 구성 요소를 구성하려면 `0`을 지정합니다.  
이 값은 최대 900초가 될 수 있습니다.  
기본값: 10초  
`DELIVERY_STREAM_QUEUE_SIZE`  
(선택 사항) 구성 요소가 동일한 전송 스트림에 대한 새 레코드를 거부하기 전에 메모리에 유지할 최대 레코드 수입니다.  
이 값은 2,000개 이상 레코드여야 합니다.  
기본값: 5,000개 레코드

`containerMode`  <a name="connector-component-container-mode-parameter"></a>
(선택 사항) 이 구성 요소에 대한 컨테이너화 모드입니다. 다음 옵션 중 하나를 선택합니다.  <a name="lambda-function-component-container-mode-parameter"></a>
+ `NoContainer` – 구성 요소가 격리된 런타임 환경에서 실행되지 않습니다.
+ `GreengrassContainer` - 구성 요소는 AWS IoT Greengrass 컨테이너 내의 격리된 런타임 환경에서 실행됩니다.
기본값: `GreengrassContainer`

`containerParams`  
<a name="connector-component-container-params-description"></a>(선택 사항) 이 구성 요소에 대한 컨테이너 파라미터를 포함하는 객체입니다. `containerMode`에 `GreengrassContainer`를 지정하면 구성 요소에서 이러한 파라미터를 사용합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`memorySize`  
<a name="connector-component-container-params-memory-size-description"></a>(선택 사항) 구성 요소에 할당되는 메모리 양(킬로바이트)입니다.  
기본값은 64MB(65,535KB)입니다.

`pubsubTopics`  <a name="connector-component-pubsub-topics-parameter"></a>
(선택 사항) 구성 요소에서 메시지를 수신하려고 구독하는 주제를 포함하는 객체입니다. 각 주제와 구성 요소가 AWS IoT Core 또는 로컬 게시/구독 주제의 MQTT 주제를 구독하는지 여부를 지정할 수 있습니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`0` – 문자열 형태의 배열 인덱스입니다.  
다음 정보를 포함하는 객체입니다.    
`type`  
(선택 사항) 이 구성 요소에서 메시지 구독에 사용하는 게시/구독 메시징의 유형입니다. 다음 옵션 중 하나를 선택합니다.  
+ `PUB_SUB` – 로컬 게시/구독 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 섹션을 참조하세요.
+ `IOT_CORE` - AWS IoT Core MQTT 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.
기본값: `PUB_SUB`  
`topic`  
(선택 사항) 구성 요소가 메시지를 수신하기 위해 구독하는 주제입니다. `type`에 `IotCore`를 지정하면 이 주제에서 MQTT 와일드카드(`+` 및 `#`)를 사용할 수 있습니다.

**Example 예: 구성 병합 업데이트(컨테이너 모드)**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream"
    }
  },
  "containerMode": "GreengrassContainer"
}
```

**Example 예: 구성 병합 업데이트(컨테이너 없음 모드)**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream"
    }
  },
  "containerMode": "NoContainer"
}
```

## 입력 데이터
<a name="kinesis-firehose-component-input-data"></a>

이 구성 요소는 다음 주제에 대한 스트림 콘텐츠를 수락하고 이 콘텐츠를 대상 전송 스트림에 전송합니다. 구성 요소는 두 가지 유형의 입력 데이터를 수락합니다.
+ `kinesisfirehose/message` 주제에 대한 JSON 데이터.
+ `kinesisfirehose/message/binary/#` 주제에 대한 이진 데이터.

**JSON 데이터에 대한 기본 주제(로컬 게시/구독):** `kinesisfirehose/message`  
<a name="connector-component-input-properties"></a>메시지는 다음 속성을 수락합니다. 입력 메시지는 JSON 형식이어야 합니다.    
`request`  
기본 스트림과 다른 경우 전송 스트림과 대상 전송 스트림으로 보낸 데이터입니다.  
유형: 다음 정보를 포함하는 `object`입니다.    
`data`  
전송 스트림으로 보낸 데이터입니다.  
유형: `string`  
`delivery_stream_arn`  
(선택 사항) 대상 Firehose 전송 스트림의 ARN입니다. 기본 전송 스트림을 재정의하려면 이 속성을 지정합니다.  
유형: `string`  
`id`  <a name="connector-component-input-property-id"></a>
요청에 대한 임의의 ID입니다. 이 속성을 사용하여 입력 요청을 출력 응답에 매핑할 수 있습니다. 이 속성을 지정하면 구성 요소는 응답 객체의 `id` 속성을 해당 값으로 설정합니다.  
유형: `string`

**Example 입력 예**  

```
{
  "request": {
    "delivery_stream_arn": "arn:aws:firehose:region:account-id:deliverystream/stream2-name",
    "data": "Data to send to the delivery stream."
  },
  "id": "request123"
}
```

**이진 데이터에 대한 기본 주제(로컬 게시/구독):** `kinesisfirehose/message/binary/#`  
이 주제는 이진 데이터가 포함된 메시지를 보내는데 사용합니다. 이 구성 요소는 이진 데이터를 구문 분석하지 않습니다. 구성 요소는 데이터를 있는 그대로 스트리밍합니다.  
입력 요청을 출력 응답에 매핑하려면 메시지 주제의 `#` 와일드카드를 임의의 요청 ID로 바꿉니다. 예를 들어, 메시지를 `kinesisfirehose/message/binary/request123`에 게시한 경우 응답 객체의 `id` 속성이 `request123`으로 설정됩니다.  
요청을 응답에 매핑하지 않으려는 경우에는 메시지를 `kinesisfirehose/message/binary/`에 게시할 수 있습니다. 반드시 후행 슬래시(`/`)를 포함해야 합니다.

## 출력 데이터
<a name="kinesis-firehose-component-output-data"></a>

 <a name="connector-component-output-data"></a>이 구성 요소는 기본적으로 다음 MQTT 주제에 대한 출력 데이터로 응답을 게시합니다. [레거시 구독 라우터 구성 요소](legacy-subscription-router-component.md)의 구성에서 이 주제를 `subject`로 지정해야 합니다. 사용자 지정 구성 요소에서 이 주제에 대한 메시지를 구독하는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.

**기본 주제(AWS IoT Core MQTT):** `kinesisfirehose/message/status`

**Example 출력 예시**  
응답에는 배치로 전송된 각 데이터 레코드의 상태가 포함됩니다.  

```
{
  "response": [
    {
      "ErrorCode": "error",
      "ErrorMessage": "test error",
      "id": "request123",
      "status": "fail"
    },
    {
      "firehose_record_id": "xyz2",
      "id": "request456",
      "status": "success"
    },
    {
      "firehose_record_id": "xyz3",
      "id": "request890",
      "status": "success"
    }
  ]
}
```

**참고**  <a name="connector-component-retryable-error"></a>
구성 요소에서는 연결 오류와 같은 재시도할 수 있는 오류가 감지되면 다음 배치에서 게시를 다시 시도합니다.

## 로컬 로그 파일
<a name="kinesis-firehose-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

```
/greengrass/v2/logs/aws.greengrass.KinesisFirehose.log
```

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. 를 AWS IoT Greengrass 루트 폴더의 경로`/greengrass/v2`로 바꿉니다.

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.KinesisFirehose.log
  ```

## 라이선스
<a name="kinesis-firehose-component-licenses"></a>

이 구성 요소에는 다음 타사 소프트웨어/라이선스가 포함되어 있습니다.<a name="boto-3-licenses"></a>
+ [AWS SDK for Python (Boto3)](https://pypi.org/project/boto3/)/Apache 라이선스 2.0
+ [botocore](https://pypi.org/project/botocore/)/Apache 라이선스 2.0
+ [dateutil](https://pypi.org/project/python-dateutil/1.4/)/PSF 라이선스
+ [docutils](https://pypi.org/project/docutils/)/BSD 라이선스, GNU 일반 공개 라이선스(GPL), Python Software Foundation 라이선스, 퍼블릭 도메인
+ [jmespath](https://pypi.org/project/jmespath/)/MIT 라이선스
+ [s3transfer](https://pypi.org/project/s3transfer/)/Apache 라이선스 2.0
+ [urllib3](https://pypi.org/project/urllib3/)/MIT 라이선스

<a name="component-core-software-license"></a>이 구성 요소는 [Greengrass 코어 소프트웨어 라이선스 계약](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)에 따라 릴리스됩니다.

## Changelog
<a name="kinesis-firehose-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.1.10  | Greengrass nucleus 버전 2.15.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.9  | Greengrass nucleus 버전 2.14.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.8  | Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.7  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.6  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.5  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.4  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.3  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.2  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.1  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/kinesis-firehose-component.html)  | 
|  2.0.8  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.7  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.6  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.5  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.4  |  Greengrass nucleus 버전 2.1.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.3  |  초기 버전입니다.  | 

## 다음 사항도 참조하세요.
<a name="kinesis-firehose-component-see-also"></a>
+ *Amazon Kinesis Data Firehose 개발자 가이드*의 [Amazon Kinesis Data Firehose란?](https://docs.aws.amazon.com/firehose/latest/dev/what-is-this-service.html)

# Lambda 런처
<a name="lambda-launcher-component"></a>

Lambda 시작 관리자 구성 요소(`aws.greengrass.LambdaLauncher`)는 AWS IoT Greengrass 코어 디바이스에서 함수를 시작하고 중지 AWS Lambda 합니다. 또한 이 구성 요소는 컨테이너화를 설정하고 지정하는 사용자로 프로세스를 실행합니다.

**참고**  <a name="lambda-component-dependency-note"></a>
코어 디바이스에 Lambda 함수 구성 요소를 배포하면 배포에 이 구성 요소도 포함됩니다. 자세한 내용은 [AWS Lambda 함수 실행](run-lambda-functions.md) 단원을 참조하십시오.

**Topics**
+ [버전](#lambda-launcher-component-versions)
+ [유형](#lambda-launcher-component-type)
+ [운영 체제](#lambda-launcher-component-os-support)
+ [요구 사항](#lambda-launcher-component-requirements)
+ [종속성](#lambda-launcher-component-dependencies)
+ [구성](#lambda-launcher-component-configuration)
+ [로컬 로그 파일](#lambda-launcher-component-log-file)
+ [Changelog](#lambda-launcher-component-changelog)

## 버전
<a name="lambda-launcher-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.0.x

## 유형
<a name="lambda-launcher-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="lambda-launcher-component-os-support"></a>

이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.

## 요구 사항
<a name="lambda-launcher-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
+ <a name="core-device-lambda-function-requirements"></a>Lambda 함수를 실행하려면 코어 디바이스가 요구 사항을 충족해야 합니다. 코어 디바이스에서 컨테이너화된 Lambda 함수를 실행하려면 디바이스가 요구 사항을 충족해야 합니다. 자세한 내용은 [Lambda 함수 요구 사항](setting-up.md#greengrass-v2-lambda-requirements) 단원을 참조하십시오.
+ Lambda 런처 구성 요소는 VPC에서 실행할 수 있습니다.

## 종속성
<a name="lambda-launcher-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#lambda-launcher-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.0.11 – 2.0.13 ]

다음 표에는 이 구성 요소의 버전 2.0.11\$12.0.13에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Lambda 관리자](lambda-manager-component.md) | >=2.0.0 <2.4.0  | 하드 | 

------
#### [ 2.0.9 – 2.0.10 ]

다음 표에는 이 구성 요소의 버전 2.0.9\$12.0.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Lambda 관리자](lambda-manager-component.md) | >=2.0.0 <2.3.0  | 하드 | 

------
#### [ 2.0.4 - 2.0.8 ]

다음 표에는 이 구성 요소의 버전 2.0.4\$12.0.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Lambda 관리자](lambda-manager-component.md) | >=2.0.0 <2.2.0  | 하드 | 

------
#### [ 2.0.3 ]

다음 표에는 이 구성 요소의 버전 2.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Lambda 관리자](lambda-manager-component.md) | >=2.0.3 <2.1.0 | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="lambda-launcher-component-configuration"></a>

이 구성 요소에는 구성 파라미터가 없습니다.

## 로컬 로그 파일
<a name="lambda-launcher-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

```
/greengrass/v2/logs/lambdaFunctionComponentName.log
```

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. 를 AWS IoT Greengrass 루트 폴더의 경로`/greengrass/v2`로 바꾸고 *lambdaFunctionComponentName*을이 구성 요소가 시작하는 Lambda 함수 구성 요소의 이름으로 바꿉니다.

  ```
  sudo tail -f /greengrass/v2/logs/lambdaFunctionComponentName.log
  ```

## Changelog
<a name="lambda-launcher-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.0.13  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-launcher-component.html)  | 
|  2.0.12  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-launcher-component.html)  | 
|  2.0.11  |  Lambda 관리자 2.3.0이 지원됩니다.  | 
|  2.0.10  |  <a name="changelog-lambda-launcher-2.0.10"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-launcher-component.html)  | 
|  2.0.9  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.8  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.7  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.6  |  일반 성능 향상 및 버그 수정.  | 
|  2.0.4  |  <a name="changelog-lambda-launcher-2.0.4"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-launcher-component.html)  | 
|  2.0.3  |  초기 버전입니다.  | 

# Lambda 관리자
<a name="lambda-manager-component"></a>

Lambda 관리자 구성 요소(`aws.greengrass.LambdaManager`)는 Greengrass 코어 디바이스에서 실행되는 AWS Lambda 함수에 대한 작업 항목 및 프로세스 간 통신을 관리합니다.

**참고**  <a name="lambda-component-dependency-note"></a>
코어 디바이스에 Lambda 함수 구성 요소를 배포하면 배포에 이 구성 요소도 포함됩니다. 자세한 내용은 [AWS Lambda 함수 실행](run-lambda-functions.md) 단원을 참조하십시오.

**Topics**
+ [버전](#lambda-manager-component-versions)
+ [운영 체제](#lambda-manager-component-os-support)
+ [유형](#lambda-manager-component-type)
+ [요구 사항](#lambda-manager-component-requirements)
+ [종속성](#lambda-manager-component-dependencies)
+ [구성](#lambda-manager-component-configuration)
+ [로컬 로그 파일](#lambda-manager-component-log-file)
+ [Changelog](#lambda-manager-component-changelog)

## 버전
<a name="lambda-manager-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.3.x
+ 2.2.x
+ 2.1.x
+ 2.0.x

## 운영 체제
<a name="lambda-manager-component-os-support"></a>

이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.

## 유형
<a name="lambda-manager-component-type"></a>

<a name="public-component-type-plugin-para1"></a>이 구성 요소는 플러그인 구성 요소(`aws.greengrass.plugin`)입니다. [Greengrass nucleus는](greengrass-nucleus-component.md) 이 구성 요소를 nucleus와 동일한 Java 가상 머신(JVM)에서 실행합니다. 코어 디바이스에서 구성 요소의 버전을 변경하면 nucleus가 다시 시작됩니다.

<a name="public-component-type-plugin-para2"></a>이 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 단원을 참조하십시오.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 요구 사항
<a name="lambda-manager-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
+ <a name="core-device-lambda-function-requirements"></a>Lambda 함수를 실행하려면 코어 디바이스가 요구 사항을 충족해야 합니다. 코어 디바이스에서 컨테이너화된 Lambda 함수를 실행하려면 디바이스가 요구 사항을 충족해야 합니다. 자세한 내용은 [Lambda 함수 요구 사항](setting-up.md#greengrass-v2-lambda-requirements) 단원을 참조하십시오.
+ Lambda 관리자 구성 요소는 VPC에서 실행할 수 있습니다.

## 종속성
<a name="lambda-manager-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#lambda-manager-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.3.7 ]

다음 표에는 이 구성 요소의 버전 2.3.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.17.0 | 소프트 | 

------
#### [ 2.3.6 ]

다음 표에는이 구성 요소의 버전 2.3.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.16.0  | 소프트 | 

------
#### [ 2.3.5 ]

다음 표에는이 구성 요소의 버전 2.3.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.15.0  | 소프트 | 

------
#### [ 2.3.4 ]

다음 표에는 이 구성 요소의 버전 2.3.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.14.0  | 소프트 | 

------
#### [ 2.3.2 and 2.3.3 ]

다음 표에는 이 구성 요소의 버전 2.3.2 및 2.3.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.13.0  | 소프트 | 

------
#### [ 2.2.10 and 2.3.1 ]

다음 표에는 이 구성 요소의 버전 2.2.10 및 2.3.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.12.0  | 소프트 | 

------
#### [ 2.2.8 and 2.2.9 ]

다음 표에는 이 구성 요소의 버전 2.2.8 및 2.2.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.11.0  | 소프트 | 

------
#### [ 2.2.7 ]

다음 표에는 이 구성 요소의 버전 2.2.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.10.0  | 소프트 | 

------
#### [ 2.2.6 ]

다음 표에는 이 구성 요소의 버전 2.2.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.9.0  | 소프트 | 

------
#### [ 2.2.5 ]

다음 표에는 이 구성 요소의 버전 2.2.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.8.0  | 소프트 | 

------
#### [ 2.2.4 ]

다음 표에는 이 구성 요소의 버전 2.2.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.7.0  | 소프트 | 

------
#### [ 2.2.1 - 2.2.3 ]

다음 표에는 이 구성 요소의 버전 2.2.1\$12.2.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.6.0  | 소프트 | 

------
#### [ 2.2.0 ]

다음 표에는 이 구성 요소의 버전 2.2.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.5.0 <2.6.0  | 소프트 | 

------
#### [ 2.1.3 and 2.1.4 ]

다음 표에는 이 구성 요소의 버전 2.1.3 및 2.1.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.5.0  | 소프트 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.4.0  | 소프트 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.3.0  | 소프트 | 

------
#### [ 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.2.0  | 소프트 | 

------
#### [ 2.0.x ]

다음 표에는 이 구성 요소의 버전 2.0.x에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.3 <2.1.0  | 소프트 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="lambda-manager-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

`logHandlerMode`  
Lambda 관리자 버전 2.3.0 이상에만 해당합니다.
사용할 Lambda 로그 관리자의 구현을 선택하는 데 사용됩니다. Lambda 로그를 읽는 데 더 적은 스레드를 사용하려면 값을 `optimized`로 설정합니다.

`getResultTimeoutInSecond`  
(선택 사항) 시간이 초과되기 전에 Lambda 함수가 실행될 수 있는 최대 시간(초)입니다.  
기본값: `60`

## 로컬 로그 파일
<a name="lambda-manager-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

```
/greengrass/v2/logs/greengrass.log
```

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. 를 AWS IoT Greengrass 루트 폴더의 경로`/greengrass/v2`로 바꿉니다.

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

## Changelog
<a name="lambda-manager-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.3.7  |  Greengrass nucleus 버전 2.16.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.3.6  | Greengrass nucleus 버전 2.15.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.3.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.3.4  | Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.3.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.3.2  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.3.1  |  <a name="changelog-lambda-manager-2.3.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.3.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.2.11  |  <a name="changelog-lambda-manager-2.2.11"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.2.10  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.2.9  |  <a name="changelog-lambda-manager-2.2.9"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.2.8  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.2.7  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.2.6  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.2.5  |  <a name="changelog-lambda-manager-2.2.5"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.2.4  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.2.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.2.0  |  <a name="changelog-lambda-manager-2.2.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.1.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-manager-component.html)  | 
|  2.1.3  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.2  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.1  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.0  |  Greengrass nucleus 버전 2.1.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.3  |  초기 버전입니다.  | 

# Lambda 런타임
<a name="lambda-runtimes-component"></a>

Lambda 런타임 구성 요소(`aws.greengrass.LambdaRuntimes`)는 Greengrass 코어 디바이스가 AWS Lambda 함수를 실행하는 데 사용하는 런타임을 제공합니다.

**참고**  <a name="lambda-component-dependency-note"></a>
코어 디바이스에 Lambda 함수 구성 요소를 배포하면 배포에 이 구성 요소도 포함됩니다. 자세한 내용은 [AWS Lambda 함수 실행](run-lambda-functions.md) 섹션을 참조하세요.

**Topics**
+ [버전](#lambda-runtimes-component-versions)
+ [유형](#lambda-runtimes-component-type)
+ [운영 체제](#lambda-runtimes-component-os-support)
+ [요구 사항](#lambda-runtimes-component-requirements)
+ [종속성](#lambda-runtimes-component-dependencies)
+ [구성](#lambda-runtimes-component-configuration)
+ [로컬 로그 파일](#lambda-runtimes-component-log-file)
+ [Changelog](#lambda-runtimes-component-changelog)

## 버전
<a name="lambda-runtimes-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.0.x

## 유형
<a name="lambda-runtimes-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 섹션을 참조하세요.

## 운영 체제
<a name="lambda-runtimes-component-os-support"></a>

이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.

## 요구 사항
<a name="lambda-runtimes-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.
+ <a name="core-device-lambda-function-requirements"></a>Lambda 함수를 실행하려면 코어 디바이스가 요구 사항을 충족해야 합니다. 코어 디바이스에서 컨테이너화된 Lambda 함수를 실행하려면 디바이스가 요구 사항을 충족해야 합니다. 자세한 내용은 [Lambda 함수 요구 사항](setting-up.md#greengrass-v2-lambda-requirements) 섹션을 참조하세요.
+ Lambda 런타임 구성 요소는 VPC에서 실행할 수 있습니다.

## 종속성
<a name="lambda-runtimes-component-dependencies"></a>

이 구성 요소에는 종속성이 없습니다.

## 구성
<a name="lambda-runtimes-component-configuration"></a>

이 구성 요소에는 구성 파라미터가 없습니다.

## 로컬 로그 파일
<a name="lambda-runtimes-component-log-file"></a>

이 구성 요소는 로그를 출력하지 않습니다.

## Changelog
<a name="lambda-runtimes-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.0.9  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/lambda-runtimes-component.html)  | 
|  2.0.8  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.7  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.6  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.5  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.4  |  Greengrass nucleus 버전 2.1.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.3  |  초기 버전입니다.  | 

# 레거시 구독 라우터
<a name="legacy-subscription-router-component"></a>

레거시 구독 라우터(`aws.greengrass.LegacySubscriptionRouter`)는 Greengrass 코어 디바이스에서 구독을 관리합니다. 구독은 Lambda 함수가 코어 디바이스에서 MQTT 메시징에 사용할 수 있는 주제를 정의하는 AWS IoT Greengrass V1의 기능입니다. 자세한 내용은 *AWS IoT Greengrass V1 개발자 안내서*의 [MQTT 메시징 워크플로의 관리형 구독](https://docs.aws.amazon.com/greengrass/v1/developerguide/gg-sec.html#gg-msg-workflow)을 참조하세요.

이 구성 요소를 사용하여 AWS IoT Greengrass 코어 SDK를 사용하는 커넥터 구성 요소 및 Lambda 함수 구성 요소에 대한 구독을 활성화할 수 있습니다.

**참고**  <a name="legacy-subscription-router-requirement-note"></a>
레거시 구독 라우터 구성 요소는 Lambda 함수가 AWS IoT Greengrass 코어 SDK의 `publish()` 함수를 사용하는 경우에만 필요합니다. Lambda 함수 코드를 업데이트하여 AWS IoT Device SDK V2의 프로세스 간 통신(IPC) 인터페이스를 사용하는 경우 레거시 구독 라우터 구성 요소를 배포할 필요가 없습니다. 자세한 내용은 다음 [프로세스 간 통신](interprocess-communication.md) 서비스를 참조하세요.  
[로컬 메시지 게시/구독](ipc-publish-subscribe.md)
[AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md)

**Topics**
+ [버전](#legacy-subscription-router-component-versions)
+ [Type](#legacy-subscription-router-component-type)
+ [운영 체제](#legacy-subscription-router-component-os-support)
+ [요구 사항](#legacy-subscription-router-component-requirements)
+ [종속성](#legacy-subscription-router-component-dependencies)
+ [구성](#legacy-subscription-router-component-configuration)
+ [로컬 로그 파일](#legacy-subscription-router-component-log-file)
+ [Changelog](#legacy-subscription-router-component-changelog)

## 버전
<a name="legacy-subscription-router-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.1.x
+ 2.0.x

## Type
<a name="legacy-subscription-router-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="legacy-subscription-router-component-os-support"></a>

이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.

## 요구 사항
<a name="legacy-subscription-router-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.
+ 레거시 구독 라우터는 VPC에서 실행할 수 있습니다.

## 종속성
<a name="legacy-subscription-router-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#legacy-subscription-router-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.1.15 ]

다음 표에는이 구성 요소의 버전 2.1.15에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.17.0 | 소프트 | 

------
#### [ 2.1.14 ]

다음 표에는이 구성 요소의 버전 2.1.14에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.16.0 | 소프트 | 

------
#### [ 2.1.13 ]

다음 표에는이 구성 요소의 버전 2.1.13에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.15.0 | 소프트 | 

------
#### [ 2.1.12 ]

다음 표에는 이 구성 요소의 버전 2.1.12에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.14.0 | 소프트 | 

------
#### [ 2.1.11 ]

다음 표에는 이 구성 요소의 버전 2.1.11에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 소프트 | 

------
#### [ 2.1.10 ]

다음 표에는 이 구성 요소의 버전 2.1.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 소프트 | 

------
#### [ 2.1.9 ]

다음 표에는 이 구성 요소의 버전 2.1.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 소프트 | 

------
#### [ 2.1.8 ]

다음 표에는 이 구성 요소의 버전 2.1.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 소프트 | 

------
#### [ 2.1.7 ]

다음 표에는 이 구성 요소의 버전 2.1.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 소프트 | 

------
#### [ 2.1.6 ]

다음 표에는 이 구성 요소의 버전 2.1.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 소프트 | 

------
#### [ 2.1.5 ]

다음 표에는 이 구성 요소의 버전 2.1.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 소프트 | 

------
#### [ 2.1.4 ]

다음 표에는 이 구성 요소의 버전 2.1.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 소프트 | 

------
#### [ 2.1.3 ]

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 소프트 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 소프트 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 소프트 | 

------
#### [ 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 소프트 | 

------
#### [ 2.0.3 ]

다음 표에는 이 구성 요소의 버전 2.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.3 <2.1.0 | 소프트 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="legacy-subscription-router-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

------
#### [ v2.1.x ]

`subscriptions`  
<a name="legacy-subscription-router-component-configuration-subscriptions-intro"></a>(선택 사항) 코어 디바이스에서 활성화할 구독입니다. 이는 객체이며, 여기서 각 키는 고유한 ID이고 각 값은 해당 커넥터의 구독을 정의하는 객체입니다. V1 커넥터 구성 요소 또는 AWS IoT Greengrass 코어 SDK를 사용하는 Lambda 함수를 배포할 때 구독을 구성해야 합니다.  
각 구독 객체에는 다음 정보가 포함되어 있습니다.    
`id`  <a name="legacy-subscription-router-component-configuration-subscription-id"></a>
이 구독의 고유한 ID입니다. 이 ID는 이 구독 객체의 키와 일치해야 합니다.  
`source`  
 AWS IoT Greengrass 코어 SDK를 사용하여에서 지정한 주제에 MQTT 메시지를 게시하는 Lambda 함수입니다`subject`. 다음 중 하나를 지정하세요.  
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-component-name"></a>코어 디바이스에서 Lambda 함수 구성 요소의 이름입니다. **component:com.example.HelloWorldLambda**와 같이 `component:` 접두사를 사용하여 구성 요소 이름을 지정합니다.
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-function-arn"></a>코어 디바이스에서 Lambda 함수의 Amazon 리소스 이름(ARN)입니다.
**중요**  <a name="legacy-subscription-router-function-version-requirement"></a>
Lambda 함수 버전이 변경되면 함수의 새 버전을 사용하여 구독을 구성해야 합니다. 그렇지 않으면 이 구성 요소는 버전이 구독과 일치할 때까지 메시지를 라우팅하지 않습니다.  
가져올 함수의 버전이 포함된 Amazon 리소스 이름(ARN)을 지정해야 합니다. `$LATEST`같은 버전 별칭을 사용할 수 없습니다.
V1 커넥터 구성 요소에 대한 구독을 배포하려면 구성 요소의 이름 또는 커넥터 구성 요소의 Lambda 함수의 ARN을 지정합니다.  
`subject`  <a name="legacy-subscription-router-component-configuration-subscription-subject"></a>
소스와 대상이 메시지를 게시하고 수신할 수 있는 MQTT 주제 또는 주제 필터입니다. 이 값에서는 `+` 및 `#` 주제 와일드카드가 지원됩니다.  
`target`  
<a name="legacy-subscription-router-component-configuration-subscription-target-intro"></a>`subject`에서 지정하는 주제에 대한 MQTT 메시지를 수신하는 대상입니다. 구독은 `source` 함수가 코어 디바이스의 Lambda 함수에 MQTT 메시지를 게시 AWS IoT Core 하도록 지정합니다. 다음 중 하나를 지정하세요.  
+ <a name="legacy-subscription-router-component-configuration-subscription-target-cloud"></a>`cloud`. `source` 함수는 MQTT 메시지를에 게시합니다 AWS IoT Core.
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-component-name"></a>코어 디바이스에서 Lambda 함수 구성 요소의 이름입니다. **component:com.example.HelloWorldLambda**와 같이 `component:` 접두사를 사용하여 구성 요소 이름을 지정합니다.
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-function-arn"></a>코어 디바이스에서 Lambda 함수의 Amazon 리소스 이름(ARN)입니다.
**중요**  <a name="legacy-subscription-router-function-version-requirement"></a>
Lambda 함수 버전이 변경되면 함수의 새 버전을 사용하여 구독을 구성해야 합니다. 그렇지 않으면 이 구성 요소는 버전이 구독과 일치할 때까지 메시지를 라우팅하지 않습니다.  
가져올 함수의 버전이 포함된 Amazon 리소스 이름(ARN)을 지정해야 합니다. `$LATEST`같은 버전 별칭을 사용할 수 없습니다.
기본값: 구독 없음

**Example 구성 업데이트 예제(에 대한 구독 정의 AWS IoT Core)**  
다음 예제에서는 `com.example.HelloWorldLambda` Lambda 함수 구성 요소가 `hello/world` 주제의 AWS IoT Core 에 MQTT 메시지를 게시하도록 지정합니다.  

```
{
  "subscriptions": {
    "Greengrass_HelloWorld_to_cloud": {
      "id": "Greengrass_HelloWorld_to_cloud",
      "source": "component:com.example.HelloWorldLambda",
      "subject": "hello/world",
      "target": "cloud"
    }
  }
}
```

**Example 예제 구성 업데이트(다른 Lambda 함수 구독 정의)**  
다음 예제에서는 `com.example.HelloWorldLambda` Lambda 함수 구성 요소가 `hello/world` 주제에 대한 MQTT 메시지를 `com.example.MessageRelay` Lambda 함수 구성 요소에 게시하도록 지정합니다.  

```
{
  "subscriptions": {
    "Greengrass_HelloWorld_to_MessageRelay": {
      "id": "Greengrass_HelloWorld_to_MessageRelay",
      "source": "component:com.example.HelloWorldLambda",
      "subject": "hello/world",
      "target": "component:com.example.MessageRelay"
    }
  }
}
```

------
#### [ v2.0.x ]

`subscriptions`  
<a name="legacy-subscription-router-component-configuration-subscriptions-intro"></a>(선택 사항) 코어 디바이스에서 활성화할 구독입니다. 이는 객체이며, 여기서 각 키는 고유한 ID이고 각 값은 해당 커넥터의 구독을 정의하는 객체입니다. V1 커넥터 구성 요소 또는 AWS IoT Greengrass 코어 SDK를 사용하는 Lambda 함수를 배포할 때 구독을 구성해야 합니다.  
각 구독 객체에는 다음 정보가 포함되어 있습니다.    
`id`  <a name="legacy-subscription-router-component-configuration-subscription-id"></a>
이 구독의 고유한 ID입니다. 이 ID는 이 구독 객체의 키와 일치해야 합니다.  
`source`  
 AWS IoT Greengrass 코어 SDK를 사용하여에서 지정한 주제에 MQTT 메시지를 게시하는 Lambda 함수입니다`subject`. 다음을 지정합니다.  
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-function-arn"></a>코어 디바이스에서 Lambda 함수의 Amazon 리소스 이름(ARN)입니다.
**중요**  <a name="legacy-subscription-router-function-version-requirement"></a>
Lambda 함수 버전이 변경되면 함수의 새 버전을 사용하여 구독을 구성해야 합니다. 그렇지 않으면 이 구성 요소는 버전이 구독과 일치할 때까지 메시지를 라우팅하지 않습니다.  
가져올 함수의 버전이 포함된 Amazon 리소스 이름(ARN)을 지정해야 합니다. `$LATEST`같은 버전 별칭을 사용할 수 없습니다.
V1 커넥터 구성 요소에 대한 구독을 배포하려면 커넥터 구성 요소의 Lambda 함수의 ARN을 지정합니다.  
`subject`  <a name="legacy-subscription-router-component-configuration-subscription-subject"></a>
소스와 대상이 메시지를 게시하고 수신할 수 있는 MQTT 주제 또는 주제 필터입니다. 이 값에서는 `+` 및 `#` 주제 와일드카드가 지원됩니다.  
`target`  
<a name="legacy-subscription-router-component-configuration-subscription-target-intro"></a>`subject`에서 지정하는 주제에 대한 MQTT 메시지를 수신하는 대상입니다. 구독은 `source` 함수가 코어 디바이스의 Lambda 함수에 MQTT 메시지를 게시 AWS IoT Core 하도록 지정합니다. 다음 중 하나를 지정하세요.  
+ <a name="legacy-subscription-router-component-configuration-subscription-target-cloud"></a>`cloud`. `source` 함수는 MQTT 메시지를에 게시합니다 AWS IoT Core.
+ <a name="legacy-subscription-router-component-configuration-subscription-source-target-function-arn"></a>코어 디바이스에서 Lambda 함수의 Amazon 리소스 이름(ARN)입니다.
**중요**  <a name="legacy-subscription-router-function-version-requirement"></a>
Lambda 함수 버전이 변경되면 함수의 새 버전을 사용하여 구독을 구성해야 합니다. 그렇지 않으면 이 구성 요소는 버전이 구독과 일치할 때까지 메시지를 라우팅하지 않습니다.  
가져올 함수의 버전이 포함된 Amazon 리소스 이름(ARN)을 지정해야 합니다. `$LATEST`같은 버전 별칭을 사용할 수 없습니다.
기본값: 구독 없음

**Example 구성 업데이트 예제(에 대한 구독 정의 AWS IoT Core)**  
다음 예제에서는 `Greengrass_HelloWorld` 함수가 `hello/world` 주제의 AWS IoT Core 에 MQTT 메시지를 게시하도록 지정합니다.  

```
"subscriptions": {
  "Greengrass_HelloWorld_to_cloud": {
    "id": "Greengrass_HelloWorld_to_cloud",
    "source": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_HelloWorld:5",
    "subject": "hello/world",
    "target": "cloud"
  }
}
```

**Example 예제 구성 업데이트(다른 Lambda 함수 구독 정의)**  
다음 예제에서는 `Greengrass_HelloWorld` 함수가 `hello/world` 주제에 대한 MQTT 메시지를 `Greengrass_MessageRelay`에 게시하도록 지정합니다.  

```
"subscriptions": {
  "Greengrass_HelloWorld_to_MessageRelay": {
    "id": "Greengrass_HelloWorld_to_MessageRelay",
    "source": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_HelloWorld:5",
    "subject": "hello/world",
    "target": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_MessageRelay:5"
  }
}
```

------

## 로컬 로그 파일
<a name="legacy-subscription-router-component-log-file"></a>

이 구성 요소는 로그를 출력하지 않습니다.

## Changelog
<a name="legacy-subscription-router-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  버전  |  변경 사항  | 
| --- | --- | 
|  2.1.15  |  Greengrass nucleus 버전 2.16.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.14  | Greengrass nucleus 버전 2.15.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.13  | Greengrass nucleus 버전 2.14.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.12  | Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.11  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.10  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.9  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.8  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.7  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.6  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.5  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.4  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.3  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.2  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.1  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.0  |  <a name="changelog-legacy-subscription-router-2.1.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/legacy-subscription-router-component.html)  | 
|  2.0.3  |  초기 버전입니다.  | 

# 로컬 디버그 콘솔
<a name="local-debug-console-component"></a>

로컬 디버그 콘솔 구성 요소(`aws.greengrass.LocalDebugConsole`)는 AWS IoT Greengrass 코어 디바이스 및 해당 구성 요소에 대한 정보를 표시하는 로컬 대시보드를 제공합니다. 이 대시보드를 사용하여 코어 디바이스를 디버깅하고 로컬 구성 요소를 관리할 수 있습니다.

**중요**  
 <a name="local-dev-tools-production-environment-warning"></a>이 구성 요소는 프로덕션 환경이 아닌 개발 환경에서만 사용하는 것이 좋습니다. 이 구성 요소는 일반적으로 프로덕션 환경에서는 필요하지 않은 정보와 작업에 대한 액세스를 제공합니다. 최소 권한 원칙에 따라 필요한 코어 디바이스에만 이 구성 요소를 배포하세요.

**Topics**
+ [버전](#local-debug-console-component-versions)
+ [유형](#local-debug-console-component-type)
+ [운영 체제](#local-debug-console-component-os-support)
+ [요구 사항](#local-debug-console-component-requirements)
+ [종속성](#local-debug-console-component-dependencies)
+ [구성](#local-debug-console-component-configuration)
+ [사용법](#local-debug-console-component-usage)
+ [로컬 로그 파일](#local-debug-console-component-log-file)
+ [Changelog](#local-debug-console-component-changelog)

## 버전
<a name="local-debug-console-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.4.x
+ 2.3.x
+ 2.2.x
+ 2.1.x
+ 2.0.x

## 유형
<a name="local-debug-console-component-type"></a>

<a name="public-component-type-plugin-para1"></a>이 구성 요소는 플러그인 구성 요소(`aws.greengrass.plugin`)입니다. [Greengrass nucleus는](greengrass-nucleus-component.md) 이 구성 요소를 nucleus와 동일한 Java 가상 머신(JVM)에서 실행합니다. 코어 디바이스에서 구성 요소의 버전을 변경하면 nucleus가 다시 시작됩니다.

<a name="public-component-type-plugin-para2"></a>이 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 단원을 참조하십시오.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="local-debug-console-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="local-debug-console-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.
+ 사용자 이름과 암호를 사용하여 대시보드에 로그인합니다. 사용자 이름 `debug`가 제공됩니다. AWS IoT Greengrass CLI를 사용하여 코어 디바이스의 대시보드로 인증하는 임시 암호를 생성해야 합니다. 로컬 디버그 콘솔을 사용하려면 AWS IoT Greengrass CLI를 사용할 수 있어야 합니다. 자세한 내용은 [Greengrass CLI 요구 사항](greengrass-cli-component.md#greengrass-cli-component-requirements)을 참조하세요. 암호를 생성하고 로그인하는 방법에 대한 자세한 내용은 [로컬 디버그 콘솔 구성 요소 사용](#local-debug-console-component-usage)을 참조하세요.
+ 로컬 디버그 콘솔 구성 요소는 VPC에서 실행할 수 있습니다.

## 종속성
<a name="local-debug-console-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#local-debug-console-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.4.6 ]

다음 표에는이 구성 요소의 버전 2.4.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.10.0 <2.17.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.10.0 <2.17.0 | 하드 | 

------
#### [ 2.4.5 ]

다음 표에는이 구성 요소의 버전 2.4.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.10.0 <2.16.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.10.0 <2.16.0 | 하드 | 

------
#### [ 2.4.4 ]

다음 표에는 이 구성 요소의 버전 2.4.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.10.0 <2.15.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.10.0 <2.15.0 | 하드 | 

------
#### [ 2.4.3 ]

다음 표에는 이 구성 요소의 버전 2.4.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.10.0 <2.14.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.10.0 <2.14.0 | 하드 | 

------
#### [ 2.4.1 – 2.4.2 ]

다음 표에는 이 구성 요소의 버전 2.4.1\$12.4.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.10.0 <2.13.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.10.0 <2.13.0 | 하드 | 

------
#### [ 2.4.0 ]

다음 표에는 이 구성 요소의 버전 2.4.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.10.0 <2.12.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.10.0 <2.12.0 | 하드 | 

------
#### [ 2.3.0 and 2.3.1 ]

다음 표에는 이 구성 요소의 버전 2.3.0 및 2.3.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.10.0 <2.12.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.10.0 <2.12.0 | 하드 | 

------
#### [ 2.2.9 ]

다음 표에는 이 구성 요소의 버전 2.2.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.12.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.12.0 | 하드 | 

------
#### [ 2.2.8 ]

다음 표에는 이 구성 요소의 버전 2.2.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.11.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.11.0 | 하드 | 

------
#### [ 2.2.7 ]

다음 표에는 이 구성 요소의 버전 2.2.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.10.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.10.0 | 하드 | 

------
#### [ 2.2.6 ]

다음 표에는 이 구성 요소의 버전 2.2.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.9.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.9.0 | 하드 | 

------
#### [ 2.2.5 ]

다음 표에는 이 구성 요소의 버전 2.2.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.8.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.8.0 | 하드 | 

------
#### [ 2.2.4 ]

다음 표에는 이 구성 요소의 버전 2.2.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.7.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.7.0 | 하드 | 

------
#### [ 2.2.3 ]

다음 표에는 이 구성 요소의 버전 2.2.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.6.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.6.0 | 하드 | 

------
#### [ 2.2.2 ]

다음 표에는 이 구성 요소의 버전 2.2.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.5.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.5.0 | 하드 | 

------
#### [ 2.2.1 ]

다음 표에는 이 구성 요소의 버전 2.2.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.4.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.4.0 | 하드 | 

------
#### [ 2.2.0 ]

다음 표에는 이 구성 요소의 버전 2.2.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.3.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.3.0 | 하드 | 

------
#### [ 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.1.0 <2.2.0 | 하드 | 

------
#### [ 2.0.x ]

다음 표에는 이 구성 요소의 버전 2.0.x에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.3 <2.1.0  | 소프트 | 
| [Greengrass CLI](greengrass-cli-component.md) |  >=2.0.3 <2.1.0  | 소프트 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="local-debug-console-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

------
#### [ v2.1.x - v2.4.x ]

`httpsEnabled`  
(선택 사항) 로컬 디버그 콘솔에 대해 HTTPS 통신을 활성화할 수 있습니다. HTTPS 통신을 활성화하면 로컬 디버그 콘솔에서 자체 서명된 인증서를 생성합니다. 웹 브라우저에서 자체 서명된 인증서를 사용하는 웹 사이트에 대해 보안 경고를 표시하므로 인증서를 수동으로 확인해야 합니다. 그러면 경고를 무시해도 됩니다. 자세한 내용은 [사용법](#local-debug-console-component-usage) 단원을 참조하십시오.  
기본값: `true`

`port`  <a name="local-debug-console-component-configuration-port"></a>
(선택 사항) 로컬 디버그 콘솔을 제공할 포트입니다.  
기본값: `1441`

`websocketPort`  <a name="local-debug-console-component-configuration-websocket-port"></a>
(선택 사항) 로컬 디버그 콘솔에 사용할 websocket 포트입니다.  
기본값: `1442`

`bindHostname`  <a name="local-debug-console-component-configuration-bind-hostname"></a>
(선택 사항) 로컬 디버그 콘솔에 사용할 호스트 이름입니다.  
[Docker 컨테이너에서 AWS IoT Greengrass 코어 소프트웨어를 실행하는](run-greengrass-docker.md) 경우이 파라미터를 로 설정`0.0.0.0`하면 Docker 컨테이너 외부에서 로컬 디버그 콘솔을 열 수 있습니다.  
기본값: `localhost`

**Example 예: 구성 병합 업데이트**  
다음 예제 구성에서는 기본이 아닌 포트에서 로컬 디버그 콘솔을 열고 HTTPS를 비활성화하도록 지정합니다.  

```
{
  "httpsEnabled": false,
  "port": "10441",
  "websocketPort": "10442"
}
```

------
#### [ v2.0.x ]

`port`  <a name="local-debug-console-component-configuration-port"></a>
(선택 사항) 로컬 디버그 콘솔을 제공할 포트입니다.  
기본값: `1441`

`websocketPort`  <a name="local-debug-console-component-configuration-websocket-port"></a>
(선택 사항) 로컬 디버그 콘솔에 사용할 websocket 포트입니다.  
기본값: `1442`

`bindHostname`  <a name="local-debug-console-component-configuration-bind-hostname"></a>
(선택 사항) 로컬 디버그 콘솔에 사용할 호스트 이름입니다.  
[Docker 컨테이너에서 AWS IoT Greengrass 코어 소프트웨어를 실행하는](run-greengrass-docker.md) 경우이 파라미터를 로 설정`0.0.0.0`하면 Docker 컨테이너 외부에서 로컬 디버그 콘솔을 열 수 있습니다.  
기본값: `localhost`

**Example 예: 구성 병합 업데이트**  
다음 예제 구성에서는 기본이 아닌 포트에서 로컬 디버그 콘솔을 열도록 지정합니다.  

```
{
  "port": "10441",
  "websocketPort": "10442"
}
```

------

## 사용법
<a name="local-debug-console-component-usage"></a>

로컬 디버그 콘솔을 사용하려면 Greengrass CLI에서 세션을 생성합니다. 세션을 생성할 때 Greengrass CLI에서는 로컬 디버그 콘솔에 로그인하는 데 사용할 수 있는 사용자 이름과 임시 암호를 제공합니다.

다음 지침에 따라 코어 디바이스 또는 개발 컴퓨터에서 로컬 디버그 콘솔을 엽니다.

------
#### [ v2.1.x - v2.4.x ]

버전 2.1.0 이상에서는 로컬 디버그 콘솔이 기본적으로 HTTPS를 사용합니다. HTTPS가 활성화된 경우 로컬 디버그 콘솔은 연결을 보호하기 위해 자체 서명된 인증서를 생성합니다. 이 자체 서명된 인증서로 인해 로컬 디버그 콘솔을 열 때 웹 브라우저에서 보안 경고를 표시합니다. Greengrass CLI로 세션을 생성할 때 출력에 인증서의 지문이 포함되므로 인증서가 정상이고 연결이 안전한지 확인할 수 있습니다.

HTTPS를 비활성화할 수 있습니다. 자세한 내용은 [로컬 디버그 콘솔 구성](#local-debug-console-component-configuration)을 참조하세요.

**로컬 디버그 콘솔을 열려면**

1. <a name="local-debug-console-component-usage-forward-port"></a>(선택 사항) 개발 컴퓨터에서 로컬 디버그 콘솔을 표시하려면 SSH를 통해 콘솔의 포트를 전달할 수 있습니다. 하지만 먼저 코어 디바이스의 SSH 구성 파일에서 `AllowTcpForwarding` 옵션을 활성화해야 합니다. 이 옵션은 기본적으로 활성화되어 있습니다. 개발 컴퓨터에서 다음 명령을 실행하여 개발 컴퓨터의 `localhost:1441`에서 대시보드를 봅니다.

   ```
   ssh -L 1441:localhost:1441 -L 1442:localhost:1442 username@core-device-ip-address
   ```
**참고**  
기본 포트를 `1441` 및 `1442`에서 변경할 수 있습니다. 자세한 내용은 [로컬 디버그 콘솔 구성](#local-debug-console-component-configuration)을 참조하세요.

1. <a name="local-debug-console-component-create-session-step"></a>로컬 디버그 콘솔을 사용할 세션을 생성합니다. 세션을 생성할 때 인증에 사용하는 암호를 생성합니다. 이 구성 요소를 사용하여 중요한 정보를 보고 코어 디바이스에서 작업을 수행할 수 있으므로 보안을 강화하기 위해 로컬 디버그 콘솔에 암호가 필요합니다. 구성 요소 구성에서 HTTPS를 활성화하는 경우에는 로컬 디버그 콘솔에서 연결을 보호하기 위해 인증서도 생성합니다. HTTPS는 기본적으로 활성화되어 있습니다.

    AWS IoT Greengrass CLI를 사용하여 세션을 생성합니다. 이 명령은 8시간 후 만료되는 임의의 43자 암호를 생성합니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass V2 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux or Unix ]

   ```
   sudo /greengrass/v2/bin/greengrass-cli get-debug-password
   ```

------
#### [ Windows ]

   ```
   C:\greengrass\v2\bin\greengrass-cli get-debug-password
   ```

------

   HTTPS를 사용하도록 로컬 디버그 콘솔을 구성한 경우 명령 출력은 다음 예제와 같습니다. 로컬 디버그 콘솔을 열 때 인증서 지문을 사용하여 연결이 안전한지 확인합니다.

   ```
   Username: debug
   Password: bEDp3MOHdj8ou2w5de_sCBI2XAaguy3a8XxREXAMPLE
   Password expires at: 2021-04-01T17:01:43.921999931-07:00
   The local debug console is configured to use TLS security. The certificate is self-signed so you will need to bypass your web browser's security warnings to open the console.
   Before you bypass the security warning, verify that the certificate fingerprint matches the following fingerprints.
   SHA-256: 15 0B 2C E2 54 8B 22 DE 08 46 54 8A B1 2B 25 DE FB 02 7D 01 4E 4A 56 67 96 DA A6 CC B1 D2 C4 1B
   SHA-1: BC 3E 16 04 D3 80 70 DA E0 47 25 F9 90 FA D6 02 80 3E B5 C1
   ```

   디버그 보기 구성 요소는 8시간 지속되는 세션을 생성합니다. 이 시간 후에 로컬 디버그 콘솔을 다시 보려면 새 암호를 생성해야 합니다.

1. 대시보드를 열고 로그인합니다. SSH를 통해 포트를 전달하는 경우 Greengrass 코어 디바이스 또는 개발 컴퓨터에서 대시보드를 봅니다. 다음 중 하나를 수행하세요.
   + 로컬 디버그 콘솔에서 기본 설정인 HTTPS를 활성화한 경우 다음을 수행합니다.

     1. SSH를 통해 포트를 전달하는 경우 코어 디바이스 또는 개발 컴퓨터에서 `https://localhost:1441`을 엽니다.

        브라우저에 잘못된 보안 인증서에 대한 보안 경고가 표시될 수 있습니다.

     1. 브라우저에 보안 경고가 표시되면 인증서가 정상인지 확인하고 보안 경고를 무시합니다. 해결 방법:

        1. 인증서에 대한 SHA-256 또는 SHA-1 지문을 찾고 `get-debug-password` 명령이 이전에 출력한 SHA-256 또는 SHA-1 지문과 일치하는지 확인합니다. 브라우저에서 지문을 하나 또는 둘 다 제공할 수 있습니다. 브라우저의 설명서를 참조하여 인증서와 해당 지문을 확인합니다. 일부 브라우저에서는 인증서 지문을 지문(thumbprint)이라고 합니다.
**참고**  
인증서 지문이 일치하지 않으면 [Step 2](#local-debug-console-component-create-session-step)로 이동하여 새 세션을 생성합니다. 그래도 인증서 지문이 일치하지 않는 경우 연결이 안전하지 않을 수 있습니다.

        1. 인증서 지문이 일치하는 경우 브라우저의 보안 경고를 무시하고 로컬 디버그 콘솔을 엽니다. 브라우저의 설명서를 참조하여 브라우저 보안 경고를 우회합니다.

     1. `get-debug-password` 명령에서 이전에 출력한 사용자 이름과 암호를 사용하여 웹 사이트에 로그인합니다.

        로컬 디버그 콘솔이 열립니다.

     1. 로컬 디버그 콘솔에 실패한 TLS 핸드셰이크로 인해 WebSocket에 연결할 수 없다는 오류가 표시되면 WebSocket URL에 대한 자체 서명된 보안 경고를 우회해야 합니다.  
![\[로컬 디버그 콘솔의 WebSocket TLS 핸드셰이크 오류\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/images/local-debug-console/websocket-tls-handshake-error.png)

        해결 방법:

        1. 로컬 디버그 콘솔을 연 동일한 브라우저에서 `https://localhost:1442`를 엽니다.

        1. 인증서를 확인하고 보안 경고를 우회합니다.

           경고를 우회하면 브라우저에 HTTP 404 페이지가 표시될 수 있습니다.

        1. `https://localhost:1441`을 다시 엽니다.

           로컬 디버그 콘솔에 코어 디바이스에 대한 정보가 표시됩니다.
   + 로컬 디버그 콘솔에서 HTTPS를 비활성화한 경우 다음을 수행합니다.

     1. <a name="local-debug-console-component-usage-open-localhost-http"></a>SSH를 통해 포트를 전달하는 경우 코어 디바이스 또는 개발 컴퓨터에서 `http://localhost:1441`을 엽니다.

     1. <a name="local-debug-console-component-usage-sign-in"></a>`get-debug-password` 명령에서 이전에 출력한 사용자 이름과 암호를 사용하여 웹 사이트에 로그인합니다.

        로컬 디버그 콘솔이 열립니다.

------
#### [ v2.0.x ]

**로컬 디버그 콘솔을 열려면**

1. <a name="local-debug-console-component-usage-forward-port"></a>(선택 사항) 개발 컴퓨터에서 로컬 디버그 콘솔을 표시하려면 SSH를 통해 콘솔의 포트를 전달할 수 있습니다. 하지만 먼저 코어 디바이스의 SSH 구성 파일에서 `AllowTcpForwarding` 옵션을 활성화해야 합니다. 이 옵션은 기본적으로 활성화되어 있습니다. 개발 컴퓨터에서 다음 명령을 실행하여 개발 컴퓨터의 `localhost:1441`에서 대시보드를 봅니다.

   ```
   ssh -L 1441:localhost:1441 -L 1442:localhost:1442 username@core-device-ip-address
   ```
**참고**  
기본 포트를 `1441` 및 `1442`에서 변경할 수 있습니다. 자세한 내용은 [로컬 디버그 콘솔 구성](#local-debug-console-component-configuration)을 참조하세요.

1. 로컬 디버그 콘솔을 사용할 세션을 생성합니다. 세션을 생성할 때 인증에 사용하는 암호를 생성합니다. 이 구성 요소를 사용하여 중요한 정보를 보고 코어 디바이스에서 작업을 수행할 수 있으므로 보안을 강화하기 위해 로컬 디버그 콘솔에 암호가 필요합니다.

    AWS IoT Greengrass CLI를 사용하여 세션을 생성합니다. 이 명령은 8시간 후 만료되는 임의의 43자 암호를 생성합니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass V2 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux or Unix ]

   ```
   sudo /greengrass/v2/bin/greengrass-cli get-debug-password
   ```

------
#### [ Windows ]

   ```
   C:\greengrass\v2\bin\greengrass-cli get-debug-password
   ```

------

   이 명령 출력은 다음 예제와 같습니다.

   ```
   Username: debug
   Password: bEDp3MOHdj8ou2w5de_sCBI2XAaguy3a8XxREXAMPLE
   Password will expire at: 2021-04-01T17:01:43.921999931-07:00
   ```

   디버그 보기 구성 요소는 4시간 지속되는 세션을 생성하며, 이 시간 이후 로컬 디버그 콘솔을 다시 보려면 새 암호를 생성해야 합니다.

1. <a name="local-debug-console-component-usage-open-localhost-http"></a>SSH를 통해 포트를 전달하는 경우 코어 디바이스 또는 개발 컴퓨터에서 `http://localhost:1441`을 엽니다.

1. <a name="local-debug-console-component-usage-sign-in"></a>`get-debug-password` 명령에서 이전에 출력한 사용자 이름과 암호를 사용하여 웹 사이트에 로그인합니다.

   로컬 디버그 콘솔이 열립니다.

------

## 로컬 로그 파일
<a name="local-debug-console-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="local-debug-console-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.4.6  |  Greengrass nucleus 버전 2.16.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.4.5  | Greengrass nucleus 버전 2.15.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.4.4  | Greengrass nucleus 버전 2.14.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.4.3  |  Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/local-debug-console-component.html)  | 
|  2.4.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/local-debug-console-component.html)  | 
|  2.4.1  |  Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.4.0  |  <a name="changelog-local-debug-console-2.4.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/local-debug-console-component.html)  | 
|  2.3.1  |  Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.3.0  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/local-debug-console-component.html) | 
|  2.2.7  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.2.6  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.2.5  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.2.4  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.2.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/local-debug-console-component.html)  | 
|  2.2.2  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.2.1  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.2.0  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.0  |  <a name="changelog-local-debug-console-2.1.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/local-debug-console-component.html)  | 
|  2.0.3  |  초기 버전입니다.  | 

# 로그 관리자
<a name="log-manager-component"></a>

**주의**  
로그 관리자 v2.3.5 이상으로 업그레이드하는 것이 좋습니다. 버전 2.3.5에서는 로그 관리자 구성 쓰기를 최적화하여 IO 작업을 줄이고 로그 업로드 속도와 전체 디바이스 성능을 개선하고 디바이스 수명을 연장할 수 있습니다.

로그 관리자 구성 요소(`aws.greengrass.LogManager`)는 AWS IoT Greengrass 코어 디바이스의 로그를 Amazon CloudWatch Logs에 업로드합니다. Greengrass nucleus, 기타 Greengrass 구성 요소, Greengrass 구성 요소가 아닌 다른 애플리케이션 및 서비스에서 로그를 업로드할 수 있습니다. CloudWatch Logs 및 로컬 파일 시스템에서 로그를 모니터링하는 방법에 대한 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 섹션을 참조하세요.

<a name="log-manager-considerations-intro"></a>로그 관리자 구성 요소를 사용하여 CloudWatch Logs에 쓸 때는 다음 사항을 고려하세요.<a name="log-manager-considerations"></a>
+ **로그 지연**

  로그 관리자 구성 요소 2.2.8 및 이전 버전은 교체된 로그 파일에서만 로그를 처리하고 업로드합니다. 기본적으로 AWS IoT Greengrass 코어 소프트웨어는 매시간 또는 1,024KB 후에 로그 파일을 교체합니다. 따라서 로그 관리자 구성 요소는 AWS IoT Greengrass 코어 소프트웨어 또는 Greengrass 구성 요소가 1,024KB 이상의 로그를 쓴 후에만 로그를 업로드합니다. 로그 파일 크기 제한을 더 낮게 구성하여 로그 파일이 더 자주 교체되도록 할 수 있습니다. 이렇게 하면 로그 관리자 구성 요소에서 CloudWatch Logs에 로그를 더 자주 업로드합니다.

  로그 관리자 구성 요소 2.3.0 이상 버전은 모든 로그를 처리하고 업로드합니다. 새 로그를 쓸 때 로그 관리자 2.3.0 이상 버전은 해당 활성 로그 파일이 교체될 때까지 기다리지 않고 활성 로그를 처리하고 직접 업로드합니다. 즉, 새 로그를 5분 이내에 볼 수 있습니다.

  로그 관리자 구성 요소에서는 새 로그를 주기적으로 업로드합니다. 기본적으로 로그 관리자 구성 요소는 5분마다 새 로그를 업로드합니다. 업로드 간격을 더 낮게 구성할 수 있으므로 `periodicUploadIntervalSec`을 구성하면 로그 관리자 구성 요소가 CloudWatch Logs에 로그를 더 자주 업로드합니다. 이 주기적 간격을 구성하는 방법에 대한 자세한 내용은 [구성](https://docs.aws.amazon.com/greengrass/v2/developerguide/log-manager-component.html#log-manager-component-configuration)을 참조하세요.

  동일한 Greengrass 파일 시스템에서 로그를 거의 실시간으로 업로드할 수 있습니다. 로그를 실시간으로 관찰해야 하는 경우 [파일 시스템 로그](monitor-logs.md#access-local-logs)를 사용하는 것이 좋습니다.
**참고**  
다른 파일 시스템을 사용하여 로그를 쓰는 경우 로그 관리자가 로그 관리자 구성 요소 2.2.8 이하 버전의 동작으로 돌아갑니다. 파일 시스템 로그에 액세스하는 방법에 대한 자세한 내용은 [파일 시스템 로그 액세스](https://docs.aws.amazon.com/greengrass/v2/developerguide/monitor-logs.html#access-local-logs)를 참조하세요.
+ **클록 스큐**

  로그 관리자 구성 요소는 표준 Signature 버전 4 서명 프로세스를 사용하여 CloudWatch Logs에 대한 API 요청을 생성합니다. 코어 디바이스에서 시스템 시간이 15분 이상 동기화되지 않을 경우, CloudWatch Logs에서 요청을 거부합니다. 자세한 정보는 *AWS 일반 참조*의 [서명 버전 4 서명 프로세스](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)를 참조하세요.

이 구성 요소가 로그를 업로드하는 로그 그룹 및 로그 스트림에 대한 자세한 내용은 [사용법](#log-manager-component-usage) 섹션을 참조하세요.

**Topics**
+ [버전](#log-manager-component-versions)
+ [유형](#log-manager-component-type)
+ [운영 체제](#log-manager-component-os-support)
+ [요구 사항](#log-manager-component-requirements)
+ [종속성](#log-manager-component-dependencies)
+ [구성](#log-manager-component-configuration)
+ [사용법](#log-manager-component-usage)
+ [로컬 로그 파일](#log-manager-component-log-file)
+ [Changelog](#log-manager-component-changelog)

## 버전
<a name="log-manager-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.3.x
+ 2.2.x
+ 2.1.x
+ 2.0.x

## 유형
<a name="log-manager-component-type"></a>

<a name="public-component-type-plugin-para1"></a>이 구성 요소는 플러그인 구성 요소(`aws.greengrass.plugin`)입니다. [Greengrass nucleus는](greengrass-nucleus-component.md) 이 구성 요소를 nucleus와 동일한 Java 가상 머신(JVM)에서 실행합니다. 코어 디바이스에서 구성 요소의 버전을 변경하면 nucleus가 다시 시작됩니다.

<a name="public-component-type-plugin-para2"></a>이 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 단원을 참조하십시오.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="log-manager-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="log-manager-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.
+ 다음 예제 IAM 정책에 표시된 대로 [Greengrass 디바이스 역할](device-service-role.md)에서 `logs:CreateLogGroup`, `logs:CreateLogStream`, `logs:PutLogEvents` 및 `logs:DescribeLogStreams` 작업을 허용해야 합니다.

  ```
  {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "logs:CreateLogGroup",
          "logs:CreateLogStream",
          "logs:PutLogEvents",
          "logs:DescribeLogStreams"
        ],
        "Effect": "Allow",
        "Resource": "arn:aws:logs:*:*:*"
      }
    ]
  }
  ```
**참고**  
 AWS IoT Greengrass 코어 소프트웨어를 설치할 때 생성하는 [Greengrass 디바이스 역할에](device-service-role.md)는 기본적으로이 예제 정책의 권한이 포함됩니다.

  자세한 내용은 *Amazon CloudWatch Logs 사용 설명서*의 [CloudWatch Logs에 대한 자격 증명 기반 정책(IAM 정책) 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-identity-based-access-control-cwl.html)을 참조하세요.
+ 로그 관리자 구성 요소는 VPC에서 실행할 수 있습니다. 이 구성 요소를 VPC에 배포하려면 다음이 필요합니다.
  + 로그 관리자 구성 요소에는 VPC 엔드포인트가 `com.amazonaws.us-east-1.logs`인 `logs.region.amazonaws.com`에 대한 연결이 있어야 합니다.

### 엔드포인트 및 포트
<a name="log-manager-component-endpoints"></a>

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에 다음 엔드포인트 및 포트에 대한 아웃바운드 요청도 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.


| 엔드포인트 | 포트 | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `logs.region.amazonaws.com`  | 443 | 아니요 |  CloudWatch Logs에 로그를 쓰는 경우 필요합니다.  | 

## 종속성
<a name="log-manager-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#log-manager-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.3.11 ]

다음 표에는이 구성 요소의 버전 2.3.11에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.17.0 | 소프트 | 

------
#### [ 2.3.10 ]

다음 표에는이 구성 요소의 버전 2.3.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.16.0 | 소프트 | 

------
#### [ 2.3.9 ]

다음 표에는 이 구성 요소의 버전 2.3.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.15.0 | 소프트 | 

------
#### [ 2.3.8 ]

다음 표에는 이 구성 요소의 버전 2.3.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.14.0 | 소프트 | 

------
#### [ 2.3.7 ]

다음 표에는 이 구성 요소의 버전 2.3.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.13.0 | 소프트 | 

------
#### [ 2.3.5 and 2.3.6 ]

다음 표에는 이 구성 요소의 버전 2.3.5 및 2.3.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.12.0 | 소프트 | 

------
#### [ 2.3.3 – 2.3.4 ]

다음 표에는 이 구성 요소의 버전 2.3.3\$12.3.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.11.0 | 소프트 | 

------
#### [ 2.2.8 – 2.3.2 ]

다음 표에는 이 구성 요소의 버전 2.2.8\$12.3.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.10.0 | 소프트 | 

------
#### [ 2.2.7 ]

다음 표에는 이 구성 요소의 버전 2.2.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.9.0 | 소프트 | 

------
#### [ 2.2.6 ]

다음 표에는 이 구성 요소의 버전 2.2.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.8.0 | 소프트 | 

------
#### [ 2.2.5 ]

다음 표에는 이 구성 요소의 버전 2.2.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.7.0 | 소프트 | 

------
#### [ 2.2.1 - 2.2.4 ]

다음 표에는 이 구성 요소의 버전 2.2.1\$12.2.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.6.0 | 소프트 | 

------
#### [ 2.1.3 and 2.2.0 ]

다음 표에는 이 구성 요소의 버전 2.1.3 및 2.2.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.5.0 | 소프트 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.4.0 | 소프트 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.3.0 | 소프트 | 

------
#### [ 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.1.0 <2.2.0  | 소프트 | 

------
#### [ 2.0.x ]

다음 표에는 이 구성 요소의 버전 2.0.x에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.3 <2.1.0  | 소프트 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="log-manager-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

------
#### [ v2.3.10 ]

`logsUploaderConfiguration`  
(선택 사항) 로그 관리자 구성 요소가 업로드하는 로그에 대한 구성입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
  `systemLogsConfiguration`   
(선택 사항) [Greengrass nucleus](greengrass-nucleus-component.md) 및 [플러그인 구성 요소의](develop-greengrass-components.md#component-types) 로그를 포함하는 AWS IoT Greengrass 코어 소프트웨어 시스템 로그에 대한 구성입니다. 로그 관리자 구성 요소가 시스템 로그를 관리할 수 있도록 하려면 이 구성을 지정합니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`uploadToCloudWatch`  <a name="log-manager-component-configuration-system-upload-to-cloud-watch"></a>
(선택 사항) 시스템 로그를 CloudWatch Logs에 업로드할 수 있습니다.  
기본값: `false`  
`minimumLogLevel`  <a name="log-manager-component-configuration-system-minimum-log-level"></a>
(선택 사항) 업로드할 로그 메시지의 최소 수준입니다. 이 최소 수준은 JSON 형식 로그를 출력하도록 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)를 구성하는 경우에만 적용됩니다. JSON 형식 로그를 활성화하려면 [로깅 형식](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format) 파라미터(`JSON`)에 `logging.format`을 지정합니다.  
여기에 수준 순서대로 나열된 다음 로그 수준 중에서 선택합니다.  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
기본값: `INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-system-disk-space-limit"></a>
(선택 사항) `diskSpaceLimitUnit`에서 지정하는 단위로 Greengrass 시스템 로그 파일의 최대 총 크기입니다. Greengrass 시스템 로그 파일의 총 크기가이 최대 총 크기를 초과하면 AWS IoT Greengrass 코어 소프트웨어는 가장 오래된 Greengrass 시스템 로그 파일을 삭제합니다.  
이 파라미터는 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)의 [로그 크기 제한](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit) 파라미터(`totalLogsSizeKB`)와 동일합니다. AWS IoT Greengrass 코어 소프트웨어는 두 값 중 최소값을 최대 총 Greengrass 시스템 로그 크기로 사용합니다.  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
(선택 사항) `diskSpaceLimit`의 단위입니다. 다음 옵션 중 하나를 선택합니다.  
+ `KB` – 킬로바이트
+ `MB` – 메가바이트
+ `GB` – 기가바이트
기본값: `KB`  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
(선택 사항) 로그 관리자 구성 요소가 로그를 CloudWatch Logs에 업로드한 후 로그 파일을 삭제할 수 있습니다.  
기본값: `false`  
  `componentLogsConfigurationMap`   
(선택 사항) 코어 디바이스의 구성 요소에 대한 로그 구성 맵입니다. 이 맵의 각 `componentName` 객체는 구성 요소 또는 애플리케이션에 대한 로그 구성을 정의합니다. 로그 관리자 구성 요소는 이러한 구성 요소 로그를 CloudWatch Logs에 업로드합니다.  
구성 요소당 단일 구성 키를 사용하는 것이 좋습니다. `logFileRegex`를 사용할 때 활발하게 기록되는 로그 파일이 하나만 있는 파일 그룹만을 대상으로 지정해야 합니다. 이 권장 사항을 따르지 않으면 중복 로그가 CloudWatch에 업로드될 수 있습니다. 단일 정규식으로 여러 활성 로그 파일을 대상으로 지정하는 경우에는 로그 관리자 v2.3.1 이상으로 업그레이드하고 [예제 구성](#log-manager-multiple-logs-v2.3.10)을 사용하여 구성을 변경하는 것이 좋습니다.
v2.2.0 이전 버전의 로그 관리자에서 업그레이드하는 경우 `componentLogsConfigurationMap` 대신 `componentLogsConfiguration` 목록을 계속 사용할 수 있습니다. 그러나 병합 및 재설정 업데이트를 사용하여 특정 구성 요소에 대한 구성을 수정할 수 있도록 맵 형식을 사용하는 것이 좋습니다. `componentLogsConfiguration` 파라미터에 대한 자세한 내용은 이 구성 요소의 v2.1.x에 대한 구성 파라미터를 참조하세요.  
*`componentName`*  
*`componentName`* 구성 요소에 대한 로그 구성 또는 이 로그 구성에 대한 애플리케이션입니다. Greengrass 구성 요소의 이름 또는 이 로그 그룹을 식별하는 다른 값을 지정할 수 있습니다.  
각 객체에는 다음 정보가 포함되어 있습니다.    
`minimumLogLevel`  <a name="log-manager-component-configuration-component-minimum-log-level"></a>
(선택 사항) 업로드할 로그 메시지의 최소 수준입니다. 이 최소 수준은 이 구성 요소의 로그가 GitHub의 [AWS IoT Greengrass 로깅 모듈](https://github.com/aws-greengrass/aws-greengrass-logging-java) 리포지토리에서 찾을 수 있는 특정 JSON 형식을 사용하는 경우에만 적용됩니다.  
여기에 수준 순서대로 나열된 다음 로그 수준 중에서 선택합니다.  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
기본값: `INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-component-disk-space-limit"></a>
(선택 사항) `diskSpaceLimitUnit`에서 지정하는 단위로 이 구성 요소에 대한 모든 로그 파일의 최대 총 크기입니다. 이 구성 요소의 로그 파일의 총 크기가이 최대 총 크기를 초과하면 AWS IoT Greengrass 코어 소프트웨어는이 구성 요소의 가장 오래된 로그 파일을 삭제합니다.  
이 파라미터는 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)의 [로그 크기 제한](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit) 파라미터(`totalLogsSizeKB`)와 관련이 있습니다. AWS IoT Greengrass 코어 소프트웨어는 두 값 중 최소값을 이 구성 요소의 최대 총 로그 크기로 사용합니다.  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
(선택 사항) `diskSpaceLimit`의 단위입니다. 다음 옵션 중 하나를 선택합니다.  
+ `KB` – 킬로바이트
+ `MB` – 메가바이트
+ `GB` – 기가바이트
기본값: `KB`  
`logFileDirectoryPath`  <a name="log-manager-component-configuration-component-log-file-dir-path"></a>
(선택 사항) 이 구성 요소의 로그 파일이 포함된 폴더의 경로입니다.  
표준 출력(stdout) 및 표준 오류(stderr)로 인쇄되는 Greengrass 구성 요소에는 이 파라미터를 지정할 필요가 없습니다.  
기본값: `/greengrass/v2/logs`.  
`logFileRegex`  <a name="log-manager-component-configuration-component-log-file-regex"></a>
(선택 사항) 구성 요소 또는 애플리케이션이 사용하는 로그 파일 이름 형식을 지정하는 정규식입니다. 로그 관리자 구성 요소는 이 정규식을 사용하여 `logFileDirectoryPath`의 폴더에서 로그 파일을 식별합니다.  
표준 출력(stdout) 및 표준 오류(stderr)로 인쇄되는 Greengrass 구성 요소에는 이 파라미터를 지정할 필요가 없습니다.  
구성 요소 또는 애플리케이션에서 로그 파일을 교체하는 경우 교체된 로그 파일 이름과 일치하는 정규식을 지정합니다. 예를 들어 Hello World 애플리케이션의 로그를 업로드하려면 **hello\$1world\$1\$1\$1\$1w\$1.log**를 지정할 수 있습니다. `\\\\w*` 패턴은 영숫자와 밑줄을 포함하는 0개 이상의 단어 문자와 일치합니다. 이 정규식은 이름에 타임스탬프가 있거나 없는 로그 파일과 일치합니다. 이 예제에서는 로그 관리자가 다음 로그 파일을 업로드합니다.  
+ `hello_world.log` - Hello World 애플리케이션의 최신 로그 파일입니다.
+ `hello_world_2020_12_15_17_0.log` – Hello World 애플리케이션의 이전 로그 파일입니다.
기본값: `componentName\\\\w*.log`, 여기서 *componentName*은 이 로그 구성에 대한 구성 요소의 이름입니다.  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
(선택 사항) 로그 관리자 구성 요소가 로그를 CloudWatch Logs에 업로드한 후 로그 파일을 삭제할 수 있습니다.  
기본값: `false`  
`multiLineStartPattern`  <a name="log-manager-component-configuration-component-multi-line-start-pattern"></a>
(선택 사항) 새 줄의 로그 메시지가 새 로그 메시지인 경우를 식별하는 정규식입니다. 정규식이 새 줄과 일치하지 않는 경우 로그 관리자 구성 요소는 새 줄을 이전 줄의 로그 메시지에 추가합니다.  
기본적으로 로그 관리자 구성 요소는 줄이 탭 또는 공백과 같은 공백 문자로 시작하는지 확인합니다. 그렇지 않으면 로그 관리자는 해당 줄을 새 로그 메시지로 처리합니다. 공백 문자로 시작하는 경우 해당 줄이 현재 로그 메시지에 추가됩니다. 이 동작은 로그 관리자 구성 요소가 스택 추적과 같이 여러 줄에 걸쳐 있는 메시지를 분할하지 않도록 하기 위해서입니다.

  `periodicUploadIntervalSec`   
(선택 사항) 로그 관리자 구성 요소가 업로드할 새 로그 파일을 확인하는 기간(초)입니다.  
기본값: `300`(5분)  
최소값: `0.000001`(1마이크로초)

`updateToTlogIntervalSec`  
(선택 사항) nucleus가 Amazon CloudWatch Events 로그 업로드 이벤트 세부 정보를 로컬 트랜잭션 로그(`config.tlog`)에 기록하는 주기를 초 단위로 지정합니다. 기본값은 `periodicUploadIntervalSec`에 지정된 값입니다. 이 파라미터를 수정하여 기록 간격을 늘릴 수 있습니다.  
기본값: `periodicUploadIntervalSec`  
최소: `periodicUploadIntervalSec`

`deprecatedVersionSupport`  
로그 관리자가 로그 관리자 v2.3.5에 도입된 로깅 속도 개선을 사용해야 하는지 여부를 나타냅니다. 개선 사항을 사용하려면 값을 `false`로 설정합니다.  
로그 관리자 v2.3.1 또는 이전 버전에서 업그레이드할 때 이 값을 `false`로 설정하는 경우 중복 로그 항목이 업로드될 수 있습니다.  
기본값은 `true`입니다.

**Example 예: 구성 병합 업데이트**  
다음 구성 예제에서는 시스템 로그와 `com.example.HelloWorld` 구성 요소 로그를 CloudWatch Logs에 업로드하도록 지정합니다.  

```
{
  "logsUploaderConfiguration": {
    "systemLogsConfiguration": {
      "uploadToCloudWatch": "true",
      "minimumLogLevel": "INFO",
      "diskSpaceLimit": "10",
      "diskSpaceLimitUnit": "MB",
      "deleteLogFileAfterCloudUpload": "false"
    },
    "componentLogsConfigurationMap": {
      "com.example.HelloWorld": {
        "minimumLogLevel": "INFO",
        "diskSpaceLimit": "20",
        "diskSpaceLimitUnit": "MB",
        "deleteLogFileAfterCloudUpload": "false"
      }
    }
  },
  "periodicUploadIntervalSec": "300",
  "deprecatedVersionSupport": "false"
}
```

**Example 예: 로그 관리자 v2.3.1을 사용하여 여러 활성 로그 파일을 업로드하는 구성**  
다음 예제 구성은 여러 활성 로그 파일을 대상으로 지정하려는 경우 권장되는 예제입니다. 이 예제 구성에서는 CloudWatch에 업로드할 활성 로그 파일을 지정합니다. 이 구성 예제를 사용하면 `logFileRegex`와 일치하는 교체된 파일도 업로드됩니다. 이 예제 구성은 로그 관리자 v2.3.1에서 지원됩니다.  

```
{
  "logsUploaderConfiguration": {
    "componentLogsConfigurationMap": {
      "com.example.A": {
        "logFileRegex": "com.example.A\\w*.log",
        "deleteLogFileAfterCloudUpload": "false"
      }
      "com.example.B": {
        "logFileRegex": "com.example.B\\w*.log",
        "deleteLogFileAfterCloudUpload": "false"
      }
    }
  },
  "periodicUploadIntervalSec": "10"
}
```

------
#### [ v2.3.6 – v2.3.9 ]

`logsUploaderConfiguration`  
(선택 사항) 로그 관리자 구성 요소가 업로드하는 로그에 대한 구성입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
  `systemLogsConfiguration`   
(선택 사항) [Greengrass nucleus](greengrass-nucleus-component.md) 및 [플러그인 구성 요소의](develop-greengrass-components.md#component-types) 로그를 포함하는 AWS IoT Greengrass 코어 소프트웨어 시스템 로그에 대한 구성입니다. 로그 관리자 구성 요소가 시스템 로그를 관리할 수 있도록 하려면 이 구성을 지정합니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`uploadToCloudWatch`  <a name="log-manager-component-configuration-system-upload-to-cloud-watch"></a>
(선택 사항) 시스템 로그를 CloudWatch Logs에 업로드할 수 있습니다.  
기본값: `false`  
`minimumLogLevel`  <a name="log-manager-component-configuration-system-minimum-log-level"></a>
(선택 사항) 업로드할 로그 메시지의 최소 수준입니다. 이 최소 수준은 JSON 형식 로그를 출력하도록 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)를 구성하는 경우에만 적용됩니다. JSON 형식 로그를 활성화하려면 [로깅 형식](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format) 파라미터(`JSON`)에 `logging.format`을 지정합니다.  
여기에 수준 순서대로 나열된 다음 로그 수준 중에서 선택합니다.  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
기본값: `INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-system-disk-space-limit"></a>
(선택 사항) `diskSpaceLimitUnit`에서 지정하는 단위로 Greengrass 시스템 로그 파일의 최대 총 크기입니다. Greengrass 시스템 로그 파일의 총 크기가이 최대 총 크기를 초과하면 AWS IoT Greengrass 코어 소프트웨어는 가장 오래된 Greengrass 시스템 로그 파일을 삭제합니다.  
이 파라미터는 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)의 [로그 크기 제한](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit) 파라미터(`totalLogsSizeKB`)와 동일합니다. AWS IoT Greengrass 코어 소프트웨어는 두 값 중 최소값을 최대 총 Greengrass 시스템 로그 크기로 사용합니다.  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
(선택 사항) `diskSpaceLimit`의 단위입니다. 다음 옵션 중 하나를 선택합니다.  
+ `KB` – 킬로바이트
+ `MB` – 메가바이트
+ `GB` – 기가바이트
기본값: `KB`  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
(선택 사항) 로그 관리자 구성 요소가 로그를 CloudWatch Logs에 업로드한 후 로그 파일을 삭제할 수 있습니다.  
기본값: `false`  
  `componentLogsConfigurationMap`   
(선택 사항) 코어 디바이스의 구성 요소에 대한 로그 구성 맵입니다. 이 맵의 각 `componentName` 객체는 구성 요소 또는 애플리케이션에 대한 로그 구성을 정의합니다. 로그 관리자 구성 요소는 이러한 구성 요소 로그를 CloudWatch Logs에 업로드합니다.  
구성 요소당 단일 구성 키를 사용하는 것이 좋습니다. `logFileRegex`를 사용할 때 활발하게 기록되는 로그 파일이 하나만 있는 파일 그룹만을 대상으로 지정해야 합니다. 이 권장 사항을 따르지 않으면 중복 로그가 CloudWatch에 업로드될 수 있습니다. 단일 정규식으로 여러 활성 로그 파일을 대상으로 지정하는 경우에는 로그 관리자 v2.3.1 이상으로 업그레이드하고 [예제 구성](#log-manager-multiple-logs-v2.3.1)을 사용하여 구성을 변경하는 것이 좋습니다.
v2.2.0 이전 버전의 로그 관리자에서 업그레이드하는 경우 `componentLogsConfigurationMap` 대신 `componentLogsConfiguration` 목록을 계속 사용할 수 있습니다. 그러나 병합 및 재설정 업데이트를 사용하여 특정 구성 요소에 대한 구성을 수정할 수 있도록 맵 형식을 사용하는 것이 좋습니다. `componentLogsConfiguration` 파라미터에 대한 자세한 내용은 이 구성 요소의 v2.1.x에 대한 구성 파라미터를 참조하세요.  
*`componentName`*  
*`componentName`* 구성 요소에 대한 로그 구성 또는 이 로그 구성에 대한 애플리케이션입니다. Greengrass 구성 요소의 이름 또는 이 로그 그룹을 식별하는 다른 값을 지정할 수 있습니다.  
각 객체에는 다음 정보가 포함되어 있습니다.    
`minimumLogLevel`  <a name="log-manager-component-configuration-component-minimum-log-level"></a>
(선택 사항) 업로드할 로그 메시지의 최소 수준입니다. 이 최소 수준은 이 구성 요소의 로그가 GitHub의 [AWS IoT Greengrass 로깅 모듈](https://github.com/aws-greengrass/aws-greengrass-logging-java) 리포지토리에서 찾을 수 있는 특정 JSON 형식을 사용하는 경우에만 적용됩니다.  
여기에 수준 순서대로 나열된 다음 로그 수준 중에서 선택합니다.  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
기본값: `INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-component-disk-space-limit"></a>
(선택 사항) `diskSpaceLimitUnit`에서 지정하는 단위로 이 구성 요소에 대한 모든 로그 파일의 최대 총 크기입니다. 이 구성 요소의 로그 파일의 총 크기가이 최대 총 크기를 초과하면 AWS IoT Greengrass 코어 소프트웨어는이 구성 요소의 가장 오래된 로그 파일을 삭제합니다.  
이 파라미터는 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)의 [로그 크기 제한](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit) 파라미터(`totalLogsSizeKB`)와 관련이 있습니다. AWS IoT Greengrass 코어 소프트웨어는 두 값 중 최소값을 이 구성 요소의 최대 총 로그 크기로 사용합니다.  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
(선택 사항) `diskSpaceLimit`의 단위입니다. 다음 옵션 중 하나를 선택합니다.  
+ `KB` – 킬로바이트
+ `MB` – 메가바이트
+ `GB` – 기가바이트
기본값: `KB`  
`logFileDirectoryPath`  <a name="log-manager-component-configuration-component-log-file-dir-path"></a>
(선택 사항) 이 구성 요소의 로그 파일이 포함된 폴더의 경로입니다.  
표준 출력(stdout) 및 표준 오류(stderr)로 인쇄되는 Greengrass 구성 요소에는 이 파라미터를 지정할 필요가 없습니다.  
기본값: `/greengrass/v2/logs`.  
`logFileRegex`  <a name="log-manager-component-configuration-component-log-file-regex"></a>
(선택 사항) 구성 요소 또는 애플리케이션이 사용하는 로그 파일 이름 형식을 지정하는 정규식입니다. 로그 관리자 구성 요소는 이 정규식을 사용하여 `logFileDirectoryPath`의 폴더에서 로그 파일을 식별합니다.  
표준 출력(stdout) 및 표준 오류(stderr)로 인쇄되는 Greengrass 구성 요소에는 이 파라미터를 지정할 필요가 없습니다.  
구성 요소 또는 애플리케이션에서 로그 파일을 교체하는 경우 교체된 로그 파일 이름과 일치하는 정규식을 지정합니다. 예를 들어 Hello World 애플리케이션의 로그를 업로드하려면 **hello\$1world\$1\$1\$1\$1w\$1.log**를 지정할 수 있습니다. `\\\\w*` 패턴은 영숫자와 밑줄을 포함하는 0개 이상의 단어 문자와 일치합니다. 이 정규식은 이름에 타임스탬프가 있거나 없는 로그 파일과 일치합니다. 이 예제에서는 로그 관리자가 다음 로그 파일을 업로드합니다.  
+ `hello_world.log` - Hello World 애플리케이션의 최신 로그 파일입니다.
+ `hello_world_2020_12_15_17_0.log` – Hello World 애플리케이션의 이전 로그 파일입니다.
기본값: `componentName\\\\w*.log`, 여기서 *componentName*은 이 로그 구성에 대한 구성 요소의 이름입니다.  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
(선택 사항) 로그 관리자 구성 요소가 로그를 CloudWatch Logs에 업로드한 후 로그 파일을 삭제할 수 있습니다.  
기본값: `false`  
`multiLineStartPattern`  <a name="log-manager-component-configuration-component-multi-line-start-pattern"></a>
(선택 사항) 새 줄의 로그 메시지가 새 로그 메시지인 경우를 식별하는 정규식입니다. 정규식이 새 줄과 일치하지 않는 경우 로그 관리자 구성 요소는 새 줄을 이전 줄의 로그 메시지에 추가합니다.  
기본적으로 로그 관리자 구성 요소는 줄이 탭 또는 공백과 같은 공백 문자로 시작하는지 확인합니다. 그렇지 않으면 로그 관리자는 해당 줄을 새 로그 메시지로 처리합니다. 공백 문자로 시작하는 경우 해당 줄이 현재 로그 메시지에 추가됩니다. 이 동작은 로그 관리자 구성 요소가 스택 추적과 같이 여러 줄에 걸쳐 있는 메시지를 분할하지 않도록 하기 위해서입니다.

  `periodicUploadIntervalSec`   
(선택 사항) 로그 관리자 구성 요소가 업로드할 새 로그 파일을 확인하는 기간(초)입니다.  
기본값: `300`(5분)  
최소값: `0.000001`(1마이크로초)

`deprecatedVersionSupport`  
로그 관리자가 로그 관리자 v2.3.5에 도입된 로깅 속도 개선을 사용해야 하는지 여부를 나타냅니다. 개선 사항을 사용하려면 값을 `false`로 설정합니다.  
로그 관리자 v2.3.1 또는 이전 버전에서 업그레이드할 때 이 값을 `false`로 설정하는 경우 중복 로그 항목이 업로드될 수 있습니다.  
기본값은 `true`입니다.

**Example 예: 구성 병합 업데이트**  
다음 구성 예제에서는 시스템 로그와 `com.example.HelloWorld` 구성 요소 로그를 CloudWatch Logs에 업로드하도록 지정합니다.  

```
{
  "logsUploaderConfiguration": {
    "systemLogsConfiguration": {
      "uploadToCloudWatch": "true",
      "minimumLogLevel": "INFO",
      "diskSpaceLimit": "10",
      "diskSpaceLimitUnit": "MB",
      "deleteLogFileAfterCloudUpload": "false"
    },
    "componentLogsConfigurationMap": {
      "com.example.HelloWorld": {
        "minimumLogLevel": "INFO",
        "diskSpaceLimit": "20",
        "diskSpaceLimitUnit": "MB",
        "deleteLogFileAfterCloudUpload": "false"
      }
    }
  },
  "periodicUploadIntervalSec": "300",
  "deprecatedVersionSupport": "false"
}
```

**Example 예: 로그 관리자 v2.3.1을 사용하여 여러 활성 로그 파일을 업로드하는 구성**  
다음 예제 구성은 여러 활성 로그 파일을 대상으로 지정하려는 경우 권장되는 예제입니다. 이 예제 구성에서는 CloudWatch에 업로드할 활성 로그 파일을 지정합니다. 이 구성 예제를 사용하면 `logFileRegex`와 일치하는 교체된 파일도 업로드됩니다. 이 예제 구성은 로그 관리자 v2.3.1에서 지원됩니다.  

```
{
  "logsUploaderConfiguration": {
    "componentLogsConfigurationMap": {
      "com.example.A": {
        "logFileRegex": "com.example.A\\w*.log",
        "deleteLogFileAfterCloudUpload": "false"
      }
      "com.example.B": {
        "logFileRegex": "com.example.B\\w*.log",
        "deleteLogFileAfterCloudUpload": "false"
      }
    }
  },
  "periodicUploadIntervalSec": "10"
}
```

------
#### [ v2.3.0 – 2.3.5 ]

`logsUploaderConfiguration`  
(선택 사항) 로그 관리자 구성 요소가 업로드하는 로그에 대한 구성입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
  `systemLogsConfiguration`   
(선택 사항) [Greengrass nucleus](greengrass-nucleus-component.md) 및 [플러그인 구성 요소의](develop-greengrass-components.md#component-types) 로그를 포함하는 AWS IoT Greengrass 코어 소프트웨어 시스템 로그에 대한 구성입니다. 로그 관리자 구성 요소가 시스템 로그를 관리할 수 있도록 하려면 이 구성을 지정합니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`uploadToCloudWatch`  <a name="log-manager-component-configuration-system-upload-to-cloud-watch"></a>
(선택 사항) 시스템 로그를 CloudWatch Logs에 업로드할 수 있습니다.  
기본값: `false`  
`minimumLogLevel`  <a name="log-manager-component-configuration-system-minimum-log-level"></a>
(선택 사항) 업로드할 로그 메시지의 최소 수준입니다. 이 최소 수준은 JSON 형식 로그를 출력하도록 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)를 구성하는 경우에만 적용됩니다. JSON 형식 로그를 활성화하려면 [로깅 형식](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format) 파라미터(`JSON`)에 `logging.format`을 지정합니다.  
여기에 수준 순서대로 나열된 다음 로그 수준 중에서 선택합니다.  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
기본값: `INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-system-disk-space-limit"></a>
(선택 사항) `diskSpaceLimitUnit`에서 지정하는 단위로 Greengrass 시스템 로그 파일의 최대 총 크기입니다. Greengrass 시스템 로그 파일의 총 크기가이 최대 총 크기를 초과하면 AWS IoT Greengrass 코어 소프트웨어는 가장 오래된 Greengrass 시스템 로그 파일을 삭제합니다.  
이 파라미터는 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)의 [로그 크기 제한](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit) 파라미터(`totalLogsSizeKB`)와 동일합니다. AWS IoT Greengrass 코어 소프트웨어는 두 값 중 최소값을 최대 총 Greengrass 시스템 로그 크기로 사용합니다.  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
(선택 사항) `diskSpaceLimit`의 단위입니다. 다음 옵션 중 하나를 선택합니다.  
+ `KB` – 킬로바이트
+ `MB` – 메가바이트
+ `GB` – 기가바이트
기본값: `KB`  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
(선택 사항) 로그 관리자 구성 요소가 로그를 CloudWatch Logs에 업로드한 후 로그 파일을 삭제할 수 있습니다.  
기본값: `false`  
  `componentLogsConfigurationMap`   
(선택 사항) 코어 디바이스의 구성 요소에 대한 로그 구성 맵입니다. 이 맵의 각 `componentName` 객체는 구성 요소 또는 애플리케이션에 대한 로그 구성을 정의합니다. 로그 관리자 구성 요소는 이러한 구성 요소 로그를 CloudWatch Logs에 업로드합니다.  
구성 요소당 단일 구성 키를 사용하는 것이 좋습니다. `logFileRegex`를 사용할 때 활발하게 기록되는 로그 파일이 하나만 있는 파일 그룹만을 대상으로 지정해야 합니다. 이 권장 사항을 따르지 않으면 중복 로그가 CloudWatch에 업로드될 수 있습니다. 단일 정규식으로 여러 활성 로그 파일을 대상으로 지정하는 경우에는 로그 관리자 v2.3.1로 업그레이드하고 [예제 구성](#log-manager-multiple-logs-v2.3.1)을 사용하여 구성을 변경하는 것이 좋습니다.
v2.2.0 이전 버전의 로그 관리자에서 업그레이드하는 경우 `componentLogsConfigurationMap` 대신 `componentLogsConfiguration` 목록을 계속 사용할 수 있습니다. 그러나 병합 및 재설정 업데이트를 사용하여 특정 구성 요소에 대한 구성을 수정할 수 있도록 맵 형식을 사용하는 것이 좋습니다. `componentLogsConfiguration` 파라미터에 대한 자세한 내용은 이 구성 요소의 v2.1.x에 대한 구성 파라미터를 참조하세요.  
*`componentName`*  
*`componentName`* 구성 요소에 대한 로그 구성 또는 이 로그 구성에 대한 애플리케이션입니다. Greengrass 구성 요소의 이름 또는 이 로그 그룹을 식별하는 다른 값을 지정할 수 있습니다.  
각 객체에는 다음 정보가 포함되어 있습니다.    
`minimumLogLevel`  <a name="log-manager-component-configuration-component-minimum-log-level"></a>
(선택 사항) 업로드할 로그 메시지의 최소 수준입니다. 이 최소 수준은 이 구성 요소의 로그가 GitHub의 [AWS IoT Greengrass 로깅 모듈](https://github.com/aws-greengrass/aws-greengrass-logging-java) 리포지토리에서 찾을 수 있는 특정 JSON 형식을 사용하는 경우에만 적용됩니다.  
여기에 수준 순서대로 나열된 다음 로그 수준 중에서 선택합니다.  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
기본값: `INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-component-disk-space-limit"></a>
(선택 사항) `diskSpaceLimitUnit`에서 지정하는 단위로 이 구성 요소에 대한 모든 로그 파일의 최대 총 크기입니다. 이 구성 요소의 로그 파일의 총 크기가이 최대 총 크기를 초과하면 AWS IoT Greengrass 코어 소프트웨어는이 구성 요소의 가장 오래된 로그 파일을 삭제합니다.  
이 파라미터는 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)의 [로그 크기 제한](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit) 파라미터(`totalLogsSizeKB`)와 관련이 있습니다. AWS IoT Greengrass 코어 소프트웨어는 두 값 중 최소값을 이 구성 요소의 최대 총 로그 크기로 사용합니다.  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
(선택 사항) `diskSpaceLimit`의 단위입니다. 다음 옵션 중 하나를 선택합니다.  
+ `KB` – 킬로바이트
+ `MB` – 메가바이트
+ `GB` – 기가바이트
기본값: `KB`  
`logFileDirectoryPath`  <a name="log-manager-component-configuration-component-log-file-dir-path"></a>
(선택 사항) 이 구성 요소의 로그 파일이 포함된 폴더의 경로입니다.  
표준 출력(stdout) 및 표준 오류(stderr)로 인쇄되는 Greengrass 구성 요소에는 이 파라미터를 지정할 필요가 없습니다.  
기본값: `/greengrass/v2/logs`.  
`logFileRegex`  <a name="log-manager-component-configuration-component-log-file-regex"></a>
(선택 사항) 구성 요소 또는 애플리케이션이 사용하는 로그 파일 이름 형식을 지정하는 정규식입니다. 로그 관리자 구성 요소는 이 정규식을 사용하여 `logFileDirectoryPath`의 폴더에서 로그 파일을 식별합니다.  
표준 출력(stdout) 및 표준 오류(stderr)로 인쇄되는 Greengrass 구성 요소에는 이 파라미터를 지정할 필요가 없습니다.  
구성 요소 또는 애플리케이션에서 로그 파일을 교체하는 경우 교체된 로그 파일 이름과 일치하는 정규식을 지정합니다. 예를 들어 Hello World 애플리케이션의 로그를 업로드하려면 **hello\$1world\$1\$1\$1\$1w\$1.log**를 지정할 수 있습니다. `\\\\w*` 패턴은 영숫자와 밑줄을 포함하는 0개 이상의 단어 문자와 일치합니다. 이 정규식은 이름에 타임스탬프가 있거나 없는 로그 파일과 일치합니다. 이 예제에서는 로그 관리자가 다음 로그 파일을 업로드합니다.  
+ `hello_world.log` - Hello World 애플리케이션의 최신 로그 파일입니다.
+ `hello_world_2020_12_15_17_0.log` – Hello World 애플리케이션의 이전 로그 파일입니다.
기본값: `componentName\\\\w*.log`, 여기서 *componentName*은 이 로그 구성에 대한 구성 요소의 이름입니다.  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
(선택 사항) 로그 관리자 구성 요소가 로그를 CloudWatch Logs에 업로드한 후 로그 파일을 삭제할 수 있습니다.  
기본값: `false`  
`multiLineStartPattern`  <a name="log-manager-component-configuration-component-multi-line-start-pattern"></a>
(선택 사항) 새 줄의 로그 메시지가 새 로그 메시지인 경우를 식별하는 정규식입니다. 정규식이 새 줄과 일치하지 않는 경우 로그 관리자 구성 요소는 새 줄을 이전 줄의 로그 메시지에 추가합니다.  
기본적으로 로그 관리자 구성 요소는 줄이 탭 또는 공백과 같은 공백 문자로 시작하는지 확인합니다. 그렇지 않으면 로그 관리자는 해당 줄을 새 로그 메시지로 처리합니다. 공백 문자로 시작하는 경우 해당 줄이 현재 로그 메시지에 추가됩니다. 이 동작은 로그 관리자 구성 요소가 스택 추적과 같이 여러 줄에 걸쳐 있는 메시지를 분할하지 않도록 하기 위해서입니다.

  `periodicUploadIntervalSec`   
(선택 사항) 로그 관리자 구성 요소가 업로드할 새 로그 파일을 확인하는 기간(초)입니다.  
기본값: `300`(5분)  
최소값: `0.000001`(1마이크로초)

**Example 예: 구성 병합 업데이트**  
다음 구성 예제에서는 시스템 로그와 `com.example.HelloWorld` 구성 요소 로그를 CloudWatch Logs에 업로드하도록 지정합니다.  

```
{
  "logsUploaderConfiguration": {
    "systemLogsConfiguration": {
      "uploadToCloudWatch": "true",
      "minimumLogLevel": "INFO",
      "diskSpaceLimit": "10",
      "diskSpaceLimitUnit": "MB",
      "deleteLogFileAfterCloudUpload": "false"
    },
    "componentLogsConfigurationMap": {
      "com.example.HelloWorld": {
        "minimumLogLevel": "INFO",
        "diskSpaceLimit": "20",
        "diskSpaceLimitUnit": "MB",
        "deleteLogFileAfterCloudUpload": "false"
      }
    }
  },
  "periodicUploadIntervalSec": "300"
}
```

**Example 예: 로그 관리자 v2.3.1을 사용하여 여러 활성 로그 파일을 업로드하는 구성**  
다음 예제 구성은 여러 활성 로그 파일을 대상으로 지정하려는 경우 권장되는 예제입니다. 이 예제 구성에서는 CloudWatch에 업로드할 활성 로그 파일을 지정합니다. 이 구성 예제를 사용하면 `logFileRegex`와 일치하는 교체된 파일도 업로드됩니다. 이 예제 구성은 로그 관리자 v2.3.1에서 지원됩니다.  

```
{
  "logsUploaderConfiguration": {
    "componentLogsConfigurationMap": {
      "com.example.A": {
        "logFileRegex": "com.example.A\\w*.log",
        "deleteLogFileAfterCloudUpload": "false"
      }
      "com.example.B": {
        "logFileRegex": "com.example.B\\w*.log",
        "deleteLogFileAfterCloudUpload": "false"
      }
    }
  },
  "periodicUploadIntervalSec": "10"
}
```

------
#### [ v2.2.x ]

`logsUploaderConfiguration`  
(선택 사항) 로그 관리자 구성 요소가 업로드하는 로그에 대한 구성입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
  `systemLogsConfiguration`   
(선택 사항) [Greengrass nucleus](greengrass-nucleus-component.md) 및 [플러그인 구성 요소의](develop-greengrass-components.md#component-types) 로그를 포함하는 AWS IoT Greengrass 코어 소프트웨어 시스템 로그에 대한 구성입니다. 로그 관리자 구성 요소가 시스템 로그를 관리할 수 있도록 하려면 이 구성을 지정합니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`uploadToCloudWatch`  <a name="log-manager-component-configuration-system-upload-to-cloud-watch"></a>
(선택 사항) 시스템 로그를 CloudWatch Logs에 업로드할 수 있습니다.  
기본값: `false`  
`minimumLogLevel`  <a name="log-manager-component-configuration-system-minimum-log-level"></a>
(선택 사항) 업로드할 로그 메시지의 최소 수준입니다. 이 최소 수준은 JSON 형식 로그를 출력하도록 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)를 구성하는 경우에만 적용됩니다. JSON 형식 로그를 활성화하려면 [로깅 형식](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format) 파라미터(`JSON`)에 `logging.format`을 지정합니다.  
여기에 수준 순서대로 나열된 다음 로그 수준 중에서 선택합니다.  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
기본값: `INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-system-disk-space-limit"></a>
(선택 사항) `diskSpaceLimitUnit`에서 지정하는 단위로 Greengrass 시스템 로그 파일의 최대 총 크기입니다. Greengrass 시스템 로그 파일의 총 크기가이 최대 총 크기를 초과하면 AWS IoT Greengrass 코어 소프트웨어는 가장 오래된 Greengrass 시스템 로그 파일을 삭제합니다.  
이 파라미터는 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)의 [로그 크기 제한](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit) 파라미터(`totalLogsSizeKB`)와 동일합니다. AWS IoT Greengrass 코어 소프트웨어는 두 값 중 최소값을 최대 총 Greengrass 시스템 로그 크기로 사용합니다.  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
(선택 사항) `diskSpaceLimit`의 단위입니다. 다음 옵션 중 하나를 선택합니다.  
+ `KB` – 킬로바이트
+ `MB` – 메가바이트
+ `GB` – 기가바이트
기본값: `KB`  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
(선택 사항) 로그 관리자 구성 요소가 로그를 CloudWatch Logs에 업로드한 후 로그 파일을 삭제할 수 있습니다.  
기본값: `false`  
  `componentLogsConfigurationMap`   
(선택 사항) 코어 디바이스의 구성 요소에 대한 로그 구성 맵입니다. 이 맵의 각 `componentName` 객체는 구성 요소 또는 애플리케이션에 대한 로그 구성을 정의합니다. 로그 관리자 구성 요소는 이러한 구성 요소 로그를 CloudWatch Logs에 업로드합니다.  
v2.2.0 이전 버전의 로그 관리자에서 업그레이드하는 경우 `componentLogsConfigurationMap` 대신 `componentLogsConfiguration` 목록을 계속 사용할 수 있습니다. 그러나 병합 및 재설정 업데이트를 사용하여 특정 구성 요소에 대한 구성을 수정할 수 있도록 맵 형식을 사용하는 것이 좋습니다. `componentLogsConfiguration` 파라미터에 대한 자세한 내용은 이 구성 요소의 v2.1.x에 대한 구성 파라미터를 참조하세요.  
*`componentName`*  
*`componentName`* 구성 요소에 대한 로그 구성 또는 이 로그 구성에 대한 애플리케이션입니다. Greengrass 구성 요소의 이름 또는 이 로그 그룹을 식별하는 다른 값을 지정할 수 있습니다.  
각 객체에는 다음 정보가 포함되어 있습니다.    
`minimumLogLevel`  <a name="log-manager-component-configuration-component-minimum-log-level"></a>
(선택 사항) 업로드할 로그 메시지의 최소 수준입니다. 이 최소 수준은 이 구성 요소의 로그가 GitHub의 [AWS IoT Greengrass 로깅 모듈](https://github.com/aws-greengrass/aws-greengrass-logging-java) 리포지토리에서 찾을 수 있는 특정 JSON 형식을 사용하는 경우에만 적용됩니다.  
여기에 수준 순서대로 나열된 다음 로그 수준 중에서 선택합니다.  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
기본값: `INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-component-disk-space-limit"></a>
(선택 사항) `diskSpaceLimitUnit`에서 지정하는 단위로 이 구성 요소에 대한 모든 로그 파일의 최대 총 크기입니다. 이 구성 요소의 로그 파일의 총 크기가이 최대 총 크기를 초과하면 AWS IoT Greengrass 코어 소프트웨어는이 구성 요소의 가장 오래된 로그 파일을 삭제합니다.  
이 파라미터는 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)의 [로그 크기 제한](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit) 파라미터(`totalLogsSizeKB`)와 관련이 있습니다. AWS IoT Greengrass 코어 소프트웨어는 두 값 중 최소값을 이 구성 요소의 최대 총 로그 크기로 사용합니다.  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
(선택 사항) `diskSpaceLimit`의 단위입니다. 다음 옵션 중 하나를 선택합니다.  
+ `KB` – 킬로바이트
+ `MB` – 메가바이트
+ `GB` – 기가바이트
기본값: `KB`  
`logFileDirectoryPath`  <a name="log-manager-component-configuration-component-log-file-dir-path"></a>
(선택 사항) 이 구성 요소의 로그 파일이 포함된 폴더의 경로입니다.  
표준 출력(stdout) 및 표준 오류(stderr)로 인쇄되는 Greengrass 구성 요소에는 이 파라미터를 지정할 필요가 없습니다.  
기본값: `/greengrass/v2/logs`.  
`logFileRegex`  <a name="log-manager-component-configuration-component-log-file-regex"></a>
(선택 사항) 구성 요소 또는 애플리케이션이 사용하는 로그 파일 이름 형식을 지정하는 정규식입니다. 로그 관리자 구성 요소는 이 정규식을 사용하여 `logFileDirectoryPath`의 폴더에서 로그 파일을 식별합니다.  
표준 출력(stdout) 및 표준 오류(stderr)로 인쇄되는 Greengrass 구성 요소에는 이 파라미터를 지정할 필요가 없습니다.  
구성 요소 또는 애플리케이션에서 로그 파일을 교체하는 경우 교체된 로그 파일 이름과 일치하는 정규식을 지정합니다. 예를 들어 Hello World 애플리케이션의 로그를 업로드하려면 **hello\$1world\$1\$1\$1\$1w\$1.log**를 지정할 수 있습니다. `\\\\w*` 패턴은 영숫자와 밑줄을 포함하는 0개 이상의 단어 문자와 일치합니다. 이 정규식은 이름에 타임스탬프가 있거나 없는 로그 파일과 일치합니다. 이 예제에서는 로그 관리자가 다음 로그 파일을 업로드합니다.  
+ `hello_world.log` - Hello World 애플리케이션의 최신 로그 파일입니다.
+ `hello_world_2020_12_15_17_0.log` – Hello World 애플리케이션의 이전 로그 파일입니다.
기본값: `componentName\\\\w*.log`, 여기서 *componentName*은 이 로그 구성에 대한 구성 요소의 이름입니다.  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
(선택 사항) 로그 관리자 구성 요소가 로그를 CloudWatch Logs에 업로드한 후 로그 파일을 삭제할 수 있습니다.  
기본값: `false`  
`multiLineStartPattern`  <a name="log-manager-component-configuration-component-multi-line-start-pattern"></a>
(선택 사항) 새 줄의 로그 메시지가 새 로그 메시지인 경우를 식별하는 정규식입니다. 정규식이 새 줄과 일치하지 않는 경우 로그 관리자 구성 요소는 새 줄을 이전 줄의 로그 메시지에 추가합니다.  
기본적으로 로그 관리자 구성 요소는 줄이 탭 또는 공백과 같은 공백 문자로 시작하는지 확인합니다. 그렇지 않으면 로그 관리자는 해당 줄을 새 로그 메시지로 처리합니다. 공백 문자로 시작하는 경우 해당 줄이 현재 로그 메시지에 추가됩니다. 이 동작은 로그 관리자 구성 요소가 스택 추적과 같이 여러 줄에 걸쳐 있는 메시지를 분할하지 않도록 하기 위해서입니다.

  `periodicUploadIntervalSec`   
(선택 사항) 로그 관리자 구성 요소가 업로드할 새 로그 파일을 확인하는 기간(초)입니다.  
기본값: `300`(5분)  
최소값: `0.000001`(1마이크로초)

**Example 예: 구성 병합 업데이트**  
다음 구성 예제에서는 시스템 로그와 `com.example.HelloWorld` 구성 요소 로그를 CloudWatch Logs에 업로드하도록 지정합니다.  

```
{
  "logsUploaderConfiguration": {
    "systemLogsConfiguration": {
      "uploadToCloudWatch": "true",
      "minimumLogLevel": "INFO",
      "diskSpaceLimit": "10",
      "diskSpaceLimitUnit": "MB",
      "deleteLogFileAfterCloudUpload": "false"
    },
    "componentLogsConfigurationMap": {
      "com.example.HelloWorld": {
        "minimumLogLevel": "INFO",
        "diskSpaceLimit": "20",
        "diskSpaceLimitUnit": "MB",
        "deleteLogFileAfterCloudUpload": "false"
      }
    }
  },
  "periodicUploadIntervalSec": "300"
}
```

------
#### [ v2.1.x ]

`logsUploaderConfiguration`  
(선택 사항) 로그 관리자 구성 요소가 업로드하는 로그에 대한 구성입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
 `systemLogsConfiguration`   
(선택 사항) [Greengrass nucleus](greengrass-nucleus-component.md) 및 [플러그인 구성 요소의](develop-greengrass-components.md#component-types) 로그를 포함하는 AWS IoT Greengrass 코어 소프트웨어 시스템 로그에 대한 구성입니다. 로그 관리자 구성 요소가 시스템 로그를 관리할 수 있도록 하려면 이 구성을 지정합니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`uploadToCloudWatch`  <a name="log-manager-component-configuration-system-upload-to-cloud-watch"></a>
(선택 사항) 시스템 로그를 CloudWatch Logs에 업로드할 수 있습니다.  
기본값: `false`  
`minimumLogLevel`  <a name="log-manager-component-configuration-system-minimum-log-level"></a>
(선택 사항) 업로드할 로그 메시지의 최소 수준입니다. 이 최소 수준은 JSON 형식 로그를 출력하도록 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)를 구성하는 경우에만 적용됩니다. JSON 형식 로그를 활성화하려면 [로깅 형식](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format) 파라미터(`JSON`)에 `logging.format`을 지정합니다.  
여기에 수준 순서대로 나열된 다음 로그 수준 중에서 선택합니다.  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
기본값: `INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-system-disk-space-limit"></a>
(선택 사항) `diskSpaceLimitUnit`에서 지정하는 단위로 Greengrass 시스템 로그 파일의 최대 총 크기입니다. Greengrass 시스템 로그 파일의 총 크기가이 최대 총 크기를 초과하면 AWS IoT Greengrass 코어 소프트웨어는 가장 오래된 Greengrass 시스템 로그 파일을 삭제합니다.  
이 파라미터는 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)의 [로그 크기 제한](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit) 파라미터(`totalLogsSizeKB`)와 동일합니다. AWS IoT Greengrass 코어 소프트웨어는 두 값 중 최소값을 최대 총 Greengrass 시스템 로그 크기로 사용합니다.  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
(선택 사항) `diskSpaceLimit`의 단위입니다. 다음 옵션 중 하나를 선택합니다.  
+ `KB` – 킬로바이트
+ `MB` – 메가바이트
+ `GB` – 기가바이트
기본값: `KB`  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
(선택 사항) 로그 관리자 구성 요소가 로그를 CloudWatch Logs에 업로드한 후 로그 파일을 삭제할 수 있습니다.  
기본값: `false`  
  `componentLogsConfiguration`   
(선택 사항) 코어 디바이스의 구성 요소에 대한 로그 구성 목록입니다. 이 목록의 각 객체는 구성 요소 또는 애플리케이션에 대한 로그 구성을 정의합니다. 로그 관리자 구성 요소는 이러한 구성 요소 로그를 CloudWatch Logs에 업로드합니다.  
각 객체에는 다음 정보가 포함되어 있습니다.    
`componentName`  <a name="log-manager-component-configuration-component-component-name"></a>
이 로그 구성에 대한 구성 요소 또는 애플리케이션의 이름입니다. Greengrass 구성 요소의 이름 또는 이 로그 그룹을 식별하는 다른 값을 지정할 수 있습니다.  
`minimumLogLevel`  <a name="log-manager-component-configuration-component-minimum-log-level"></a>
(선택 사항) 업로드할 로그 메시지의 최소 수준입니다. 이 최소 수준은 이 구성 요소의 로그가 GitHub의 [AWS IoT Greengrass 로깅 모듈](https://github.com/aws-greengrass/aws-greengrass-logging-java) 리포지토리에서 찾을 수 있는 특정 JSON 형식을 사용하는 경우에만 적용됩니다.  
여기에 수준 순서대로 나열된 다음 로그 수준 중에서 선택합니다.  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
기본값: `INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-component-disk-space-limit"></a>
(선택 사항) `diskSpaceLimitUnit`에서 지정하는 단위로 이 구성 요소에 대한 모든 로그 파일의 최대 총 크기입니다. 이 구성 요소의 로그 파일의 총 크기가이 최대 총 크기를 초과하면 AWS IoT Greengrass 코어 소프트웨어는이 구성 요소의 가장 오래된 로그 파일을 삭제합니다.  
이 파라미터는 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)의 [로그 크기 제한](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit) 파라미터(`totalLogsSizeKB`)와 관련이 있습니다. AWS IoT Greengrass 코어 소프트웨어는 두 값 중 최소값을 이 구성 요소의 최대 총 로그 크기로 사용합니다.  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
(선택 사항) `diskSpaceLimit`의 단위입니다. 다음 옵션 중 하나를 선택합니다.  
+ `KB` – 킬로바이트
+ `MB` – 메가바이트
+ `GB` – 기가바이트
기본값: `KB`  
`logFileDirectoryPath`  <a name="log-manager-component-configuration-component-log-file-dir-path"></a>
(선택 사항) 이 구성 요소의 로그 파일이 포함된 폴더의 경로입니다.  
표준 출력(stdout) 및 표준 오류(stderr)로 인쇄되는 Greengrass 구성 요소에는 이 파라미터를 지정할 필요가 없습니다.  
기본값: `/greengrass/v2/logs`.  
`logFileRegex`  <a name="log-manager-component-configuration-component-log-file-regex"></a>
(선택 사항) 구성 요소 또는 애플리케이션이 사용하는 로그 파일 이름 형식을 지정하는 정규식입니다. 로그 관리자 구성 요소는 이 정규식을 사용하여 `logFileDirectoryPath`의 폴더에서 로그 파일을 식별합니다.  
표준 출력(stdout) 및 표준 오류(stderr)로 인쇄되는 Greengrass 구성 요소에는 이 파라미터를 지정할 필요가 없습니다.  
구성 요소 또는 애플리케이션에서 로그 파일을 교체하는 경우 교체된 로그 파일 이름과 일치하는 정규식을 지정합니다. 예를 들어 Hello World 애플리케이션의 로그를 업로드하려면 **hello\$1world\$1\$1\$1\$1w\$1.log**를 지정할 수 있습니다. `\\\\w*` 패턴은 영숫자와 밑줄을 포함하는 0개 이상의 단어 문자와 일치합니다. 이 정규식은 이름에 타임스탬프가 있거나 없는 로그 파일과 일치합니다. 이 예제에서는 로그 관리자가 다음 로그 파일을 업로드합니다.  
+ `hello_world.log` - Hello World 애플리케이션의 최신 로그 파일입니다.
+ `hello_world_2020_12_15_17_0.log` – Hello World 애플리케이션의 이전 로그 파일입니다.
기본값: `componentName\\\\w*.log`, 여기서 *componentName*은 이 로그 구성에 대한 구성 요소의 이름입니다.  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
(선택 사항) 로그 관리자 구성 요소가 로그를 CloudWatch Logs에 업로드한 후 로그 파일을 삭제할 수 있습니다.  
기본값: `false`  
`multiLineStartPattern`  <a name="log-manager-component-configuration-component-multi-line-start-pattern"></a>
(선택 사항) 새 줄의 로그 메시지가 새 로그 메시지인 경우를 식별하는 정규식입니다. 정규식이 새 줄과 일치하지 않는 경우 로그 관리자 구성 요소는 새 줄을 이전 줄의 로그 메시지에 추가합니다.  
기본적으로 로그 관리자 구성 요소는 줄이 탭 또는 공백과 같은 공백 문자로 시작하는지 확인합니다. 그렇지 않으면 로그 관리자는 해당 줄을 새 로그 메시지로 처리합니다. 공백 문자로 시작하는 경우 해당 줄이 현재 로그 메시지에 추가됩니다. 이 동작은 로그 관리자 구성 요소가 스택 추적과 같이 여러 줄에 걸쳐 있는 메시지를 분할하지 않도록 하기 위해서입니다.

 `periodicUploadIntervalSec`   
(선택 사항) 로그 관리자 구성 요소가 업로드할 새 로그 파일을 확인하는 기간(초)입니다.  
기본값: `300`(5분)  
최소값: `0.000001`(1마이크로초)

**Example 예: 구성 병합 업데이트**  
다음 구성 예제에서는 시스템 로그와 `com.example.HelloWorld` 구성 요소 로그를 CloudWatch Logs에 업로드하도록 지정합니다.  

```
{
  "logsUploaderConfiguration": {
    "systemLogsConfiguration": {
      "uploadToCloudWatch": "true",
      "minimumLogLevel": "INFO",
      "diskSpaceLimit": "10",
      "diskSpaceLimitUnit": "MB",
      "deleteLogFileAfterCloudUpload": "false"
    },
    "componentLogsConfiguration": [
      {
        "componentName": "com.example.HelloWorld",
        "minimumLogLevel": "INFO",
        "diskSpaceLimit": "20",
        "diskSpaceLimitUnit": "MB",
        "deleteLogFileAfterCloudUpload": "false"
      }
    ]
  },
  "periodicUploadIntervalSec": "300"
}
```

------
#### [ v2.0.x ]

`logsUploaderConfiguration`  
(선택 사항) 로그 관리자 구성 요소가 업로드하는 로그에 대한 구성입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`systemLogsConfiguration`  
(선택 사항) AWS IoT Greengrass 코어 소프트웨어 시스템 로그의 구성입니다. 로그 관리자 구성 요소가 시스템 로그를 관리할 수 있도록 하려면 이 구성을 지정합니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`uploadToCloudWatch`  <a name="log-manager-component-configuration-system-upload-to-cloud-watch"></a>
(선택 사항) 시스템 로그를 CloudWatch Logs에 업로드할 수 있습니다.  
기본값: `false`  
`minimumLogLevel`  <a name="log-manager-component-configuration-system-minimum-log-level"></a>
(선택 사항) 업로드할 로그 메시지의 최소 수준입니다. 이 최소 수준은 JSON 형식 로그를 출력하도록 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)를 구성하는 경우에만 적용됩니다. JSON 형식 로그를 활성화하려면 [로깅 형식](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format) 파라미터(`JSON`)에 `logging.format`을 지정합니다.  
여기에 수준 순서대로 나열된 다음 로그 수준 중에서 선택합니다.  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
기본값: `INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-system-disk-space-limit"></a>
(선택 사항) `diskSpaceLimitUnit`에서 지정하는 단위로 Greengrass 시스템 로그 파일의 최대 총 크기입니다. Greengrass 시스템 로그 파일의 총 크기가이 최대 총 크기를 초과하면 AWS IoT Greengrass 코어 소프트웨어는 가장 오래된 Greengrass 시스템 로그 파일을 삭제합니다.  
이 파라미터는 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)의 [로그 크기 제한](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit) 파라미터(`totalLogsSizeKB`)와 동일합니다. AWS IoT Greengrass 코어 소프트웨어는 두 값 중 최소값을 최대 총 Greengrass 시스템 로그 크기로 사용합니다.  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
(선택 사항) `diskSpaceLimit`의 단위입니다. 다음 옵션 중 하나를 선택합니다.  
+ `KB` – 킬로바이트
+ `MB` – 메가바이트
+ `GB` – 기가바이트
기본값: `KB`  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
(선택 사항) 로그 관리자 구성 요소가 로그를 CloudWatch Logs에 업로드한 후 로그 파일을 삭제할 수 있습니다.  
기본값: `false`  
`componentLogsConfiguration`  
(선택 사항) 코어 디바이스의 구성 요소에 대한 로그 구성 목록입니다. 이 목록의 각 객체는 구성 요소 또는 애플리케이션에 대한 로그 구성을 정의합니다. 로그 관리자 구성 요소는 이러한 구성 요소 로그를 CloudWatch Logs에 업로드합니다.  
각 객체에는 다음 정보가 포함되어 있습니다.    
`componentName`  <a name="log-manager-component-configuration-component-component-name"></a>
이 로그 구성에 대한 구성 요소 또는 애플리케이션의 이름입니다. Greengrass 구성 요소의 이름 또는 이 로그 그룹을 식별하는 다른 값을 지정할 수 있습니다.  
`minimumLogLevel`  <a name="log-manager-component-configuration-component-minimum-log-level"></a>
(선택 사항) 업로드할 로그 메시지의 최소 수준입니다. 이 최소 수준은 이 구성 요소의 로그가 GitHub의 [AWS IoT Greengrass 로깅 모듈](https://github.com/aws-greengrass/aws-greengrass-logging-java) 리포지토리에서 찾을 수 있는 특정 JSON 형식을 사용하는 경우에만 적용됩니다.  
여기에 수준 순서대로 나열된 다음 로그 수준 중에서 선택합니다.  <a name="nucleus-log-levels"></a>
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
기본값: `INFO`  
`diskSpaceLimit`  <a name="log-manager-component-configuration-component-disk-space-limit"></a>
(선택 사항) `diskSpaceLimitUnit`에서 지정하는 단위로 이 구성 요소에 대한 모든 로그 파일의 최대 총 크기입니다. 이 구성 요소의 로그 파일의 총 크기가이 최대 총 크기를 초과하면 AWS IoT Greengrass 코어 소프트웨어는이 구성 요소의 가장 오래된 로그 파일을 삭제합니다.  
이 파라미터는 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)의 [로그 크기 제한](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-system-logs-limit) 파라미터(`totalLogsSizeKB`)와 관련이 있습니다. AWS IoT Greengrass 코어 소프트웨어는 두 값 중 최소값을 이 구성 요소의 최대 총 로그 크기로 사용합니다.  
`diskSpaceLimitUnit`  <a name="log-manager-component-configuration-disk-space-limit-unit"></a>
(선택 사항) `diskSpaceLimit`의 단위입니다. 다음 옵션 중 하나를 선택합니다.  
+ `KB` – 킬로바이트
+ `MB` – 메가바이트
+ `GB` – 기가바이트
기본값: `KB`  
`logFileDirectoryPath`  
이 구성 요소의 로그 파일이 포함된 폴더의 경로입니다.  
Greengrass 구성 요소의 로그를 업로드하려면 **`/greengrass/v2`/logs**를 지정하고 `/greengrass/v2`를 Greengrass 루트 폴더로 바꿉니다.  
`logFileRegex`  
구성 요소 또는 애플리케이션이 사용하는 로그 파일 이름 형식을 지정하는 정규식입니다. 로그 관리자 구성 요소는 이 정규식을 사용하여 `logFileDirectoryPath`의 폴더에서 로그 파일을 식별합니다.  
Greengrass 구성 요소의 로그를 업로드하려면 교체된 로그 파일 이름과 일치하는 정규식을 지정합니다. 예를 들어 Hello World 구성 요소의 로그를 업로드하려면 **com.example.HelloWorld\$1\$1w\$1.log**를 지정할 수 있습니다. `\\w*` 패턴은 영숫자와 밑줄을 포함하는 0개 이상의 단어 문자와 일치합니다. 이 정규식은 이름에 타임스탬프가 있거나 없는 로그 파일과 일치합니다. 이 예제에서는 로그 관리자가 다음 로그 파일을 업로드합니다.  
+ `com.example.HelloWorld.log` - Hello World 구성 요소의 최신 로그 파일입니다.
+ `com.example.HelloWorld_2020_12_15_17_0.log` – Hello World 구성 요소의 이전 로그 파일입니다. Greengrass nucleus는 로그 파일에 교체 타임스탬프를 추가합니다.  
`deleteLogFileAfterCloudUpload`  <a name="log-manager-component-configuration-delete-log-file-after-cloud-upload"></a>
(선택 사항) 로그 관리자 구성 요소가 로그를 CloudWatch Logs에 업로드한 후 로그 파일을 삭제할 수 있습니다.  
기본값: `false`  
`multiLineStartPattern`  <a name="log-manager-component-configuration-component-multi-line-start-pattern"></a>
(선택 사항) 새 줄의 로그 메시지가 새 로그 메시지인 경우를 식별하는 정규식입니다. 정규식이 새 줄과 일치하지 않는 경우 로그 관리자 구성 요소는 새 줄을 이전 줄의 로그 메시지에 추가합니다.  
기본적으로 로그 관리자 구성 요소는 줄이 탭 또는 공백과 같은 공백 문자로 시작하는지 확인합니다. 그렇지 않으면 로그 관리자는 해당 줄을 새 로그 메시지로 처리합니다. 공백 문자로 시작하는 경우 해당 줄이 현재 로그 메시지에 추가됩니다. 이 동작은 로그 관리자 구성 요소가 스택 추적과 같이 여러 줄에 걸쳐 있는 메시지를 분할하지 않도록 하기 위해서입니다.

`periodicUploadIntervalSec`  
(선택 사항) 로그 관리자 구성 요소가 업로드할 새 로그 파일을 확인하는 기간(초)입니다.  
기본값: `300`(5분)  
최소값: `0.000001`(1마이크로초)

**Example 예: 구성 병합 업데이트**  
다음 구성 예제에서는 시스템 로그와 `com.example.HelloWorld` 구성 요소 로그를 CloudWatch Logs에 업로드하도록 지정합니다.  

```
{
  "logsUploaderConfiguration": {
    "systemLogsConfiguration": {
      "uploadToCloudWatch": "true",
      "minimumLogLevel": "INFO",
      "diskSpaceLimit": "10",
      "diskSpaceLimitUnit": "MB",
      "deleteLogFileAfterCloudUpload": "false"
    },
    "componentLogsConfiguration": [
      {
        "componentName": "com.example.HelloWorld",
        "minimumLogLevel": "INFO",
        "logFileDirectoryPath": "/greengrass/v2/logs",
        "logFileRegex": "com.example.HelloWorld\\w*.log",
        "diskSpaceLimit": "20",
        "diskSpaceLimitUnit": "MB",
        "deleteLogFileAfterCloudUpload": "false"
      }
    ]
  },
  "periodicUploadIntervalSec": "300"
}
```

------

## 사용법
<a name="log-manager-component-usage"></a>

로그 관리자 구성 요소는 다음 로그 그룹 및 로그 스트림에 업로드합니다.

------
#### [ 2.1.0 and later ]<a name="log-manager-log-group-stream-format"></a>

**로그 그룹 이름**  

```
/aws/greengrass/componentType/region/componentName
```
로그 그룹 이름에는 다음 변수를 사용합니다.  
+ `componentType` - 구성 요소의 유형으로, 다음 중 하나일 수 있습니다.
  + `GreengrassSystemComponent` – 이 로그 그룹에는 Greengrass nucleus와 동일한 JVM에서 실행되는 nucleus 및 플러그인 구성 요소에 대한 로그가 포함됩니다. 이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md)의 일부입니다.
  + `UserComponent` - 이 로그 그룹에는 디바이스의 일반 구성 요소, Lambda 구성 요소 및 기타 애플리케이션에 대한 로그가 포함됩니다. 이 구성 요소는 Greengrass nucleus의 일부가 아닙니다.

  자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.
+ `region` - 코어 디바이스가 사용하는 AWS 리전입니다.
+ `componentName` - 구성 요소의 이름입니다. 시스템 로그의 경우 이 값은 `System`입니다.

**로그 스트림 이름**  

```
/date/thing/thingName
```
로그 스트림 이름에는 다음 변수를 사용합니다.  
+ `date` - 와 같은 로그 날짜입니다(예: `2020/12/15`). 로그 관리자 구성 요소에서는 `yyyy/MM/dd` 형식을 사용합니다.
+ `thingName` - 코어 디바이스 이름의 이름입니다.
사물 이름에 콜론(`:`)이 포함된 경우 로그 관리자에서는 콜론을 더하기(`+`)로 바꿉니다.

------
#### [ 2.0.x ]

**로그 그룹 이름**  

```
/aws/greengrass/componentType/region/componentName
```
로그 그룹 이름에는 다음 변수를 사용합니다.  
+ `componentType` - 구성 요소의 유형으로, 다음 중 하나일 수 있습니다.
  + `GreengrassSystemComponent` – 이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md)의 일부입니다.
  + `UserComponent` - 이 구성 요소는 Greengrass nucleus의 일부가 아닙니다. 로그 관리자는 디바이스의 Greengrass 구성 요소 및 기타 애플리케이션에 이 유형을 사용합니다.
+ `region` - 코어 디바이스가 사용하는 AWS 리전입니다.
+ `componentName` - 구성 요소의 이름입니다. 시스템 로그의 경우 이 값은 `System`입니다.

**로그 스트림 이름**  

```
/date/deploymentTargets/thingName
```
로그 스트림 이름에는 다음 변수를 사용합니다.  
+ `date` - 와 같은 로그 날짜입니다(예: `2020/12/15`). 로그 관리자 구성 요소에서는 `yyyy/MM/dd` 형식을 사용합니다.
+ `deploymentTargets` - 배포에 구성 요소를 포함하는 사물입니다. 로그 관리자 구성 요소는 각 대상을 슬래시로 구분합니다. 구성 요소가 로컬 배포의 결과로 코어 디바이스에서 실행되는 경우 이 값은 `LOCAL_DEPLOYMENT`입니다.

  `MyGreengrassCore`라는 코어 디바이스가 있고 코어 디바이스에 다음 두 가지 배포가 있는 예를 생각해 보세요.
  + 코어 디바이스 `MyGreengrassCore`를 대상으로 하는 배포
  + 코어 디바이스가 포함된 `MyGreengrassCoreGroup`이라는 사물 그룹을 대상으로 하는 배포

  이 코어 디바이스의 `deploymentTargets`는 `thing/MyGreengrassCore/thinggroup/MyGreengrassCoreGroup`입니다.
+ `thingName` - 코어 디바이스 이름의 이름입니다.

------

### 로그 항목의 형식
<a name="log-manager-entry-format"></a>

Greengrass nucleus는 로그 파일을 문자열 또는 JSON 형식으로 씁니다. 시스템 로그의 경우 `logging` 항목의 `format` 필드를 설정하여 형식을 제어합니다. `logging` 항목은 Greengrass nucleus 구성 요소의 구성 파일에서 찾을 수 있습니다. 자세한 내용은 [Greengrass nucleus 구성](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html#greengrass-nucleus-component-configuration)을 참조하세요.

텍스트 형식은 자유 형식이며 모든 문자열이 허용됩니다. 다음 플릿 상태 서비스 메시지는 문자열 형식 로깅의 예입니다.

```
2023-03-26T18:18:27.271Z [INFO] (pool-1-thread-2)
com.aws.greengrass.status.FleetStatusService: fss-status-update-published. 
Status update published to FSS. {trigger=CADENCE, serviceName=FleetStatusService, 
currentState=RUNNING}
```

[Greengrass CLI logs](https://docs.aws.amazon.com/greengrass/v2/developerguide/gg-cli-logs.html) 명령으로 로그를 보거나 프로그래밍 방식으로 로그를 조작하려면 JSON 형식을 사용해야 합니다. 다음 예제에서는 JSON 형태를 간략하게 보여줍니다.

```
{
   "loggerName": <string>,
   "level": <"DEBUG" | "INFO" | "ERROR" | "TRACE" | "WARN">,
   "eventType": <string, optional>,
   "cause": <string, optional>,
   "contexts": {},
   "thread": <string>,
   "message": <string>,
   "timestamp": <epoch time> # Needs to be epoch time
}
```

구성 요소 로그의 출력을 제어하려면 `minimumLogLevel` 구성 옵션을 사용할 수 있습니다. 이 옵션을 사용하려면 구성 요소가 로그 항목을 JSON 형식으로 써야 합니다. 시스템 로그 파일과 동일한 형식을 사용해야 합니다.

## 로컬 로그 파일
<a name="log-manager-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="log-manager-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.3.11  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.3.10  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.3.9  |  Greengrass nucleus 버전 2.14.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.3.8  |  Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.3.7  |  Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.3.6  |  <a name="changelog-log-manager-2.3.6"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.3.5  |  <a name="changelog-log-manager-2.3.5"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/log-manager-component.html) Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.3.4  |  <a name="changelog-log-manager-2.3.4"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.3.3  |  Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.3.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.3.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.3.0  |   로그 관리자 2.3.0으로 업그레이드할 때는 Greengrass nucleus 2.9.1로 업그레이드하는 것이 좋습니다.   [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.2.8  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.2.7  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.2.6  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.2.5  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.2.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.2.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.2.1  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.1.3  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.2  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.1  |  <a name="changelog-log-manager-2.1.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.1.0  |  <a name="changelog-log-manager-2.1.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/log-manager-component.html)  | 
|  2.0.x  |  초기 버전입니다.  | 

# 기계 학습 구성 요소
<a name="machine-learning-components"></a>

AWS IoT Greengrass 는 Amazon SageMaker AI로 훈련된 모델 또는 Amazon S3에 저장된 사전 훈련된 자체 모델을 사용하여 기계 [학습 추론을 수행하기 위해 지원되는 디바이스에 배포할 수 있는 다음과 같은 기계](perform-machine-learning-inference.md) 학습 구성 요소를 제공합니다.<a name="ml-component-types"></a>

AWS 는 다음과 같은 기계 학습 구성 요소 범주를 제공합니다.
+ **모델 구성 요소** - 기계 학습 모델을 Greengrass 아티팩트로 포함합니다.
+ **런타임 구성 요소** - Greengrass 코어 디바이스에서 기계 학습 프레임워크 및 그 종속성을 설치하는 스크립트를 포함합니다.
+ **추론 구성 요소** - 추론 코드를 포함하고 기계 학습 프레임워크를 설치하고 사전 훈련된 기계 학습 모델을 다운로드하기 위한 구성 요소 종속성을 포함합니다.

 AWS제공 기계 학습 구성 요소에서 샘플 추론 코드와 사전 훈련된 모델을 사용하여 DLR 및 TensorFlow Lite를 사용하여 이미지 분류 및 객체 감지를 수행할 수 있습니다. Amazon S3에 저장된 자체 모델을 사용하여 사용자 지정 기계 학습 추론을 수행하거나 다른 기계 학습 프레임워크를 사용하려면 이러한 퍼블릭 구성 요소의 레시피를 템플릿으로 사용하여 사용자 지정 기계 학습 구성 요소를 생성할 수 있습니다. 자세한 내용은 [기계 학습 구성 요소 사용자 지정](ml-customization.md) 단원을 참조하십시오.

AWS IoT Greengrass 에는 Greengrass 코어 디바이스에서 SageMaker AI Edge Manager 에이전트의 설치 및 수명 주기를 관리하는 AWS제공 구성 요소도 포함되어 있습니다. SageMaker AI Edge Manager를 사용하는 경우 코어 디바이스에서 Amazon SageMaker AI Neo 컴파일 모델을 직접 사용할 수 있습니다. 자세한 내용은 [Greengrass 코어 디바이스에서 Amazon SageMaker AI Edge Manager 사용](use-sagemaker-edge-manager.md) 단원을 참조하십시오.

다음 표에는에서 사용할 수 있는 기계 학습 구성 요소가 나열되어 있습니다 AWS IoT Greengrass.

**참고**  <a name="component-nucleus-dependency-update-note"></a>
여러 AWS제공 구성 요소는 Greengrass nucleus의 특정 마이너 버전에 따라 달라집니다. 이 종속성 때문에 Greengrass nucleus를 새로운 마이너 버전으로 업데이트할 때 이러한 구성 요소를 업데이트해야 합니다. 각 구성 요소가 달라지는 특정 nucleus 버전에 대한 내용은 해당 구성 요소 주제를 참조하세요. nucleus 업데이트에 대한 자세한 내용은 [AWS IoT Greengrass 코어 소프트웨어(OTA) 업데이트](update-greengrass-core-v2.md) 섹션을 참조하세요.

<a name="component-table-type-description"></a>구성 요소에 일반 및 Lambda 구성 요소 유형이 둘 다 있으면 구성 요소의 현재 버전은 일반 유형이고 구성 요소의 이전 버전은 Lambda 유형입니다.


| 구성 요소 | 설명 | [구성 요소 유형](develop-greengrass-components.md#component-types) | 지원되는 OS | [오픈 소스](open-source.md) | 
| --- | --- | --- | --- | --- | 
| [SageMaker AI Edge Manager](sagemaker-edge-manager-component.md) | Greengrass 코어 디바이스에 Amazon SageMaker AI Edge Manager 에이전트를 배포합니다. | 일반 | Linux, Windows | 아니요 | 
| [DLR 이미지 분류](dlr-image-classification-component.md) | DLR 이미지 분류 모델 저장소와 DLR 런타임 구성 요소를 종속성으로 사용하여 DLR을 설치하고, 샘플 이미지 분류 모델을 다운로드하고, 지원되는 디바이스에서 이미지 분류 추론을 수행하는 추론 구성 요소입니다. | 일반 | Linux, Windows | 아니요 | 
| [DLR 객체 감지](dlr-object-detection-component.md) | DLR 객체 감지 모델 저장소와 DLR 런타임 구성 요소를 종속성으로 사용하여 DLR을 설치하고, 샘플 객체 감지 모델을 다운로드하고, 지원되는 디바이스에서 객체 감지 추론을 수행하는 추론 구성 요소입니다. | 일반 | Linux, Windows | 아니요 | 
| [DLR 이미지 분류 모델 저장소](dlr-image-classification-model-store-component.md) | 샘플 ResNet-50 이미지 분류 모델을 Greengrass 아티팩트로 포함하는 모델 구성 요소입니다. | 일반 | Linux, Windows | 아니요 | 
| [DLR 객체 감지 모델 저장소](dlr-object-detection-model-store-component.md) | 샘플 YOLOv3 객체 감지 모델을 Greengrass 아티팩트로 포함하는 모델 구성 요소입니다. | 일반 | Linux, Windows | 아니요 | 
| [DLR 런타임](dlr-component.md) | Greengrass 코어 디바이스에 DLR 및 해당 종속성을 설치하는 데 사용되는 설치 스크립트를 포함하는 런타임 구성 요소입니다. | 일반 | Linux, Windows | 아니요 | 
| [TensorFlow Lite 이미지 분류](tensorflow-lite-image-classification-component.md) | TensorFlow Lite 이미지 분류 모델 저장소와 TensorFlow Lite 런타임 구성 요소를 종속성으로 사용하여 TensorFlow Lite를 설치하고, 샘플 이미지 분류 모델을 다운로드하고, 지원되는 디바이스에서 이미지 분류 추론을 수행하는 추론 구성 요소입니다. | 일반 | Linux, Windows | 아니요 | 
| [TensorFlow Lite 객체 감지](tensorflow-lite-object-detection-component.md) | TensorFlow Lite 객체 감지 모델 저장소와 TensorFlow Lite 런타임 구성 요소를 종속성으로 사용하여 TensorFlow Lite를 설치하고, 샘플 객체 감지 모델을 다운로드하고, 지원되는 디바이스에서 객체 감지 추론을 수행하는 추론 구성 요소입니다. | 일반 | Linux, Windows | 아니요 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | 샘플 MobileNet v1 모델을 Greengrass 아티팩트로 포함하는 모델 구성 요소입니다. | 일반 | Linux, Windows | 아니요 | 
| [TensorFlow Lite 객체 감지 모델 저장소](tensorflow-lite-object-detection-model-store-component.md) | 샘플 SSD(Single Shot Detection) MobileNet 모델을 Greengrass 아티팩트로 포함하는 모델 구성 요소입니다. | 일반 | Linux, Windows | 아니요 | 
| [TensorFlow Lite 런타임](tensorflow-lite-component.md) | Greengrass 코어 디바이스에 TensorFlow Lite 및 해당 종속성을 설치하는 데 사용되는 설치 스크립트를 포함하는 런타임 구성 요소입니다. | 일반 | Linux, Windows | 아니요 | 

# SageMaker AI Edge Manager
<a name="sagemaker-edge-manager-component"></a>

**중요**  
SageMaker AI Edge Manager는 2024년 4월 26일에 중단되었습니다. 엣지 디바이스에 모델을 계속 배포하는 방법에 대한 자세한 내용은 [SageMaker AI Edge Manager 수명 종료](https://docs.aws.amazon.com/sagemaker/latest/dg/edge-eol.html)를 참조하세요.

Amazon SageMaker AI Edge Manager 구성 요소(`aws.greengrass.SageMakerEdgeManager`)는 SageMaker AI Edge Manager 에이전트 바이너리를 설치합니다.

SageMaker AI Edge Manager는 엣지 디바이스에 대한 모델 관리 기능을 제공하므로 엣지 디바이스 플릿에서 기계 학습 모델을 최적화, 보호, 모니터링, 유지 관리할 수 있습니다. SageMaker AI Edge Manager 구성 요소는 코어 디바이스에 SageMaker AI Edge Manager 에이전트의 수명 주기를 설치하고 관리합니다. 또한 SageMaker AI Edge Manager를 사용하여 Greengrass 코어 디바이스에서 SageMaker AI Neo 컴파일 모델을 모델 구성 요소로 패키징하고 사용할 수 있습니다. 코어 디바이스에서 SageMaker AI Edge Manager 에이전트를 사용하는 방법에 대한 자세한 내용은 [Greengrass 코어 디바이스에서 Amazon SageMaker AI Edge Manager 사용](use-sagemaker-edge-manager.md) 섹션을 참조하세요.

SageMaker AI Edge Manager 구성 요소 v1.3.x는 Edge Manager 에이전트 바이너리 v1.20220822.836f3023을 설치합니다. Edge Manager 에이전트 바이너리 버전에 대한 자세한 내용은 [Edge Manager 에이전트](https://docs.aws.amazon.com/sagemaker/latest/dg/edge-device-fleet-about)를 참조하세요.

**참고**  
SageMaker AI Edge Manager 구성 요소는 AWS 리전다음에서만 사용할 수 있습니다.  
미국 동부(오하이오)
미국 동부(버지니아 북부)
미국 서부(오리건)
EU(프랑크푸르트)
EU(아일랜드)
아시아 태평양(도쿄)

**Topics**
+ [버전](#sagemaker-edge-manager-component-versions)
+ [유형](#sagemaker-edge-manager-component-type)
+ [운영 체제](#sagemaker-edge-manager-component-os-support)
+ [요구 사항](#sagemaker-edge-manager-component-requirements)
+ [종속성](#sagemaker-edge-manager-component-dependencies)
+ [구성](#sagemaker-edge-manager-component-configuration)
+ [로컬 로그 파일](#sagemaker-edge-manager-component-log-file)
+ [Changelog](#sagemaker-edge-manager-component-changelog)

## 버전
<a name="sagemaker-edge-manager-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 1.3.x
+ 1.2.x
+ 1.1.x
+ 1.0.x

## 유형
<a name="sagemaker-edge-manager-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="sagemaker-edge-manager-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="sagemaker-edge-manager-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.<a name="sm-edge-manager-component-reqs"></a>
+ <a name="sm-req-core-device"></a>Amazon Linux 2, Debian 기반 Linux 플랫폼(x86\$164 또는 Armv8) 또는 Windows(x86\$164)에서 실행되는 Greengrass 코어 디바이스. 없으면 [자습서: AWS IoT Greengrass V2 시작하기](getting-started.md) 섹션을 참조하세요.
+ <a name="sm-req-python"></a>[Python](https://www.python.org/downloads/) 3.6 이상(사용하는 Python 버전에 대한 `pip` 포함)이 코어 디바이스에 설치되어 있어야 합니다.
+ 다음과 같이 구성된 [Greengrass 디바이스 역할](device-service-role.md): 
  + <a name="sm-req-iam-trust-relationship"></a>다음 IAM 정책 예제와 같이 `credentials.iot.amazonaws.com` 및 `sagemaker.amazonaws.com`에서 역할을 수임하도록 허용하는 신뢰 관계.

    ```
    { 
      "Version": "2012-10-17",		 	 	 
      "Statement": [ 
        { 
          "Effect": "Allow", 
          "Principal": {
            "Service": "credentials.iot.amazonaws.com"
           }, 
          "Action": "sts:AssumeRole" 
        },
        { 
          "Effect": "Allow", 
          "Principal": {
            "Service": "sagemaker.amazonaws.com"
          }, 
          "Action": "sts:AssumeRole" 
        } 
      ] 
    }
    ```
  + <a name="sm-req-iam-sagemanakeredgedevicefleetpolicy"></a>[AmazonSageMakerEdgeDeviceFleetPolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AmazonSageMakerEdgeDeviceFleetPolicy) IAM 관리형 정책.
  + <a name="sm-req-iam-s3-putobject"></a>다음 IAM 정책 예제와 같은 `s3:PutObject` 작업.

    ```
    {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
        {
          "Action": [
            "s3:PutObject"
          ],
          "Resource": [
            "*"
          ],
          "Effect": "Allow"
        }
      ]
    }
    ```
+ <a name="sm-req-s3-bucket"></a>Greengrass 코어 디바이스 AWS 리전 와 동일한 AWS 계정 및에서 생성된 Amazon S3 버킷입니다. SageMaker AI Edge Manager에는 엣지 디바이스 플릿을 생성하고 디바이스에서 추론을 실행하지 않는 샘플 데이터를 저장하기 위한 S3 버킷이 필요합니다. S3 버킷 생성에 대한 자세한 내용은 [Amazon S3 시작하기](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html)를 참조하세요.
+ <a name="sm-req-edge-device-fleet"></a>Greengrass 코어 디바이스와 동일한 AWS IoT 역할 별칭을 사용하는 SageMaker AI 엣지 디바이스 플릿입니다. 자세한 내용은 [엣지 디바이스 플릿 생성](get-started-with-edge-manager-on-greengrass.md#create-edge-device-fleet-for-greengrass) 단원을 참조하십시오.
+ <a name="sm-req-edge-device"></a>SageMaker AI Edge 디바이스 플릿에 엣지 디바이스로 등록된 Greengrass 코어 디바이스. 엣지 디바이스 이름은 코어 디바이스의 AWS IoT 사물 이름과 일치해야 합니다. 자세한 내용은 [Greengrass 코어 디바이스 등록](get-started-with-edge-manager-on-greengrass.md#register-greengrass-core-device-in-sme) 단원을 참조하십시오.

### 엔드포인트 및 포트
<a name="sagemaker-edge-manager-component-endpoints"></a>

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에 다음 엔드포인트 및 포트에 대한 아웃바운드 요청도 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.


| 엔드포인트 | Port | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `edge.sagemaker.region.amazonaws.com`  | 443 | 예 |  디바이스 등록 상태를 확인하고 지표를 SageMaker AI로 전송합니다.  | 
|  `*.s3.amazonaws.com`  | 443 | 예 |  지정한 S3 버킷에 캡처 데이터를 업로드합니다. `*`를 데이터를 업로드하는 각 버킷의 이름으로 바꿀 수 있습니다.  | 

## 종속성
<a name="sagemaker-edge-manager-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#sagemaker-edge-manager-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 1.3.5 and 1.3.6 ]

다음 표에는 이 구성 요소의 버전 1.3.5 및 1.3.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=0.0.0 | 하드 | 

------
#### [ 1.3.4 ]

다음 표에는 이 구성 요소의 버전 1.3.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=0.0.0 | 하드 | 

------
#### [ 1.3.3 ]

다음 표에는 이 구성 요소의 버전 1.3.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=0.0.0 | 하드 | 

------
#### [ 1.3.2 ]

다음 표에는 이 구성 요소의 버전 1.3.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=0.0.0 | 하드 | 

------
#### [ 1.3.1 ]

다음 표에는 이 구성 요소의 버전 1.3.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=0.0.0 | 하드 | 

------
#### [ 1.1.1 - 1.3.0 ]

다음 표에는 이 구성 요소의 버전 1.1.1\$11.3.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=0.0.0 | 하드 | 

------
#### [ 1.1.0 ]

다음 표에는 이 구성 요소의 버전 1.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=0.0.0 | 하드 | 

------
#### [ 1.0.3 ]

다음 표에는 이 구성 요소의 버전 1.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=0.0.0 | 하드 | 

------
#### [ 1.0.1 and 1.0.2 ]

다음 표에는 이 구성 요소의 버전 1.0.1 및 1.0.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=0.0.0 | 하드 | 

------
#### [ 1.0.0 ]

다음 표에는 이 구성 요소의 버전 1.0.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=0.0.0 | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="sagemaker-edge-manager-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

**참고**  
이 섹션에서는 구성 요소에서 설정하는 구성 파라미터에 대해 설명합니다. 해당 SageMaker AI Edge Manager 구성에 대한 자세한 내용은 *Amazon SageMaker AI 개발자 안내서*의 [Edge Manager 에이전트](https://docs.aws.amazon.com/sagemaker/latest/dg/edge-device-fleet-about.html#edge-device-fleet-running-agent)를 참조하세요.

`DeviceFleetName`  
Greengrass 코어 디바이스를 포함한 SageMaker AI Edge Manager 디바이스 플릿의 이름입니다.  
이 구성 요소를 배포하는 경우 구성 업데이트에서 이 파라미터의 값을 지정해야 합니다.

`BucketName`  
캡처된 추론 데이터를 업로드하는 S3 버킷의 이름. 버킷 이름이 `sagemaker` 문자열을 포함해야 합니다.  
`CaptureDataDestination`을 `Cloud`로 설정하거나 `CaptureDataPeriodicUpload`를 `true`로 설정했다면 이 구성 요소를 배포하는 경우 구성 업데이트에서 이 파라미터의 값을 지정해야 합니다.  
캡처 데이터는 향후 분석을 위해 추론 입력, 추론 결과, 추가 추론 데이터를 S3 버킷 또는 로컬 디렉터리에 업로드하는 데 사용하는 SageMaker AI 기능입니다. SageMaker AI Edge Manager에서 캡처 데이터를 사용하는 방법에 대한 자세한 내용은 *Amazon SageMaker AI 개발자 안내서*의 [모델 관리](https://docs.aws.amazon.com/sagemaker/latest/dg/edge-manage-model.html#edge-manage-model-capturedata)를 참조하세요.

`CaptureDataBatchSize`  
(선택 사항) 에이전트가 처리하는 캡처 데이터 요청의 배치 크기. 이 값은 `CaptureDataBufferSize`에서 지정한 버퍼 크기보다 작아야 합니다. 버퍼 크기의 절반을 초과하지 않는 것이 좋습니다.  
에이전트는 버퍼에 있는 요청의 수가 `CaptureDataBatchSize` 수를 충족하거나 `CaptureDataPushPeriodSeconds` 간격이 경과하는 경우 둘 중 먼저 발생하는 요청 배치를 처리합니다.  
기본값: `10`

`CaptureDataBufferSize`  
(선택 사항) 버퍼에 저장된 캡처 데이터 요청의 최대 수.  
기본값: `30`

`CaptureDataDestination`  
(선택 사항) 캡처된 데이터를 저장하는 대상. 이 파라미터의 값은 다음과 같을 수 있습니다.  
+ `Cloud` - `BucketName`에서 지정한 S3 버킷에 캡처된 데이터를 업로드합니다.
+ `Disk` - 캡처된 데이터를 구성 요소의 작업 디렉터리에 씁니다.
또한 `Disk`를 지정하는 경우 `CaptureDataPeriodicUpload`를 `true`로 설정하여 캡처된 데이터를 S3 버킷에 주기적으로 업로드하도록 선택할 수도 있습니다.  
기본값: `Cloud`

`CaptureDataPeriodicUpload`  
(선택 사항) 캡처된 데이터를 주기적으로 업로드할지 여부를 지정하는 문자열 값. 지원되는 값은 `true` 및 `false`입니다.  
`CaptureDataDestination`을 `Disk`로 설정했고 에이전트가 캡처된 데이터를 S3 버킷에 주기적으로 업로드하도록 하려는 경우 이 파라미터를 `true`로 설정합니다.  
기본값: `false`

`CaptureDataPeriodicUploadPeriodSeconds`  
(선택 사항) SageMaker AI Edge Manager 에이전트가 캡처된 데이터를 S3 버킷에 업로드하는 간격(초). `CaptureDataPeriodicUpload`를 `true`로 설정한 경우 이 파라미터를 사용합니다.  
기본값: `8`

`CaptureDataPushPeriodSeconds`  
(선택 사항) SageMaker AI Edge Manager 에이전트가 버퍼에서 캡처 데이터 요청의 배치를 처리하는 간격(초).  
에이전트는 버퍼에 있는 요청의 수가 `CaptureDataBatchSize` 수를 충족하거나 `CaptureDataPushPeriodSeconds` 간격이 경과하는 경우 둘 중 먼저 발생하는 요청 배치를 처리합니다.  
기본값: `4`

`CaptureDataBase64EmbedLimit`  
(선택 사항) SageMaker AI Edge Manager 에이전트가 업로드하는 캡처된 데이터의 최대 크기(바이트).  
기본값: `3072`

`FolderPrefix`  
(선택 사항) 에이전트가 캡처된 데이터를 쓰는 폴더의 이름. `CaptureDataDestination`을 `Disk`로 설정하는 경우 에이전트는 `CaptureDataDiskPath`에서 지정한 디렉터리에 폴더를 생성합니다. `CaptureDataDestination`을 `Cloud`로 설정하거나 `CaptureDataPeriodicUpload`를 `true`로 설정한 경우 에이전트가 S3 버킷에 폴더를 생성합니다.  
기본값: `sme-capture`

`CaptureDataDiskPath`  
이 기능은 SageMaker AI Edge Manager 구성 요소의 v1.1.0 이상 버전에서 사용할 수 있습니다.  
(선택 사항) 에이전트가 캡처된 데이터 폴더를 생성하는 폴더의 경로. `CaptureDataDestination`을 `Disk`로 설정하는 경우 에이전트가 이 디렉터리에 캡처된 데이터 폴더를 생성합니다. 이 값을 지정하지 않으면 에이전트가 구성 요소의 작업 디렉터리에 캡처된 데이터 폴더를 생성합니다. `FolderPrefix` 파라미터를 사용하여 캡처된 데이터 폴더의 이름을 지정합니다.  
기본값: `/greengrass/v2/work/aws.greengrass.SageMakerEdgeManager/capture`

`LocalDataRootPath`  
이 기능은 SageMaker AI Edge Manager 구성 요소의 v1.2.0 이상 버전에서 사용할 수 있습니다.  
(선택 사항) 이 구성 요소가 코어 디바이스에 다음 데이터를 저장하는 경로:  
+ `DbEnable`을 `true`로 설정하는 경우 런타임 데이터에 대한 로컬 데이터베이스.
+ `DeploymentEnable`을 `true`로 설정하는 경우 이 구성 요소가 자동으로 다운로드하는 SageMaker AI Neo 컴파일 모델.
기본값: `/greengrass/v2/work/aws.greengrass.SageMakerEdgeManager`

`DbEnable`  
(선택 사항) 이 구성 요소를 활성화하면 구성 요소가 실패하거나 디바이스 전원이 꺼지는 경우를 대비하여 로컬 데이터베이스에 런타임 데이터를 저장하여 데이터를 보존할 수 있습니다.  
이 데이터베이스에는 코어 디바이스의 파일 시스템에 5MB의 스토리지가 필요합니다.  
기본값: `false`

`DeploymentEnable`  
이 기능은 SageMaker AI Edge Manager 구성 요소의 v1.2.0 이상 버전에서 사용할 수 있습니다.  
(선택 사항) 이 구성 요소를 활성화하여 Amazon S3에 업로드한 모델에서 SageMaker AI Neo 컴파일 모델을 자동으로 검색할 수 있습니다. Amazon S3에 새로운 모델을 업로드한 후 SageMaker AI Studio 또는 SageMaker AI API를 사용하여 이 코어 디바이스에 새로운 모델을 배포합니다. 이 기능을 활성화하면 AWS IoT Greengrass 배포를 생성할 필요 없이 코어 디바이스에 새로운 모델을 배포할 수 있습니다.  
이 기능을 사용하려면 `DbEnable`을 `true`로 설정해야 합니다. 이 기능은 로컬 데이터베이스를 사용하여 AWS 클라우드에서 검색하는 모델을 추적합니다.
기본값: `false`

`DeploymentPollInterval`  
이 기능은 SageMaker AI Edge Manager 구성 요소의 v1.2.0 이상 버전에서 사용할 수 있습니다.  
(선택 사항) 이 구성 요소가 다운로드할 새로운 모델을 확인하는 데 걸리는 시간(분). 이 옵션은 `DeploymentEnable`을 `true`로 설정하는 경우 적용됩니다.  
기본값: `1440`(1일)

`DLRBackendOptions`  
이 기능은 SageMaker AI Edge Manager 구성 요소의 v1.2.0 이상 버전에서 사용할 수 있습니다.  
(선택 사항) 이 구성 요소가 사용하는 DLR 런타임에서 설정할 DLR 런타임 플래그. 다음 플래그를 설정할 수 있습니다.  
+ `TVM_TENSORRT_CACHE_DIR` – TensorRT 모델 캐싱을 활성화합니다. 읽기/쓰기 권한이 있는 기존 폴더의 절대 경로를 지정합니다.
+ `TVM_TENSORRT_CACHE_DISK_SIZE_MB` – TensorRT 모델 캐시 폴더의 상한을 할당합니다. 디렉터리 크기가 이 제한을 초과하여 커지면 가장 적게 사용되는 캐시된 엔진이 삭제됩니다. 기본값은 512MB입니다.
예를 들어 이 파라미터를 다음 값으로 설정하여 TensorRT 모델 캐싱을 활성화하고 캐시 크기를 800MB로 제한할 수 있습니다.  

```
TVM_TENSORRT_CACHE_DIR=/data/secured_folder/trt/cache; TVM_TENSORRT_CACHE_DISK_SIZE_MB=800
```

`SagemakerEdgeLogVerbose`  
(선택 사항) 디버그 로깅을 활성화할지 여부를 지정하는 문자열 값. 지원되는 값은 `true` 및 `false`입니다.  
기본값: `false`

`UnixSocketName`  
(선택 사항) 코어 디바이스에서의 SageMaker AI Edge Manager 소켓 파일 설명자의 위치.  
기본값: `/tmp/aws.greengrass.SageMakerEdgeManager.sock`

**Example 예: 구성 병합 업데이트**  
다음 예제 구성은 코어 디바이스가 *MyEdgeDeviceFleet*의 일부이고 에이전트가 캡처 데이터를 디바이스와 S3 버킷 모두에 쓰도록 지정합니다. 이 구성은 디버그 로깅도 활성화합니다.  

```
{
    "DeviceFleetName": "MyEdgeDeviceFleet",
    "BucketName": "amzn-s3-demo-bucket",
    "CaptureDataDestination": "Disk",
    "CaptureDataPeriodicUpload": "true",
    "SagemakerEdgeLogVerbose": "true"    
}
```

## 로컬 로그 파일
<a name="sagemaker-edge-manager-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/aws.greengrass.SageMakerEdgeManager.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\aws.greengrass.SageMakerEdgeManager.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.SageMakerEdgeManager.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.SageMakerEdgeManager.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="sagemaker-edge-manager-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  1.3.6  |  Greengrass nucleus 2.12.5 릴리스용으로 업데이트된 버전입니다.  | 
|  1.3.5  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.3.4  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.3.3  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.3.2  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.3.1  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.3.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/sagemaker-edge-manager-component.html)  | 
|  1.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/sagemaker-edge-manager-component.html)  | 
|  1.1.1  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/sagemaker-edge-manager-component.html)  | 
|  1.0.3  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/sagemaker-edge-manager-component.html)  | 
|  1.0.1  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.0  |  초기 버전입니다.  | 

# DLR 이미지 분류
<a name="dlr-image-classification-component"></a>

DLR 이미지 분류 구성 요소(`aws.greengrass.DLRImageClassification`)에는 [딥 러닝 런타임](https://github.com/neo-ai/neo-ai-dlr)과 resnet-50 모델이 이미지 분류 추론 수행에 사용되는 샘플 추론 코드가 있습니다. 이 구성 요소에서는 DLR와 샘플 모델 다운로드에 변형 [DLR 이미지 분류 모델 저장소](dlr-image-classification-model-store-component.md) 및 [DLR 런타임](dlr-component.md) 구성 요소가 종속성으로 사용됩니다.

사용자 지정 훈련된 DLR 모델과 함께 이 추론 구성 요소를 사용하려면 종속 모델 저장소 구성 요소의 [사용자 지정 버전을 생성](ml-customization.md#override-public-model-store)합니다. 자체 사용자 지정 추론 코드를 사용하려면 이 구성 요소의 레시피를 템플릿으로 사용하여 [사용자 지정 추론 구성 요소를 생성](ml-customization.md#create-inference-component)할 수 있습니다.

**Topics**
+ [버전](#dlr-image-classification-component-versions)
+ [유형](#dlr-image-classification-component-type)
+ [운영 체제](#dlr-image-classification-component-os-support)
+ [요구 사항](#dlr-image-classification-component-requirements)
+ [종속성](#dlr-image-classification-component-dependencies)
+ [구성](#dlr-image-classification-component-configuration)
+ [로컬 로그 파일](#dlr-image-classification-component-log-file)
+ [Changelog](#dlr-image-classification-component-changelog)

## 버전
<a name="dlr-image-classification-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.1.x
+ 2.0.x

## 유형
<a name="dlr-image-classification-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="dlr-image-classification-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="dlr-image-classification-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.<a name="ml-component-requirements"></a>
+ Amazon Linux 2 또는 Ubuntu 18.04를 실행 중인 Greengrass 코어 디바이스의 경우 [GNU C 라이브러리](https://www.gnu.org/software/libc/)(glibc) 버전 2.27 이상이 디바이스에 설치되어 있어야 합니다.
+ Raspberry Pi와 같은 Armv7l 디바이스에는 디바이스에 OpenCV-Python에 대한 종속성이 설치되어 있어야 합니다. 다음 명령을 실행하여 종속성을 설치합니다.

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ Raspberry Pi OS Bullseye를 실행하는 Raspberry Pi 디바이스는 다음과 같은 요구 사항을 충족해야 합니다.
  + 디바이스에 NumPy 1.22.4 이상이 설치되어 있어야 합니다. Raspberry Pi OS Bullseye에는 이전 버전의 NumPy가 포함되어 있으므로 다음 명령을 실행하여 디바이스에서 NumPy를 업그레이드할 수 있습니다.

    ```
    pip3 install --upgrade numpy
    ```
  + 디바이스에서 레거시 카메라 스택이 활성화되어 있어야 합니다. Raspberry Pi OS Bullseye에는 기본적으로 활성화되어 있지만 호환되지 않는 새 카메라 스택이 포함되어 있으므로 레거시 카메라 스택을 활성화해야 합니다.<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**레거시 카메라 스택을 활성화하려면**

    1. 다음 명령을 실행하여 Raspberry Pi 구성 도구를 엽니다.

       ```
       sudo raspi-config
       ```

    1. **인터페이스 옵션**을 선택합니다.

    1. **레거시 카메라**를 선택하여 레거시 카메라 스택을 활성화합니다.

    1. Raspberry Pi를 재부팅합니다.

## 종속성
<a name="dlr-image-classification-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#dlr-image-classification-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.1.13 and 2.1.14 ]

다음 표에는 이 구성 요소의 버전 2.1.13 및 2.1.14에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 소프트 | 
| [DLR 이미지 분류 모델 저장소](dlr-image-classification-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.12 ]

다음 표에는 이 구성 요소의 버전 2.1.12에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 소프트 | 
| [DLR 이미지 분류 모델 저장소](dlr-image-classification-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.11 ]

다음 표에는 이 구성 요소의 버전 2.1.11에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 소프트 | 
| [DLR 이미지 분류 모델 저장소](dlr-image-classification-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.10 ]

다음 표에는 이 구성 요소의 버전 2.1.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 소프트 | 
| [DLR 이미지 분류 모델 저장소](dlr-image-classification-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.9 ]

다음 표에는 이 구성 요소의 버전 2.1.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 소프트 | 
| [DLR 이미지 분류 모델 저장소](dlr-image-classification-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.8 ]

다음 표에는 이 구성 요소의 버전 2.1.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 소프트 | 
| [DLR 이미지 분류 모델 저장소](dlr-image-classification-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.7 ]

다음 표에는 이 구성 요소의 버전 2.1.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 소프트 | 
| [DLR 이미지 분류 모델 저장소](dlr-image-classification-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.6 ]

다음 표에는 이 구성 요소의 버전 2.1.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 소프트 | 
| [DLR 이미지 분류 모델 저장소](dlr-image-classification-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.4 - 2.1.5 ]

다음 표에는 이 구성 요소의 버전 2.1.4\$12.1.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 소프트 | 
| [DLR 이미지 분류 모델 저장소](dlr-image-classification-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.3 ]

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 소프트 | 
| [DLR 이미지 분류 모델 저장소](dlr-image-classification-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 소프트 | 
| [DLR 이미지 분류 모델 저장소](dlr-image-classification-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 소프트 | 
| [DLR 이미지 분류 모델 저장소](dlr-image-classification-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.0.x ]

다음 표에는 이 구성 요소의 버전 2.0.x에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | 2.0.0 이하 | 소프트 | 
| DLR 이미지 분류 모델 저장소 | 2.0.0 이하 | 하드 | 
| DLR | 1.3.0 이하 | 소프트 | 

------

## 구성
<a name="dlr-image-classification-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

------
#### [ 2.1.x ]

`accessControl`  
<a name="ml-config-accesscontrol-desc"></a>(선택 사항) 구성 요소가 기본 알림 주제에 메시지를 게시할 수 있도록 허용하는 [권한 부여 정책](interprocess-communication.md#ipc-authorization-policies)이 있는 객체입니다.  
기본값:   

```
{
   "aws.greengrass.ipc.mqttproxy": {
      "aws.greengrass.DLRImageClassification:mqttproxy:1": {
         "policyDescription": "Allows access to publish via topic ml/dlr/image-classification.",
         "operations": [
            "aws.greengrass#PublishToIoTCore"
         ],
         "resources": [
            "ml/dlr/image-classification"
         ]
      }
   }
}
```

`PublishResultsOnTopic`  
<a name="ml-config-publishresultsontopic-desc"></a>(선택 사항) 추론 결과를 게시하려는 주제입니다. 이 값을 수정하는 경우에는 사용자 지정 주제 이름과 일치하도록 `accessControl` 파라미터의 `resources` 값도 수정해야 합니다.  
기본값: `ml/dlr/image-classification`

`Accelerator`  <a name="ml-config-accelerator"></a>
사용하려는 액셀러레이터입니다. 지원되는 값은 `cpu` 및 `gpu`입니다.  
종속 모델 구성 요소의 샘플 모델은 CPU 액셀러레이션만 지원합니다. 다른 사용자 지정 모델에서 GPU 액셀러레이션을 사용하려면 [사용자 지정 모델 구성 요소를 생성](ml-customization.md#override-public-model-store)하여 퍼블릭 모델 구성 요소를 재정의합니다.  
기본값: `cpu`

`ImageDirectory`  
<a name="ml-config-imagedirectory-desc"></a>(선택 사항) 추론 구성 요소가 이미지를 읽는 디바이스의 폴더 경로입니다. 이 값은 읽기/쓰기 액세스 권한이 있는 디바이스의 모든 위치로 수정할 수 있습니다.  
<a name="ml-config-imagedirectory-img-default"></a>기본값: `/greengrass/v2/packages/artifacts-unarchived/component-name/image_classification/sample_images/`  
`UseCamera` 값을 `true`로 설정하는 경우 이 구성 파라미터는 무시됩니다.

`ImageName`  
<a name="ml-config-imagename-desc"></a>(선택 사항) 추론 구성 요소가 예측하기 위한 입력으로 사용하는 이미지의 이름입니다. 구성 요소는 `ImageDirectory`에 지정된 폴더에서 이미지를 찾습니다. 기본적으로 구성 요소는 기본 이미지 디렉터리의 샘플 이미지를 사용합니다.는 `jpeg`, `jpg`, 및 이미지 형식을 AWS IoT Greengrass 지원합니다`png``npy`.  
<a name="ml-config-imagename-img-default"></a>기본값: `cat.jpeg`  
`UseCamera` 값을 `true`로 설정하는 경우 이 구성 파라미터는 무시됩니다.

`InferenceInterval`  <a name="ml-config-inferenceinterval"></a>
(선택 사항) 추론 코드가 예측한 각 예측 사이의 시간(초)입니다. 샘플 추론 코드는 무기한으로 실행되며 지정된 시간 간격으로 예측을 반복합니다. 예를 들어 카메라로 촬영한 이미지를 실시간 예측에 사용하려는 경우 이 간격을 더 짧게 변경할 수 있습니다.  
기본값: `3600`

`ModelResourceKey`  <a name="ml-config-modelresourcekey"></a>
<a name="ml-config-modelresourcekey-desc"></a>(선택 사항) 종속 퍼블릭 모델 구성 요소에 사용되는 모델입니다. 사용자 지정 구성 요소로 퍼블릭 모델 구성 요소를 재정의하는 경우에만 이 파라미터를 수정합니다.  
기본값:  

```
{
    "armv7l": "DLR-resnet50-armv7l-cpu-ImageClassification",
    "aarch64": "DLR-resnet50-aarch64-cpu-ImageClassification",
    "x86_64": "DLR-resnet50-x86_64-cpu-ImageClassification",
    "windows": "DLR-resnet50-win-cpu-ImageClassification"
}
```

`UseCamera`  <a name="ml-config-usecamera"></a>
(선택 사항) Greengrass 코어 디바이스에 연결된 카메라의 이미지를 사용할지 여부를 정의하는 문자열 값입니다. 지원되는 값은 `true` 및 `false`입니다.  
이 값을 `true`로 설정하면 샘플 추론 코드가 디바이스의 카메라에 액세스하여 캡처된 이미지에서 로컬로 추론을 실행합니다. `ImageName` 및 `ImageDirectory` 파라미터의 값은 무시됩니다. 이 구성 요소를 실행하는 사용자에게 카메라가 촬영한 이미지를 저장하는 위치에 대한 읽기/쓰기 액세스 권한이 있는지 확인합니다.  
기본값: `false`  
이 구성 요소의 레시피를 보면 기본 구성에는 `UseCamera` 구성 파라미터가 표시되지 않습니다. 그러나 구성 요소를 배포하는 경우 [구성 병합 업데이트](update-component-configurations.md)에서 이 파라미터의 값을 수정할 수 있습니다.  
`UseCamera`를 `true`로 설정하면 추론 구성 요소가 런타임 구성 요소에 의해 생성된 가상 환경에서 카메라에 액세스할 수 있도록 심볼릭 링크도 생성해야 합니다. 샘플 추론 구성 요소와 함께 카메라를 사용하는 방법에 대한 자세한 내용은 [구성 요소 구성 업데이트](ml-tutorial-image-classification-camera.md) 섹션을 참조하세요.

------
#### [ 2.0.x ]

`MLRootPath`  <a name="ml-config-mlrootpath"></a>
<a name="ml-config-mlrootpath-desc"></a>(선택 사항) 추론 구성 요소가 이미지를 읽고 추론 결과를 쓰는 Linux 코어 디바이스의 폴더 경로입니다. 이 값은 해당 구성 요소를 실행하는 사용자에게 읽기/쓰기 권한이 있는 디바이스의 모든 위치로 수정할 수 있습니다.  
<a name="ml-config-mlrootpath-default-dlr"></a>기본값: `/greengrass/v2/work/variant.DLR/greengrass_ml`  
<a name="ml-config-mlrootpath-default-tfl"></a>기본값: `/greengrass/v2/work/variant.TensorFlowLite/greengrass_ml`

`Accelerator`  <a name="ml-config-accelerator"></a>
사용하려는 액셀러레이터입니다. 지원되는 값은 `cpu` 및 `gpu`입니다.  
종속 모델 구성 요소의 샘플 모델은 CPU 액셀러레이션만 지원합니다. 다른 사용자 지정 모델에서 GPU 액셀러레이션을 사용하려면 [사용자 지정 모델 구성 요소를 생성](ml-customization.md#override-public-model-store)하여 퍼블릭 모델 구성 요소를 재정의합니다.  
기본값: `cpu`

`ImageName`  
<a name="ml-config-imagename-desc-dlr-1.3.0"></a>(선택 사항) 추론 구성 요소가 예측하기 위한 입력으로 사용하는 이미지의 이름입니다. 구성 요소는 `ImageDirectory`에 지정된 폴더에서 이미지를 찾습니다. 기본 위치는 입니다`MLRootPath/images`.는 `jpeg`, `jpg`, 및 이미지 형식을 AWS IoT Greengrass 지원합니다`png``npy`.  
<a name="ml-config-imagename-img-default"></a>기본값: `cat.jpeg`

`InferenceInterval`  <a name="ml-config-inferenceinterval"></a>
(선택 사항) 추론 코드가 예측한 각 예측 사이의 시간(초)입니다. 샘플 추론 코드는 무기한으로 실행되며 지정된 시간 간격으로 예측을 반복합니다. 예를 들어 카메라로 촬영한 이미지를 실시간 예측에 사용하려는 경우 이 간격을 더 짧게 변경할 수 있습니다.  
기본값: `3600`

`ModelResourceKey`  <a name="ml-config-modelresourcekey"></a>
<a name="ml-config-modelresourcekey-desc"></a>(선택 사항) 종속 퍼블릭 모델 구성 요소에 사용되는 모델입니다. 사용자 지정 구성 요소로 퍼블릭 모델 구성 요소를 재정의하는 경우에만 이 파라미터를 수정합니다.  
기본값:  

```
armv7l: "DLR-resnet50-armv7l-cpu-ImageClassification"
x86_64: "DLR-resnet50-x86_64-cpu-ImageClassification"
```

------

## 로컬 로그 파일
<a name="dlr-image-classification-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/aws.greengrass.DLRImageClassification.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\aws.greengrass.DLRImageClassification.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.DLRImageClassification.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.DLRImageClassification.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="dlr-image-classification-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.1.14  | Greengrass nucleus 2.12.5 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.13  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.12  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.11  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.10  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.9  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.8  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.7  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.6  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.5  |  구성 요소가 모두 릴리스되었습니다 AWS 리전.  | 
|  2.1.4  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다. 유럽(런던)(`eu-west-2`)에서는 이 버전을 사용할 수 없습니다.  | 
|  2.1.3  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.2  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.1  |  <a name="changelog-dlr-image-classification-2.1.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/dlr-image-classification-component.html)  | 
|  2.0.4  |  초기 버전입니다.  | 

# DLR 객체 감지
<a name="dlr-object-detection-component"></a>

DLR 객체 감지 구성 요소(`aws.greengrass.DLRObjectDetection`)에는 [딥 러닝 런타임](https://github.com/neo-ai/neo-ai-dlr) 및 샘플 사전 훈련된 모델을 사용하여 객체 감지 추론을 수행하는 샘플 추론 코드가 있습니다. 이 구성 요소에서는 DLR와 샘플 모델 다운로드에 변형 [DLR 객체 감지 모델 저장소](dlr-object-detection-model-store-component.md) 및 [DLR 런타임](dlr-component.md) 구성 요소가 종속성으로 사용됩니다.

사용자 지정 훈련된 DLR 모델과 함께 이 추론 구성 요소를 사용하려면 종속 모델 저장소 구성 요소의 [사용자 지정 버전을 생성](ml-customization.md#override-public-model-store)합니다. 자체 사용자 지정 추론 코드를 사용하려면 이 구성 요소의 레시피를 템플릿으로 사용하여 [사용자 지정 추론 구성 요소를 생성](ml-customization.md#create-inference-component)할 수 있습니다.

**Topics**
+ [버전](#dlr-object-detection-component-versions)
+ [유형](#dlr-object-detection-component-type)
+ [운영 체제](#dlr-object-detection-component-os-support)
+ [요구 사항](#dlr-object-detection-component-requirements)
+ [종속성](#dlr-object-detection-component-dependencies)
+ [구성](#dlr-object-detection-component-configuration)
+ [로컬 로그 파일](#dlr-object-detection-component-log-file)
+ [Changelog](#dlr-object-detection-component-changelog)

## 버전
<a name="dlr-object-detection-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.1.x
+ 2.0.x

## 유형
<a name="dlr-object-detection-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="dlr-object-detection-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="dlr-object-detection-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.<a name="ml-component-requirements"></a>
+ Amazon Linux 2 또는 Ubuntu 18.04를 실행 중인 Greengrass 코어 디바이스의 경우 [GNU C 라이브러리](https://www.gnu.org/software/libc/)(glibc) 버전 2.27 이상이 디바이스에 설치되어 있어야 합니다.
+ Raspberry Pi와 같은 Armv7l 디바이스에는 디바이스에 OpenCV-Python에 대한 종속성이 설치되어 있어야 합니다. 다음 명령을 실행하여 종속성을 설치합니다.

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ Raspberry Pi OS Bullseye를 실행하는 Raspberry Pi 디바이스는 다음과 같은 요구 사항을 충족해야 합니다.
  + 디바이스에 NumPy 1.22.4 이상이 설치되어 있어야 합니다. Raspberry Pi OS Bullseye에는 이전 버전의 NumPy가 포함되어 있으므로 다음 명령을 실행하여 디바이스에서 NumPy를 업그레이드할 수 있습니다.

    ```
    pip3 install --upgrade numpy
    ```
  + 디바이스에서 레거시 카메라 스택이 활성화되어 있어야 합니다. Raspberry Pi OS Bullseye에는 기본적으로 활성화되어 있지만 호환되지 않는 새 카메라 스택이 포함되어 있으므로 레거시 카메라 스택을 활성화해야 합니다.<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**레거시 카메라 스택을 활성화하려면**

    1. 다음 명령을 실행하여 Raspberry Pi 구성 도구를 엽니다.

       ```
       sudo raspi-config
       ```

    1. **인터페이스 옵션**을 선택합니다.

    1. **레거시 카메라**를 선택하여 레거시 카메라 스택을 활성화합니다.

    1. Raspberry Pi를 재부팅합니다.

## 종속성
<a name="dlr-object-detection-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#dlr-object-detection-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.1.13 and 2.1.14 ]

다음 표에는 이 구성 요소의 버전 2.1.13 및 2.1.14에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 소프트 | 
| [DLR 객체 감지 모델 저장소](dlr-object-detection-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.12 ]

다음 표에는 이 구성 요소의 버전 2.1.12에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 소프트 | 
| [DLR 객체 감지 모델 저장소](dlr-object-detection-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.11 ]

다음 표에는 이 구성 요소의 버전 2.1.11에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 소프트 | 
| [DLR 객체 감지 모델 저장소](dlr-object-detection-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.10 ]

다음 표에는 이 구성 요소의 버전 2.1.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 소프트 | 
| [DLR 객체 감지 모델 저장소](dlr-object-detection-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.9 ]

다음 표에는 이 구성 요소의 버전 2.1.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 소프트 | 
| [DLR 객체 감지 모델 저장소](dlr-object-detection-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.8 ]

다음 표에는 이 구성 요소의 버전 2.1.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 소프트 | 
| [DLR 객체 감지 모델 저장소](dlr-object-detection-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.7 ]

다음 표에는 이 구성 요소의 버전 2.1.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 소프트 | 
| [DLR 객체 감지 모델 저장소](dlr-object-detection-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.6 ]

다음 표에는 이 구성 요소의 버전 2.1.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 소프트 | 
| [DLR 객체 감지 모델 저장소](dlr-object-detection-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.4 - 2.1.5 ]

다음 표에는 이 구성 요소의 버전 2.1.4\$12.1.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 소프트 | 
| [DLR 객체 감지 모델 저장소](dlr-object-detection-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.3 ]

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 소프트 | 
| [DLR 객체 감지 모델 저장소](dlr-object-detection-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 소프트 | 
| [DLR 객체 감지 모델 저장소](dlr-object-detection-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 소프트 | 
| [DLR 객체 감지 모델 저장소](dlr-object-detection-model-store-component.md) | 2.1.0 이하 | 하드 | 
| [DLR](dlr-component.md) | 1.6.0 이하 | 하드 | 

------
#### [ 2.0.x ]

다음 표에는 이 구성 요소의 버전 2.0.x에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | 2.0.0 이하 | 소프트 | 
| DLR 객체 감지 모델 저장소 | 2.0.0 이하 | 하드 | 
| DLR | 1.3.0 이하 | 소프트 | 

------

## 구성
<a name="dlr-object-detection-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

------
#### [ 2.1.x ]

`accessControl`  
<a name="ml-config-accesscontrol-desc"></a>(선택 사항) 구성 요소가 기본 알림 주제에 메시지를 게시할 수 있도록 허용하는 [권한 부여 정책](interprocess-communication.md#ipc-authorization-policies)이 있는 객체입니다.  
기본값:   

```
{
   "aws.greengrass.ipc.mqttproxy": {
      "aws.greengrass.DLRObjectDetection:mqttproxy:1": {
         "policyDescription": "Allows access to publish via topic ml/dlr/object-detection.",
         "operations": [
            "aws.greengrass#PublishToIoTCore"
         ],
         "resources": [
            "ml/dlr/object-detection"
         ]
      }
   }
}
```

`PublishResultsOnTopic`  
<a name="ml-config-publishresultsontopic-desc"></a>(선택 사항) 추론 결과를 게시하려는 주제입니다. 이 값을 수정하는 경우에는 사용자 지정 주제 이름과 일치하도록 `accessControl` 파라미터의 `resources` 값도 수정해야 합니다.  
기본값: `ml/dlr/object-detection`

`Accelerator`  <a name="ml-config-accelerator"></a>
사용하려는 액셀러레이터입니다. 지원되는 값은 `cpu` 및 `gpu`입니다.  
종속 모델 구성 요소의 샘플 모델은 CPU 액셀러레이션만 지원합니다. 다른 사용자 지정 모델에서 GPU 액셀러레이션을 사용하려면 [사용자 지정 모델 구성 요소를 생성](ml-customization.md#override-public-model-store)하여 퍼블릭 모델 구성 요소를 재정의합니다.  
기본값: `cpu`

`ImageDirectory`  
<a name="ml-config-imagedirectory-desc"></a>(선택 사항) 추론 구성 요소가 이미지를 읽는 디바이스의 폴더 경로입니다. 이 값은 읽기/쓰기 액세스 권한이 있는 디바이스의 모든 위치로 수정할 수 있습니다.  
<a name="ml-config-imagedirectory-obj-default"></a>기본값: `/greengrass/v2/packages/artifacts-unarchived/component-name/object_detection/sample_images/`  
`UseCamera` 값을 `true`로 설정하는 경우 이 구성 파라미터는 무시됩니다.

`ImageName`  
<a name="ml-config-imagename-desc"></a>(선택 사항) 추론 구성 요소가 예측하기 위한 입력으로 사용하는 이미지의 이름입니다. 구성 요소는 `ImageDirectory`에 지정된 폴더에서 이미지를 찾습니다. 기본적으로 구성 요소는 기본 이미지 디렉터리의 샘플 이미지를 사용합니다.는 `jpeg`, `jpg`, 및 이미지 형식을 AWS IoT Greengrass 지원합니다`png``npy`.  
<a name="ml-config-imagename-obj-default"></a>기본값: `objects.jpg`  
`UseCamera` 값을 `true`로 설정하는 경우 이 구성 파라미터는 무시됩니다.

`InferenceInterval`  <a name="ml-config-inferenceinterval"></a>
(선택 사항) 추론 코드가 예측한 각 예측 사이의 시간(초)입니다. 샘플 추론 코드는 무기한으로 실행되며 지정된 시간 간격으로 예측을 반복합니다. 예를 들어 카메라로 촬영한 이미지를 실시간 예측에 사용하려는 경우 이 간격을 더 짧게 변경할 수 있습니다.  
기본값: `3600`

`ModelResourceKey`  <a name="ml-config-modelresourcekey"></a>
<a name="ml-config-modelresourcekey-desc"></a>(선택 사항) 종속 퍼블릭 모델 구성 요소에 사용되는 모델입니다. 사용자 지정 구성 요소로 퍼블릭 모델 구성 요소를 재정의하는 경우에만 이 파라미터를 수정합니다.  
기본값:  

```
{
    "armv7l": "DLR-yolo3-armv7l-cpu-ObjectDetection",
    "aarch64": "DLR-yolo3-aarch64-gpu-ObjectDetection",
    "x86_64": "DLR-yolo3-x86_64-cpu-ObjectDetection",
    "windows": "DLR-resnet50-win-cpu-ObjectDetection"
}
```

`UseCamera`  <a name="ml-config-usecamera"></a>
(선택 사항) Greengrass 코어 디바이스에 연결된 카메라의 이미지를 사용할지 여부를 정의하는 문자열 값입니다. 지원되는 값은 `true` 및 `false`입니다.  
이 값을 `true`로 설정하면 샘플 추론 코드가 디바이스의 카메라에 액세스하여 캡처된 이미지에서 로컬로 추론을 실행합니다. `ImageName` 및 `ImageDirectory` 파라미터의 값은 무시됩니다. 이 구성 요소를 실행하는 사용자에게 카메라가 촬영한 이미지를 저장하는 위치에 대한 읽기/쓰기 액세스 권한이 있는지 확인합니다.  
기본값: `false`  
이 구성 요소의 레시피를 보면 기본 구성에는 `UseCamera` 구성 파라미터가 표시되지 않습니다. 그러나 구성 요소를 배포하는 경우 [구성 병합 업데이트](update-component-configurations.md)에서 이 파라미터의 값을 수정할 수 있습니다.  
`UseCamera`를 `true`로 설정하면 추론 구성 요소가 런타임 구성 요소에 의해 생성된 가상 환경에서 카메라에 액세스할 수 있도록 심볼릭 링크도 생성해야 합니다. 샘플 추론 구성 요소와 함께 카메라를 사용하는 방법에 대한 자세한 내용은 [구성 요소 구성 업데이트](ml-tutorial-image-classification-camera.md) 섹션을 참조하세요.

------
#### [ 2.0.x ]

`MLRootPath`  <a name="ml-config-mlrootpath"></a>
<a name="ml-config-mlrootpath-desc"></a>(선택 사항) 추론 구성 요소가 이미지를 읽고 추론 결과를 쓰는 Linux 코어 디바이스의 폴더 경로입니다. 이 값은 해당 구성 요소를 실행하는 사용자에게 읽기/쓰기 권한이 있는 디바이스의 모든 위치로 수정할 수 있습니다.  
<a name="ml-config-mlrootpath-default-dlr"></a>기본값: `/greengrass/v2/work/variant.DLR/greengrass_ml`  
<a name="ml-config-mlrootpath-default-tfl"></a>기본값: `/greengrass/v2/work/variant.TensorFlowLite/greengrass_ml`

`Accelerator`  
수정하지 마세요. 종속 모델 구성 요소의 모델이 CPU 액셀러레이터에 대해서만 컴파일되기 때문에 현재 액셀러레이터에 대해 지원되는 유일한 값은 `cpu`입니다.

`ImageName`  
<a name="ml-config-imagename-desc-dlr-1.3.0"></a>(선택 사항) 추론 구성 요소가 예측하기 위한 입력으로 사용하는 이미지의 이름입니다. 구성 요소는 `ImageDirectory`에 지정된 폴더에서 이미지를 찾습니다. 기본 위치는 입니다`MLRootPath/images`.는 `jpeg`, `jpg`, 및 이미지 형식을 AWS IoT Greengrass 지원합니다`png``npy`.  
<a name="ml-config-imagename-obj-default"></a>기본값: `objects.jpg`

`InferenceInterval`  <a name="ml-config-inferenceinterval"></a>
(선택 사항) 추론 코드가 예측한 각 예측 사이의 시간(초)입니다. 샘플 추론 코드는 무기한으로 실행되며 지정된 시간 간격으로 예측을 반복합니다. 예를 들어 카메라로 촬영한 이미지를 실시간 예측에 사용하려는 경우 이 간격을 더 짧게 변경할 수 있습니다.  
기본값: `3600`

`ModelResourceKey`  <a name="ml-config-modelresourcekey"></a>
<a name="ml-config-modelresourcekey-desc"></a>(선택 사항) 종속 퍼블릭 모델 구성 요소에 사용되는 모델입니다. 사용자 지정 구성 요소로 퍼블릭 모델 구성 요소를 재정의하는 경우에만 이 파라미터를 수정합니다.  
기본값:  

```
{
    armv7l: "DLR-yolo3-armv7l-cpu-ObjectDetection",
    x86_64: "DLR-yolo3-x86_64-cpu-ObjectDetection"
}
```

------

## 로컬 로그 파일
<a name="dlr-object-detection-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/aws.greengrass.DLRObjectDetection.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\aws.greengrass.DLRObjectDetection.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.DLRObjectDetection.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.DLRObjectDetection.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="dlr-object-detection-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.1.14  | Greengrass nucleus 2.12.5 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.13  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.12  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.11  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.10  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.9  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.8  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.7  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.6  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.5  |  구성 요소가 모두 릴리스되었습니다 AWS 리전.  | 
|  2.1.4  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다. 유럽(런던)(`eu-west-2`)에서는 이 버전을 사용할 수 없습니다.  | 
|  2.1.3  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.2  |  <a name="changelog-dlr-object-detection-2.1.2"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/dlr-object-detection-component.html)  | 
|  2.1.1  |  <a name="changelog-dlr-object-detection-2.1.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/dlr-object-detection-component.html)  | 
|  2.0.4  |  초기 버전입니다.  | 

# DLR 이미지 분류 모델 저장소
<a name="dlr-image-classification-model-store-component"></a>

DLR 이미지 분류 모델 저장소는 Greengrass 아티팩트로 사전 훈련된 ResNet-50 모델이 있는 기계 학습 모델 구성 요소입니다. 이 구성 요소에 사용되는 사전 훈련된 모델은 [GluonCV Model Zoo](https://cv.gluon.ai/model_zoo/index.html)에서 가져오며, SageMaker AI Neo [딥 러닝 런타임](https://github.com/neo-ai/neo-ai-dlr)을 사용하여 컴파일합니다.

[DLR 이미지 분류](dlr-image-classification-component.md) 추론 구성 요소는 이 구성 요소를 모델 소스의 종속성으로 사용합니다. 사용자 지정 훈련된 DLR 모델을 사용하려면 이 모델 구성 요소의 [사용자 지정 버전을 생성](ml-customization.md#override-public-model-store)하고 사용자 지정 모델을 구성 요소 아티팩트로 포함합니다. 이 구성 요소의 레시피를 템플릿으로 사용하여 사용자 지정 모델 구성 요소를 생성할 수 있습니다.

**참고**  
DLR 이미지 분류 모델 저장소 구성 요소의 이름은 버전에 따라 다릅니다. 버전 2.1.x 이상의 구성 요소 이름은 `variant.DLR.ImageClassification.ModelStore`입니다. 버전 2.0.x의 구성 요소 이름은 `variant.ImageClassification.ModelStore`입니다.

**Topics**
+ [버전](#dlr-image-classification-model-store-component-versions)
+ [유형](#dlr-image-classification-model-store-component-type)
+ [운영 체제](#dlr-image-classification-model-store-component-os-support)
+ [요구 사항](#dlr-image-classification-model-store-component-requirements)
+ [종속성](#dlr-image-classification-model-store-component-dependencies)
+ [구성](#dlr-image-classification-model-store-component-configuration)
+ [로컬 로그 파일](#dlr-image-classification-model-store-component-log-file)
+ [Changelog](#dlr-image-classification-model-store-component-changelog)

## 버전
<a name="dlr-image-classification-model-store-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.1.x(`variant.DLR.ImageClassification.ModelStore`) 
+ 2.0.x(`variant.ImageClassification.ModelStore`) 

## 유형
<a name="dlr-image-classification-model-store-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="dlr-image-classification-model-store-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="dlr-image-classification-model-store-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.<a name="ml-component-requirements"></a>
+ Amazon Linux 2 또는 Ubuntu 18.04를 실행 중인 Greengrass 코어 디바이스의 경우 [GNU C 라이브러리](https://www.gnu.org/software/libc/)(glibc) 버전 2.27 이상이 디바이스에 설치되어 있어야 합니다.
+ Raspberry Pi와 같은 Armv7l 디바이스에는 디바이스에 OpenCV-Python에 대한 종속성이 설치되어 있어야 합니다. 다음 명령을 실행하여 종속성을 설치합니다.

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ Raspberry Pi OS Bullseye를 실행하는 Raspberry Pi 디바이스는 다음과 같은 요구 사항을 충족해야 합니다.
  + 디바이스에 NumPy 1.22.4 이상이 설치되어 있어야 합니다. Raspberry Pi OS Bullseye에는 이전 버전의 NumPy가 포함되어 있으므로 다음 명령을 실행하여 디바이스에서 NumPy를 업그레이드할 수 있습니다.

    ```
    pip3 install --upgrade numpy
    ```
  + 디바이스에서 레거시 카메라 스택이 활성화되어 있어야 합니다. Raspberry Pi OS Bullseye에는 기본적으로 활성화되어 있지만 호환되지 않는 새 카메라 스택이 포함되어 있으므로 레거시 카메라 스택을 활성화해야 합니다.<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**레거시 카메라 스택을 활성화하려면**

    1. 다음 명령을 실행하여 Raspberry Pi 구성 도구를 엽니다.

       ```
       sudo raspi-config
       ```

    1. **인터페이스 옵션**을 선택합니다.

    1. **레거시 카메라**를 선택하여 레거시 카메라 스택을 활성화합니다.

    1. Raspberry Pi를 재부팅합니다.

## 종속성
<a name="dlr-image-classification-model-store-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#dlr-image-classification-model-store-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.1.12 - 2.1.14 ]

다음 표에는 이 구성 요소의 버전 2.1.12 및 2.1.13에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 소프트 | 

------
#### [ 2.1.11 ]

다음 표에는 이 구성 요소의 버전 2.1.11에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 소프트 | 

------
#### [ 2.1.10 ]

다음 표에는 이 구성 요소의 버전 2.1.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 소프트 | 

------
#### [ 2.1.9 ]

다음 표에는 이 구성 요소의 버전 2.1.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 소프트 | 

------
#### [ 2.1.8 ]

다음 표에는 이 구성 요소의 버전 2.1.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 소프트 | 

------
#### [ 2.1.7 ]

다음 표에는 이 구성 요소의 버전 2.1.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 소프트 | 

------
#### [ 2.1.6 ]

다음 표에는 이 구성 요소의 버전 2.1.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 소프트 | 

------
#### [ 2.1.5 ]

다음 표에는 이 구성 요소의 버전 2.1.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 소프트 | 

------
#### [ 2.1.4 ]

다음 표에는 이 구성 요소의 버전 2.1.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 소프트 | 

------
#### [ 2.1.3 ]

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 소프트 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 소프트 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 소프트 | 

------
#### [ 2.0.x ]

다음 표에는 이 구성 요소의 버전 2.0.x에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | 2.0.0 이하 | 소프트 | 

------

## 구성
<a name="dlr-image-classification-model-store-component-configuration"></a>

이 구성 요소에는 구성 파라미터가 없습니다.

## 로컬 로그 파일
<a name="dlr-image-classification-model-store-component-log-file"></a>

이 구성 요소는 로그를 출력하지 않습니다.

## Changelog
<a name="dlr-image-classification-model-store-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.1.13  | Greengrass nucleus 2.12.5 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.12  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.11  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.10  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.9  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.8  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.7  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.6  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/dlr-image-classification-model-store-component.html)  | 
|  2.1.4  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.3  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.2  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.1  |  <a name="changelog-dlr-image-classification-model-store-2.1.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/dlr-image-classification-model-store-component.html)  | 
|  2.0.4  |  초기 버전입니다.  | 

# DLR 객체 감지 모델 저장소
<a name="dlr-object-detection-model-store-component"></a>

DLR 객체 감지 모델 저장소는 Greengrass 아티팩트로 사전 훈련된 YOLOv3 모델이 있는 기계 학습 모델 구성 요소입니다. 이 구성 요소에 사용되는 샘플 모델은 [GluonCV Model Zoo](https://cv.gluon.ai/model_zoo/index.html)에서 가져오며, SageMaker AI Neo [딥 러닝 런타임](https://github.com/neo-ai/neo-ai-dlr)을 사용하여 컴파일합니다.

[DLR 객체 감지](dlr-object-detection-component.md) 추론 구성 요소는 이 구성 요소를 모델 소스의 종속성으로 사용합니다. 사용자 지정 훈련된 DLR 모델을 사용하려면 이 모델 구성 요소의 [사용자 지정 버전을 생성](ml-customization.md#override-public-model-store)하고 사용자 지정 모델을 구성 요소 아티팩트로 포함합니다. 이 구성 요소의 레시피를 템플릿으로 사용하여 사용자 지정 모델 구성 요소를 생성할 수 있습니다.

**참고**  
DLR 객체 감지 모델 저장소 구성 요소의 이름은 버전에 따라 다릅니다. 버전 2.1.x 이상의 구성 요소 이름은 `variant.DLR.ObjectDetection.ModelStore`입니다. 버전 2.0.x의 구성 요소 이름은 `variant.ObjectDetection.ModelStore`입니다.

**Topics**
+ [버전](#dlr-object-detection-model-store-component-versions)
+ [유형](#dlr-object-detection-model-store-component-type)
+ [운영 체제](#dlr-object-detection-model-store-component-os-support)
+ [요구 사항](#dlr-object-detection-model-store-component-requirements)
+ [종속성](#dlr-object-detection-model-store-component-dependencies)
+ [구성](#dlr-object-detection-model-store-component-configuration)
+ [로컬 로그 파일](#dlr-object-detection-model-store-component-log-file)
+ [Changelog](#dlr-object-detection-model-store-component-changelog)

## 버전
<a name="dlr-object-detection-model-store-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.1.x 
+ 2.0.x

## 유형
<a name="dlr-object-detection-model-store-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="dlr-object-detection-model-store-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="dlr-object-detection-model-store-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.<a name="ml-component-requirements"></a>
+ Amazon Linux 2 또는 Ubuntu 18.04를 실행 중인 Greengrass 코어 디바이스의 경우 [GNU C 라이브러리](https://www.gnu.org/software/libc/)(glibc) 버전 2.27 이상이 디바이스에 설치되어 있어야 합니다.
+ Raspberry Pi와 같은 Armv7l 디바이스에는 디바이스에 OpenCV-Python에 대한 종속성이 설치되어 있어야 합니다. 다음 명령을 실행하여 종속성을 설치합니다.

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ Raspberry Pi OS Bullseye를 실행하는 Raspberry Pi 디바이스는 다음과 같은 요구 사항을 충족해야 합니다.
  + 디바이스에 NumPy 1.22.4 이상이 설치되어 있어야 합니다. Raspberry Pi OS Bullseye에는 이전 버전의 NumPy가 포함되어 있으므로 다음 명령을 실행하여 디바이스에서 NumPy를 업그레이드할 수 있습니다.

    ```
    pip3 install --upgrade numpy
    ```
  + 디바이스에서 레거시 카메라 스택이 활성화되어 있어야 합니다. Raspberry Pi OS Bullseye에는 기본적으로 활성화되어 있지만 호환되지 않는 새 카메라 스택이 포함되어 있으므로 레거시 카메라 스택을 활성화해야 합니다.<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**레거시 카메라 스택을 활성화하려면**

    1. 다음 명령을 실행하여 Raspberry Pi 구성 도구를 엽니다.

       ```
       sudo raspi-config
       ```

    1. **인터페이스 옵션**을 선택합니다.

    1. **레거시 카메라**를 선택하여 레거시 카메라 스택을 활성화합니다.

    1. Raspberry Pi를 재부팅합니다.

## 종속성
<a name="dlr-object-detection-model-store-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#dlr-object-detection-model-store-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.1.13 and 2.1.14 ]

다음 표에는 이 구성 요소의 버전 2.1.13 및 2.1.14에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 소프트 | 

------
#### [ 2.1.12 ]

다음 표에는 이 구성 요소의 버전 2.1.12에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 소프트 | 

------
#### [ 2.1.11 ]

다음 표에는 이 구성 요소의 버전 2.1.11에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 소프트 | 

------
#### [ 2.1.10 ]

다음 표에는 이 구성 요소의 버전 2.1.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 소프트 | 

------
#### [ 2.1.9 ]

다음 표에는 이 구성 요소의 버전 2.1.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 소프트 | 

------
#### [ 2.1.8 ]

다음 표에는 이 구성 요소의 버전 2.1.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 소프트 | 

------
#### [ 2.1.7 ]

다음 표에는 이 구성 요소의 버전 2.1.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 소프트 | 

------
#### [ 2.1.5 and 2.1.6 ]

다음 표에는 이 구성 요소의 버전 2.1.5 및 2.1.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 소프트 | 

------
#### [ 2.1.4 ]

다음 표에는 이 구성 요소의 버전 2.1.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 소프트 | 

------
#### [ 2.1.3 ]

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 소프트 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 소프트 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 소프트 | 

------
#### [ 2.0.x ]

다음 표에는 이 구성 요소의 버전 2.0.x에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | 2.0.0 이하 | 소프트 | 

------

## 구성
<a name="dlr-object-detection-model-store-component-configuration"></a>

이 구성 요소에는 구성 파라미터가 없습니다.

## 로컬 로그 파일
<a name="dlr-object-detection-model-store-component-log-file"></a>

이 구성 요소는 로그를 출력하지 않습니다.

## Changelog
<a name="dlr-object-detection-model-store-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.1.14  |  Greengrass nucleus 2.12.5 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.13  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.12  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.11  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.10  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.9  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.8  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.7  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.6  |  Armv8(AArch64) 디바이스의 문제가 해결되는 CPU 모델이 추가됩니다.  | 
|  2.1.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/dlr-object-detection-model-store-component.html)  | 
|  2.1.4  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.3  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.2  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.1  |  <a name="changelog-dlr-object-detection-model-store-2.1.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/dlr-object-detection-model-store-component.html) | 
|  2.0.4  |  초기 버전입니다.  | 

# DLR 런타임
<a name="dlr-component"></a>

DLR 런타임 구성 요소(`variant.DLR`)에는 디바이스의 가상 환경에서 [딥 러닝 런타임](https://github.com/neo-ai/neo-ai-dlr)(DLR)과 해당 종속성을 설치하는 스크립트가 있습니다. [DLR 이미지 분류](dlr-image-classification-component.md) 및 [DLR 객체 감지](dlr-object-detection-component.md) 구성 요소에서는 이 구성 요소를 DLR 설치용 종속성으로 사용합니다. 구성 요소 버전 1.6.x에서는 DLR v1.6.0을 설치하고, 구성 요소 버전 1.3.x에서는 DLR v1.3.0을 설치합니다.

상이한 런타임을 사용하려면 이 구성 요소의 레시피를 템플릿으로 사용하여 [사용자 지정 기계 학습 구성 요소](ml-customization.md)를 생성할 수 있습니다.

**Topics**
+ [버전](#dlr-component-versions)
+ [유형](#dlr-component-type)
+ [운영 체제](#dlr-component-os-support)
+ [요구 사항](#dlr-component-requirements)
+ [종속성](#dlr-component-dependencies)
+ [구성](#dlr-component-configuration)
+ [사용법](#dlr-component-usage)
+ [로컬 로그 파일](#dlr-component-log-file)
+ [Changelog](#dlr-component-changelog)

## 버전
<a name="dlr-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 1.6.x
+ 1.3.x

## 유형
<a name="dlr-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="dlr-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="dlr-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.<a name="ml-component-requirements"></a>
+ Amazon Linux 2 또는 Ubuntu 18.04를 실행 중인 Greengrass 코어 디바이스의 경우 [GNU C 라이브러리](https://www.gnu.org/software/libc/)(glibc) 버전 2.27 이상이 디바이스에 설치되어 있어야 합니다.
+ Raspberry Pi와 같은 Armv7l 디바이스에는 디바이스에 OpenCV-Python에 대한 종속성이 설치되어 있어야 합니다. 다음 명령을 실행하여 종속성을 설치합니다.

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ Raspberry Pi OS Bullseye를 실행하는 Raspberry Pi 디바이스는 다음과 같은 요구 사항을 충족해야 합니다.
  + 디바이스에 NumPy 1.22.4 이상이 설치되어 있어야 합니다. Raspberry Pi OS Bullseye에는 이전 버전의 NumPy가 포함되어 있으므로 다음 명령을 실행하여 디바이스에서 NumPy를 업그레이드할 수 있습니다.

    ```
    pip3 install --upgrade numpy
    ```
  + 디바이스에서 레거시 카메라 스택이 활성화되어 있어야 합니다. Raspberry Pi OS Bullseye에는 기본적으로 활성화되어 있지만 호환되지 않는 새 카메라 스택이 포함되어 있으므로 레거시 카메라 스택을 활성화해야 합니다.<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**레거시 카메라 스택을 활성화하려면**

    1. 다음 명령을 실행하여 Raspberry Pi 구성 도구를 엽니다.

       ```
       sudo raspi-config
       ```

    1. **인터페이스 옵션**을 선택합니다.

    1. **레거시 카메라**를 선택하여 레거시 카메라 스택을 활성화합니다.

    1. Raspberry Pi를 재부팅합니다.

### 엔드포인트 및 포트
<a name="dlr-component-endpoints"></a>

기본적으로 이 구성 요소에 코어 디바이스에서 사용하는 플랫폼에 따라 `apt`, `yum`, `brew`, `pip` 명령을 사용하여 패키지를 설치하는 설치 관리자 스크립트를 사용합니다. 이 구성 요소는 설치 관리자 스크립트를 실행하기 위해 다양한 패키지 인덱스 및 리포지토리에 대한 아웃바운드 요청을 수행할 수 있어야 합니다. 프록시 또는 방화벽을 통해 이 구성 요소의 아웃바운드 트래픽을 허용하려면 코어 디바이스가 설치를 위해 연결되는 패키지 인덱스 및 리포지토리의 엔드포인트를 식별해야 합니다.

이 구성 요소의 설치 스크립트에 필요한 엔드포인트를 식별하는 경우 다음 사항을 고려하세요.
+ 엔드포인트는 코어 디바이스의 플랫폼에 따라 다릅니다. 예를 들어 Ubuntu를 실행하는 코어 디바이스는 `yum` 또는 `brew` 대신 `apt`를 사용합니다. 또한 동일한 패키지 인덱스를 사용하는 디바이스의 소스 목록은 다를 수 있으므로 서로 다른 리포지토리에서 패키지를 검색할 수 있습니다.
+ 각 디바이스에는 패키지를 검색할 위치를 정의하는 자체 소스 목록이 있으므로 동일한 패키지 인덱스를 사용하는 여러 디바이스 간에 엔드포인트가 다를 수 있습니다.
+ 엔드포인트는 시간이 지남에 따라 변경될 수 있습니다. 각 패키지 인덱스는 패키지를 다운로드하는 리포지토리의 URL을 제공하며 패키지 소유자는 패키지 인덱스가 제공하는 URL을 변경할 수 있습니다.

이 구성 요소에서 설치하는 종속성에 대한 자세한 내용과 설치 프로그램 스크립트를 비활성화하는 방법은 [UseInstaller](#dlr-component-config-useinstaller-term) 구성 파라미터를 참조하세요.

기본 작업에 필요한 엔드포인트와 포트에 대한 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 섹션을 참조하세요.

## 종속성
<a name="dlr-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#dlr-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 1.6.11 - 1.6.16 ]

다음 표에는 이 구성 요소의 버전 1.6.11\$11.6.16에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0 | 소프트 | 

------
#### [ 1.6.10 ]

다음 표에는 이 구성 요소의 버전 1.6.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 소프트 | 

------
#### [ 1.6.9 ]

다음 표에는 이 구성 요소의 버전 1.6.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 소프트 | 

------
#### [ 1.6.8 ]

다음 표에는 이 구성 요소의 버전 1.6.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 소프트 | 

------
#### [ 1.6.6 and 1.6.7 ]

다음 표에는 이 구성 요소의 버전 1.6.6 및 1.6.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 소프트 | 

------
#### [ 1.6.4 and 1.6.5 ]

다음 표에는 이 구성 요소의 버전 1.6.4 및 1.6.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 소프트 | 

------
#### [ 1.6.3 ]

다음 표에는 이 구성 요소의 버전 1.6.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 소프트 | 

------
#### [ 1.6.2 ]

다음 표에는 이 구성 요소의 버전 1.6.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 소프트 | 

------
#### [ 1.6.1 ]

다음 표에는 이 구성 요소의 버전 1.6.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 소프트 | 

------
#### [ 1.3.x ]

다음 표에는 이 구성 요소의 버전 1.3.x에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | 2.0.0 이하 | 소프트 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="dlr-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

`MLRootPath`  
<a name="ml-config-mlrootpath-desc"></a>(선택 사항) 추론 구성 요소가 이미지를 읽고 추론 결과를 쓰는 Linux 코어 디바이스의 폴더 경로입니다. 이 값은 해당 구성 요소를 실행하는 사용자에게 읽기/쓰기 권한이 있는 디바이스의 모든 위치로 수정할 수 있습니다.  
<a name="ml-config-mlrootpath-default-dlr"></a>기본값: `/greengrass/v2/work/variant.DLR/greengrass_ml`

`WindowsMLRootPath`  
이 기능은 이 구성 요소의 v1.6.6 이상에 사용할 수 있습니다.  
<a name="ml-config-windowsmlrootpath-desc"></a>(선택 사항) 추론 구성 요소가 이미지를 읽고 추론 결과를 쓰는 Windows 코어 디바이스의 폴더 경로입니다. 이 값은 해당 구성 요소를 실행하는 사용자에게 읽기/쓰기 권한이 있는 디바이스의 모든 위치로 수정할 수 있습니다.  
<a name="ml-config-windowsmlrootpath-default-dlr"></a>기본값: `C:\greengrass\v2\\work\\variant.DLR\\greengrass_ml`

  `UseInstaller`   
<a name="ml-config-useinstaller-desc-dlr"></a>(선택 사항) 이 구성 요소의 설치 프로그램 스크립트를 사용하여 DLR와 해당 종속성을 설치할지 여부를 정의하는 문자열 값입니다. 지원되는 값은 `true` 및 `false`입니다.  <a name="ml-config-useinstaller-libraries-dlr"></a>

DLR 설치에 사용자 지정 스크립트를 사용하려는 경우 또는 사전 구축된 Linux 이미지에 런타임 종속성을 포함하려는 경우 이 값을 `false`로 설정합니다. 이 구성 요소를 AWS제공 DLR 추론 구성 요소와 함께 사용하려면 종속성을 포함하여 다음 라이브러리를 설치하고 ML 구성 요소를 `ggc_user`실행하는와 같은 시스템 사용자가 사용할 수 있도록 합니다.
+ [Python](https://www.python.org/downloads/) 3.7 이상(사용하는 Python 버전에 대한 `pip` 포함)
+ [딥 러닝 런타임](https://github.com/neo-ai/neo-ai-dlr) v1.6.0
+ [NumPy](https://numpy.org/install/).
+ [OpenCV-Python](https://pypi.org/project/opencv-python/).
+ [AWS IoT Device SDK Python용 v2](https://github.com/aws/aws-iot-device-sdk-python-v2).
+ [AWS 공통 런타임(CRT) Python](https://github.com/awslabs/aws-crt-python).
+ [Picamera](https://picamera.readthedocs.io/en/release-1.13/)(Raspberry Pi 디바이스 전용).
+ [`awscam` 모듈](https://docs.aws.amazon.com/deeplens/latest/dg/deeplens-library-awscam-module.html)( AWS DeepLens 디바이스용).
+ libGL(Linux 디바이스용)
<a name="ml-config-useinstaller-default"></a>기본값: `true`

## 사용법
<a name="dlr-component-usage"></a>

`true`로 설정된 `UseInstaller` 구성 파라미터와 함께 이 구성 요소를 사용하여 DLR와 해당 종속성을 디바이스에 설치합니다. 구성 요소에서는 DLR에 필요한 OpenCV 및 NumPy 라이브러리가 포함되어 있는 가상 환경을 디바이스에 설정합니다.

**참고**  <a name="ml-installer-component-usage-note"></a>
이 구성 요소의 설치 프로그램 스크립트에서도 디바이스에 가상 환경을 구성하고 설치된 기계 학습 프레임워크를 사용하는 데 필요한 추가 시스템 라이브러리의 최신 버전을 설치합니다. 그러면 디바이스의 기존 시스템 라이브러리가 업그레이드될 수 있습니다. 지원되는 각 운영 체제별로 이 구성 요소가 설치하는 라이브러리의 목록은 다음 표를 참조하세요. 이 설치 프로세스를 사용자 지정하려면 `UseInstaller` 구성 파라미터를 `false`로 설정하고 자체 설치 관리자 스크립트를 개발합니다.


| 플랫폼 | 디바이스 시스템에 설치된 라이브러리 | 가상 환경에 설치된 라이브러리 | 
| --- | --- | --- | 
| Armv7l | build-essential, cmake, ca-certificates, git | setuptools, wheel | 
| Amazon Linux 2 | mesa-libGL | 없음 | 
| Ubuntu | wget | 없음 | 

추론 구성 요소를 배포할 때 이 런타임 구성 요소에서는 DLR와 해당 종속성이 디바이스에 이미 설치되어 있는지 먼저 확인한 다음에 없으면 자동으로 설치합니다.

## 로컬 로그 파일
<a name="dlr-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/variant.DLR.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\variant.DLR.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/variant.DLR.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\variant.DLR.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="dlr-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  1.6.16  |  Greengrass nucleus 버전 2.12.5용으로 업데이트된 버전입니다.  | 
|  1.6.12  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/dlr-component.html)  | 
|  1.6.11  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.6.10  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.6.9  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.6.8  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.6.7  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/dlr-component.html)  | 
|  1.6.6  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/dlr-component.html)  | 
|  1.6.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/dlr-component.html)  | 
|  1.6.4  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.6.3  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.6.2  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.6.1  |  <a name="changelog-dlr-1.6.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/dlr-component.html)  | 
|  1.3.2  |  초기 버전입니다. DLR v1.3.0을 설치합니다.  | 

# TensorFlow Lite 이미지 분류
<a name="tensorflow-lite-image-classification-component"></a>

TensorFlow Lite 이미지 분류 구성 요소(`aws.greengrass.TensorFlowLiteImageClassification`)에는 [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) 런타임과 사전 훈련된 MobileNet 1.0 양자화 모델 샘플을 사용하여 이미지 분류 추론을 수행하는 샘플 추론 코드가 포함되어 있습니다. 이 구성 요소는 [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) 변형과 [TensorFlow Lite 런타임](tensorflow-lite-component.md) 구성 요소를 종속성으로 사용하여 TensorFlow Lite 런타임과 샘플 모델을 다운로드합니다.

사용자 지정 훈련된 TensorFlow Lite 모델과 함께 이 추론 구성 요소를 사용하려면 종속 모델 저장소 구성 요소의 [사용자 지정 버전을 생성](ml-customization.md#override-public-model-store)합니다. 자체 사용자 지정 추론 코드를 사용하려면 이 구성 요소의 레시피를 템플릿으로 사용하여 [사용자 지정 추론 구성 요소를 생성](ml-customization.md#create-inference-component)할 수 있습니다.

**Topics**
+ [버전](#tensorflow-lite-image-classification-component-versions)
+ [유형](#tensorflow-lite-image-classification-component-type)
+ [운영 체제](#tensorflow-lite-image-classification-component-os-support)
+ [요구 사항](#tensorflow-lite-image-classification-component-requirements)
+ [종속성](#tensorflow-lite-image-classification-component-dependencies)
+ [구성](#tensorflow-lite-image-classification-component-configuration)
+ [로컬 로그 파일](#tensorflow-lite-image-classification-component-log-file)
+ [Changelog](#tensorflow-lite-image-classification-component-changelog)

## 버전
<a name="tensorflow-lite-image-classification-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.1.x

## 유형
<a name="tensorflow-lite-image-classification-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="tensorflow-lite-image-classification-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="tensorflow-lite-image-classification-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.<a name="ml-component-requirements"></a>
+ Amazon Linux 2 또는 Ubuntu 18.04를 실행 중인 Greengrass 코어 디바이스의 경우 [GNU C 라이브러리](https://www.gnu.org/software/libc/)(glibc) 버전 2.27 이상이 디바이스에 설치되어 있어야 합니다.
+ Raspberry Pi와 같은 Armv7l 디바이스에는 디바이스에 OpenCV-Python에 대한 종속성이 설치되어 있어야 합니다. 다음 명령을 실행하여 종속성을 설치합니다.

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ Raspberry Pi OS Bullseye를 실행하는 Raspberry Pi 디바이스는 다음과 같은 요구 사항을 충족해야 합니다.
  + 디바이스에 NumPy 1.22.4 이상이 설치되어 있어야 합니다. Raspberry Pi OS Bullseye에는 이전 버전의 NumPy가 포함되어 있으므로 다음 명령을 실행하여 디바이스에서 NumPy를 업그레이드할 수 있습니다.

    ```
    pip3 install --upgrade numpy
    ```
  + 디바이스에서 레거시 카메라 스택이 활성화되어 있어야 합니다. Raspberry Pi OS Bullseye에는 기본적으로 활성화되어 있지만 호환되지 않는 새 카메라 스택이 포함되어 있으므로 레거시 카메라 스택을 활성화해야 합니다.<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**레거시 카메라 스택을 활성화하려면**

    1. 다음 명령을 실행하여 Raspberry Pi 구성 도구를 엽니다.

       ```
       sudo raspi-config
       ```

    1. **인터페이스 옵션**을 선택합니다.

    1. **레거시 카메라**를 선택하여 레거시 카메라 스택을 활성화합니다.

    1. Raspberry Pi를 재부팅합니다.

## 종속성
<a name="tensorflow-lite-image-classification-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#tensorflow-lite-image-classification-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.1.11 and 2.1.12 ]

다음 표에는 이 구성 요소의 버전 2.1.11 및 2.1.12에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.10 ]

다음 표에는 이 구성 요소의 버전 2.1.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.9 ]

다음 표에는 이 구성 요소의 버전 2.1.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.8 ]

다음 표에는 이 구성 요소의 버전 2.1.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.7 ]

다음 표에는 이 구성 요소의 버전 2.1.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.6 ]

다음 표에는 이 구성 요소의 버전 2.1.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.5 ]

다음 표에는 이 구성 요소의 버전 2.1.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.4 ]

다음 표에는 이 구성 요소의 버전 2.1.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.3 ]

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------

## 구성
<a name="tensorflow-lite-image-classification-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

`accessControl`  
<a name="ml-config-accesscontrol-desc"></a>(선택 사항) 구성 요소가 기본 알림 주제에 메시지를 게시할 수 있도록 허용하는 [권한 부여 정책](interprocess-communication.md#ipc-authorization-policies)이 있는 객체입니다.  
기본값:   

```
{
   "aws.greengrass.ipc.mqttproxy": {
      "aws.greengrass.TensorFlowLiteImageClassification:mqttproxy:1": {
         "policyDescription": "Allows access to publish via topic ml/tflite/image-classification.",
         "operations": [
            "aws.greengrass#PublishToIoTCore"
         ],
         "resources": [
            "ml/tflite/image-classification"
         ]
      }
   }
}
```

`PublishResultsOnTopic`  
<a name="ml-config-publishresultsontopic-desc"></a>(선택 사항) 추론 결과를 게시하려는 주제입니다. 이 값을 수정하는 경우에는 사용자 지정 주제 이름과 일치하도록 `accessControl` 파라미터의 `resources` 값도 수정해야 합니다.  
기본값: `ml/tflite/image-classification`

`Accelerator`  <a name="ml-config-accelerator"></a>
사용하려는 액셀러레이터입니다. 지원되는 값은 `cpu` 및 `gpu`입니다.  
종속 모델 구성 요소의 샘플 모델은 CPU 액셀러레이션만 지원합니다. 다른 사용자 지정 모델에서 GPU 액셀러레이션을 사용하려면 [사용자 지정 모델 구성 요소를 생성](ml-customization.md#override-public-model-store)하여 퍼블릭 모델 구성 요소를 재정의합니다.  
기본값: `cpu`

`ImageDirectory`  
<a name="ml-config-imagedirectory-desc"></a>(선택 사항) 추론 구성 요소가 이미지를 읽는 디바이스의 폴더 경로입니다. 이 값은 읽기/쓰기 액세스 권한이 있는 디바이스의 모든 위치로 수정할 수 있습니다.  
<a name="ml-config-imagedirectory-img-default"></a>기본값: `/greengrass/v2/packages/artifacts-unarchived/component-name/image_classification/sample_images/`  
`UseCamera` 값을 `true`로 설정하는 경우 이 구성 파라미터는 무시됩니다.

`ImageName`  
<a name="ml-config-imagename-desc"></a>(선택 사항) 추론 구성 요소가 예측하기 위한 입력으로 사용하는 이미지의 이름입니다. 구성 요소는 `ImageDirectory`에 지정된 폴더에서 이미지를 찾습니다. 기본적으로 구성 요소는 기본 이미지 디렉터리의 샘플 이미지를 사용합니다.는 `jpeg`, `jpg`, 및 이미지 형식을 AWS IoT Greengrass 지원합니다`png``npy`.  
<a name="ml-config-imagename-img-default"></a>기본값: `cat.jpeg`  
`UseCamera` 값을 `true`로 설정하는 경우 이 구성 파라미터는 무시됩니다.

`InferenceInterval`  <a name="ml-config-inferenceinterval"></a>
(선택 사항) 추론 코드가 예측한 각 예측 사이의 시간(초)입니다. 샘플 추론 코드는 무기한으로 실행되며 지정된 시간 간격으로 예측을 반복합니다. 예를 들어 카메라로 촬영한 이미지를 실시간 예측에 사용하려는 경우 이 간격을 더 짧게 변경할 수 있습니다.  
기본값: `3600`

`ModelResourceKey`  <a name="ml-config-modelresourcekey"></a>
<a name="ml-config-modelresourcekey-desc"></a>(선택 사항) 종속 퍼블릭 모델 구성 요소에 사용되는 모델입니다. 사용자 지정 구성 요소로 퍼블릭 모델 구성 요소를 재정의하는 경우에만 이 파라미터를 수정합니다.  
기본값:  

```
{
    "model": "TensorFlowLite-Mobilenet"
}
```

`UseCamera`  <a name="ml-config-usecamera"></a>
(선택 사항) Greengrass 코어 디바이스에 연결된 카메라의 이미지를 사용할지 여부를 정의하는 문자열 값입니다. 지원되는 값은 `true` 및 `false`입니다.  
이 값을 `true`로 설정하면 샘플 추론 코드가 디바이스의 카메라에 액세스하여 캡처된 이미지에서 로컬로 추론을 실행합니다. `ImageName` 및 `ImageDirectory` 파라미터의 값은 무시됩니다. 이 구성 요소를 실행하는 사용자에게 카메라가 촬영한 이미지를 저장하는 위치에 대한 읽기/쓰기 액세스 권한이 있는지 확인합니다.  
기본값: `false`  
이 구성 요소의 레시피를 보면 기본 구성에는 `UseCamera` 구성 파라미터가 표시되지 않습니다. 그러나 구성 요소를 배포하는 경우 [구성 병합 업데이트](update-component-configurations.md)에서 이 파라미터의 값을 수정할 수 있습니다.  
`UseCamera`를 `true`로 설정하면 추론 구성 요소가 런타임 구성 요소에 의해 생성된 가상 환경에서 카메라에 액세스할 수 있도록 심볼릭 링크도 생성해야 합니다. 샘플 추론 구성 요소와 함께 카메라를 사용하는 방법에 대한 자세한 내용은 [구성 요소 구성 업데이트](ml-tutorial-image-classification-camera.md) 섹션을 참조하세요.

## 로컬 로그 파일
<a name="tensorflow-lite-image-classification-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/aws.greengrass.TensorFlowLiteImageClassification.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteImageClassification.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.TensorFlowLiteImageClassification.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteImageClassification.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="tensorflow-lite-image-classification-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  버전  |  변경 사항  | 
| --- | --- | 
|  2.1.12  |  Greengrass nucleus 2.12.5 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.11  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.10  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.9  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.8  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.7  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.6  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.5  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.4  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.3  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.2  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.1  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.0  |  초기 버전입니다.  | 

# TensorFlow Lite 객체 감지
<a name="tensorflow-lite-object-detection-component"></a>

TensorFlow Lite 객체 감지 구성 요소(`aws.greengrass.TensorFlowLiteObjectDetection`)에는 [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python)를 사용하여 객체 감지 추론을 수행하기 위한 샘플 추론 코드와 사전 훈련된 샘플 Single Shot Detection(SSD) MobileNet 1.0 모델이 포함되어 있습니다. 이 구성 요소는 [TensorFlow Lite 객체 감지 모델 저장소](tensorflow-lite-object-detection-model-store-component.md) 변형과 [TensorFlow Lite 런타임](tensorflow-lite-component.md) 구성 요소를 종속성으로 사용하여 TensorFlow Lite와 샘플 모델을 다운로드합니다.

사용자 지정 훈련된 TensorFlow Lite 모델과 함께 이 추론 구성 요소를 사용하려면 종속 모델 저장소 구성 요소의 [사용자 지정 버전을 생성](ml-customization.md#override-public-model-store)하면 됩니다. 자체 사용자 지정 추론 코드를 사용하려면 이 구성 요소의 레시피를 템플릿으로 사용하여 [사용자 지정 추론 구성 요소를 생성](ml-customization.md#create-inference-component)합니다.

**Topics**
+ [버전](#tensorflow-lite-object-detection-component-versions)
+ [유형](#tensorflow-lite-object-detection-component-type)
+ [운영 체제](#tensorflow-lite-object-detection-component-os-support)
+ [요구 사항](#tensorflow-lite-object-detection-component-requirements)
+ [종속성](#tensorflow-lite-object-detection-component-dependencies)
+ [구성](#tensorflow-lite-object-detection-component-configuration)
+ [로컬 로그 파일](#tensorflow-lite-object-detection-component-log-file)
+ [Changelog](#tensorflow-lite-object-detection-component-changelog)

## 버전
<a name="tensorflow-lite-object-detection-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.1.x

## 유형
<a name="tensorflow-lite-object-detection-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="tensorflow-lite-object-detection-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="tensorflow-lite-object-detection-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.<a name="ml-component-requirements"></a>
+ Amazon Linux 2 또는 Ubuntu 18.04를 실행 중인 Greengrass 코어 디바이스의 경우 [GNU C 라이브러리](https://www.gnu.org/software/libc/)(glibc) 버전 2.27 이상이 디바이스에 설치되어 있어야 합니다.
+ Raspberry Pi와 같은 Armv7l 디바이스에는 디바이스에 OpenCV-Python에 대한 종속성이 설치되어 있어야 합니다. 다음 명령을 실행하여 종속성을 설치합니다.

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ Raspberry Pi OS Bullseye를 실행하는 Raspberry Pi 디바이스는 다음과 같은 요구 사항을 충족해야 합니다.
  + 디바이스에 NumPy 1.22.4 이상이 설치되어 있어야 합니다. Raspberry Pi OS Bullseye에는 이전 버전의 NumPy가 포함되어 있으므로 다음 명령을 실행하여 디바이스에서 NumPy를 업그레이드할 수 있습니다.

    ```
    pip3 install --upgrade numpy
    ```
  + 디바이스에서 레거시 카메라 스택이 활성화되어 있어야 합니다. Raspberry Pi OS Bullseye에는 기본적으로 활성화되어 있지만 호환되지 않는 새 카메라 스택이 포함되어 있으므로 레거시 카메라 스택을 활성화해야 합니다.<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**레거시 카메라 스택을 활성화하려면**

    1. 다음 명령을 실행하여 Raspberry Pi 구성 도구를 엽니다.

       ```
       sudo raspi-config
       ```

    1. **인터페이스 옵션**을 선택합니다.

    1. **레거시 카메라**를 선택하여 레거시 카메라 스택을 활성화합니다.

    1. Raspberry Pi를 재부팅합니다.

## 종속성
<a name="tensorflow-lite-object-detection-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#tensorflow-lite-object-detection-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.1.11 and 2.1.12 ]

다음 표에는 이 구성 요소의 버전 2.1.11 및 2.1.12에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.10 ]

다음 표에는 이 구성 요소의 버전 2.1.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.9 ]

다음 표에는 이 구성 요소의 버전 2.1.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.8 ]

다음 표에는 이 구성 요소의 버전 2.1.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.7 ]

다음 표에는 이 구성 요소의 버전 2.1.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.6 ]

다음 표에는 이 구성 요소의 버전 2.1.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.5 ]

다음 표에는 이 구성 요소의 버전 2.1.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.4 ]

다음 표에는 이 구성 요소의 버전 2.1.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.3 ]

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------
#### [ 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 소프트 | 
| [TensorFlow Lite 이미지 분류 모델 저장소](tensorflow-lite-image-classification-model-store-component.md) | >=2.1.0 <2.2.0 | 하드 | 
| [TensorFlow Lite](tensorflow-lite-component.md) | >=2.5.0 <2.6.0 | 하드 | 

------

## 구성
<a name="tensorflow-lite-object-detection-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

`accessControl`  
<a name="ml-config-accesscontrol-desc"></a>(선택 사항) 구성 요소가 기본 알림 주제에 메시지를 게시할 수 있도록 허용하는 [권한 부여 정책](interprocess-communication.md#ipc-authorization-policies)이 있는 객체입니다.  
기본값:   

```
{
   "aws.greengrass.ipc.mqttproxy": {
      "aws.greengrass.TensorFlowLiteObjectDetection:mqttproxy:1": {
         "policyDescription": "Allows access to publish via topic ml/tflite/object-detection.",
         "operations": [
            "aws.greengrass#PublishToIoTCore"
         ],
         "resources": [
            "ml/tflite/object-detection"
         ]
      }
   }
}
```

`PublishResultsOnTopic`  
<a name="ml-config-publishresultsontopic-desc"></a>(선택 사항) 추론 결과를 게시하려는 주제입니다. 이 값을 수정하는 경우에는 사용자 지정 주제 이름과 일치하도록 `accessControl` 파라미터의 `resources` 값도 수정해야 합니다.  
기본값: `ml/tflite/object-detection`

`Accelerator`  <a name="ml-config-accelerator"></a>
사용하려는 액셀러레이터입니다. 지원되는 값은 `cpu` 및 `gpu`입니다.  
종속 모델 구성 요소의 샘플 모델은 CPU 액셀러레이션만 지원합니다. 다른 사용자 지정 모델에서 GPU 액셀러레이션을 사용하려면 [사용자 지정 모델 구성 요소를 생성](ml-customization.md#override-public-model-store)하여 퍼블릭 모델 구성 요소를 재정의합니다.  
기본값: `cpu`

`ImageDirectory`  
<a name="ml-config-imagedirectory-desc"></a>(선택 사항) 추론 구성 요소가 이미지를 읽는 디바이스의 폴더 경로입니다. 이 값은 읽기/쓰기 액세스 권한이 있는 디바이스의 모든 위치로 수정할 수 있습니다.  
<a name="ml-config-imagedirectory-obj-default"></a>기본값: `/greengrass/v2/packages/artifacts-unarchived/component-name/object_detection/sample_images/`  
`UseCamera` 값을 `true`로 설정하는 경우 이 구성 파라미터는 무시됩니다.

`ImageName`  
<a name="ml-config-imagename-desc"></a>(선택 사항) 추론 구성 요소가 예측하기 위한 입력으로 사용하는 이미지의 이름입니다. 구성 요소는 `ImageDirectory`에 지정된 폴더에서 이미지를 찾습니다. 기본적으로 구성 요소는 기본 이미지 디렉터리의 샘플 이미지를 사용합니다.는 `jpeg`, `jpg`, 및 이미지 형식을 AWS IoT Greengrass 지원합니다`png``npy`.  
<a name="ml-config-imagename-obj-default"></a>기본값: `objects.jpg`  
`UseCamera` 값을 `true`로 설정하는 경우 이 구성 파라미터는 무시됩니다.

`InferenceInterval`  <a name="ml-config-inferenceinterval"></a>
(선택 사항) 추론 코드가 예측한 각 예측 사이의 시간(초)입니다. 샘플 추론 코드는 무기한으로 실행되며 지정된 시간 간격으로 예측을 반복합니다. 예를 들어 카메라로 촬영한 이미지를 실시간 예측에 사용하려는 경우 이 간격을 더 짧게 변경할 수 있습니다.  
기본값: `3600`

`ModelResourceKey`  <a name="ml-config-modelresourcekey"></a>
<a name="ml-config-modelresourcekey-desc"></a>(선택 사항) 종속 퍼블릭 모델 구성 요소에 사용되는 모델입니다. 사용자 지정 구성 요소로 퍼블릭 모델 구성 요소를 재정의하는 경우에만 이 파라미터를 수정합니다.  
기본값:  

```
{
    "model": "TensorFlowLite-SSD"
}
```

`UseCamera`  <a name="ml-config-usecamera"></a>
(선택 사항) Greengrass 코어 디바이스에 연결된 카메라의 이미지를 사용할지 여부를 정의하는 문자열 값입니다. 지원되는 값은 `true` 및 `false`입니다.  
이 값을 `true`로 설정하면 샘플 추론 코드가 디바이스의 카메라에 액세스하여 캡처된 이미지에서 로컬로 추론을 실행합니다. `ImageName` 및 `ImageDirectory` 파라미터의 값은 무시됩니다. 이 구성 요소를 실행하는 사용자에게 카메라가 촬영한 이미지를 저장하는 위치에 대한 읽기/쓰기 액세스 권한이 있는지 확인합니다.  
기본값: `false`  
이 구성 요소의 레시피를 보면 기본 구성에는 `UseCamera` 구성 파라미터가 표시되지 않습니다. 그러나 구성 요소를 배포하는 경우 [구성 병합 업데이트](update-component-configurations.md)에서 이 파라미터의 값을 수정할 수 있습니다.  
`UseCamera`를 `true`로 설정하면 추론 구성 요소가 런타임 구성 요소에 의해 생성된 가상 환경에서 카메라에 액세스할 수 있도록 심볼릭 링크도 생성해야 합니다. 샘플 추론 구성 요소와 함께 카메라를 사용하는 방법에 대한 자세한 내용은 [구성 요소 구성 업데이트](ml-tutorial-image-classification-camera.md) 섹션을 참조하세요.

**참고**  <a name="ml-config-not-visible-note"></a>
이 구성 요소의 레시피를 보면 기본 구성에는 `UseCamera` 구성 파라미터가 표시되지 않습니다. 그러나 구성 요소를 배포하는 경우 [구성 병합 업데이트](update-component-configurations.md)에서 이 파라미터의 값을 수정할 수 있습니다.  
`UseCamera`를 `true`로 설정하면 추론 구성 요소가 런타임 구성 요소에 의해 생성된 가상 환경에서 카메라에 액세스할 수 있도록 심볼릭 링크도 생성해야 합니다. 샘플 추론 구성 요소와 함께 카메라를 사용하는 방법에 대한 자세한 내용은 [구성 요소 구성 업데이트](ml-tutorial-image-classification-camera.md) 섹션을 참조하세요.

## 로컬 로그 파일
<a name="tensorflow-lite-object-detection-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/aws.greengrass.TensorFlowLiteObjectDetection.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteObjectDetection.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.TensorFlowLiteObjectDetection.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteObjectDetection.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="tensorflow-lite-object-detection-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  버전  |  변경 사항  | 
| --- | --- | 
|  2.1.12  |  Greengrass nucleus 2.12.5 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.11  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.10  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.9  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.8  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.7  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.6  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.5  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.4  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.3  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.2  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.1  |  <a name="changelog-tensorflow-lite-object-detection-2.1.1"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/tensorflow-lite-object-detection-component.html)  | 
|  2.1.0  |  초기 버전입니다.  | 

# TensorFlow Lite 이미지 분류 모델 저장소
<a name="tensorflow-lite-image-classification-model-store-component"></a>

TensorFlow Lite 이미지 분류 모델 저장소(`variant.TensorFlowLite.ImageClassification.ModelStore`)는 사전 훈련된 MobileNet v1 모델을 Greengrass 아티팩트로 포함하는 기계 학습 모델 구성 요소입니다. 이 구성 요소에 사용되는 샘플 모델은 [TensorFlow Hub](https://tfhub.dev/)에서 가져왔으며 [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python)를 사용하여 구현되었습니다.

[TensorFlow Lite 이미지 분류](tensorflow-lite-image-classification-component.md) 추론 구성 요소는 이 구성 요소를 모델 소스의 종속성으로 사용합니다. 사용자 지정 훈련된 TensorFlow Lite 모델을 사용하려면 이 모델 구성 요소의 [사용자 지정 버전을 생성](ml-customization.md#override-public-model-store)하고 사용자 지정 모델을 구성 요소 아티팩트로 포함합니다. 이 구성 요소의 레시피를 템플릿으로 사용하여 사용자 지정 모델 구성 요소를 생성할 수 있습니다.

**Topics**
+ [버전](#tensorflow-lite-image-classification-model-store-component-versions)
+ [유형](#tensorflow-lite-image-classification-model-store-component-type)
+ [운영 체제](#tensorflow-lite-image-classification-model-store-component-os-support)
+ [요구 사항](#tensorflow-lite-image-classification-model-store-component-requirements)
+ [종속성](#tensorflow-lite-image-classification-model-store-component-dependencies)
+ [구성](#tensorflow-lite-image-classification-model-store-component-configuration)
+ [로컬 로그 파일](#tensorflow-lite-image-classification-model-store-component-log-file)
+ [Changelog](#tensorflow-lite-image-classification-model-store-component-changelog)

## 버전
<a name="tensorflow-lite-image-classification-model-store-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.1.x

## 유형
<a name="tensorflow-lite-image-classification-model-store-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="tensorflow-lite-image-classification-model-store-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="tensorflow-lite-image-classification-model-store-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.<a name="ml-component-requirements"></a>
+ Amazon Linux 2 또는 Ubuntu 18.04를 실행 중인 Greengrass 코어 디바이스의 경우 [GNU C 라이브러리](https://www.gnu.org/software/libc/)(glibc) 버전 2.27 이상이 디바이스에 설치되어 있어야 합니다.
+ Raspberry Pi와 같은 Armv7l 디바이스에는 디바이스에 OpenCV-Python에 대한 종속성이 설치되어 있어야 합니다. 다음 명령을 실행하여 종속성을 설치합니다.

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ Raspberry Pi OS Bullseye를 실행하는 Raspberry Pi 디바이스는 다음과 같은 요구 사항을 충족해야 합니다.
  + 디바이스에 NumPy 1.22.4 이상이 설치되어 있어야 합니다. Raspberry Pi OS Bullseye에는 이전 버전의 NumPy가 포함되어 있으므로 다음 명령을 실행하여 디바이스에서 NumPy를 업그레이드할 수 있습니다.

    ```
    pip3 install --upgrade numpy
    ```
  + 디바이스에서 레거시 카메라 스택이 활성화되어 있어야 합니다. Raspberry Pi OS Bullseye에는 기본적으로 활성화되어 있지만 호환되지 않는 새 카메라 스택이 포함되어 있으므로 레거시 카메라 스택을 활성화해야 합니다.<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**레거시 카메라 스택을 활성화하려면**

    1. 다음 명령을 실행하여 Raspberry Pi 구성 도구를 엽니다.

       ```
       sudo raspi-config
       ```

    1. **인터페이스 옵션**을 선택합니다.

    1. **레거시 카메라**를 선택하여 레거시 카메라 스택을 활성화합니다.

    1. Raspberry Pi를 재부팅합니다.

## 종속성
<a name="tensorflow-lite-image-classification-model-store-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#tensorflow-lite-image-classification-model-store-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.1.11 and 2.1.12  ]

다음 표에는 이 구성 요소의 버전 2.1.11 및 2.1.12에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 소프트 | 

------
#### [ 2.1.10 ]

다음 표에는 이 구성 요소의 버전 2.1.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 소프트 | 

------
#### [ 2.1.9 ]

다음 표에는 이 구성 요소의 버전 2.1.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 소프트 | 

------
#### [ 2.1.8 ]

다음 표에는 이 구성 요소의 버전 2.1.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 소프트 | 

------
#### [ 2.1.7 ]

다음 표에는 이 구성 요소의 버전 2.1.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 소프트 | 

------
#### [ 2.1.6 ]

다음 표에는 이 구성 요소의 버전 2.1.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 소프트 | 

------
#### [ 2.1.5 ]

다음 표에는 이 구성 요소의 버전 2.1.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 소프트 | 

------
#### [ 2.1.4 ]

다음 표에는 이 구성 요소의 버전 2.1.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 소프트 | 

------
#### [ 2.1.3 ]

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 소프트 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 소프트 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 소프트 | 

------
#### [ 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 소프트 | 

------

## 구성
<a name="tensorflow-lite-image-classification-model-store-component-configuration"></a>

이 구성 요소에는 구성 파라미터가 없습니다.

## 로컬 로그 파일
<a name="tensorflow-lite-image-classification-model-store-component-log-file"></a>

이 구성 요소는 로그를 출력하지 않습니다.

## Changelog
<a name="tensorflow-lite-image-classification-model-store-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  버전  |  변경 사항  | 
| --- | --- | 
|  2.1.12  |  Greengrass nucleus 2.12.5 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.11  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.10  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.9  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.8  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.7  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.6  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.5  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.4  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.3  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.2  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.1  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.0  |  초기 버전입니다.  | 

# TensorFlow Lite 객체 감지 모델 저장소
<a name="tensorflow-lite-object-detection-model-store-component"></a>

TensorFlow Lite 객체 감지 모델 저장소(`variant.TensorFlowLite.ObjectDetection.ModelStore`)는 사전 훈련된 Single Shot Detection(SSD) MobileNet 모델을 Greengrass 아티팩트로 포함하는 기계 학습 모델 구성 요소입니다. 이 구성 요소에 사용되는 샘플 모델은 [TensorFlow Hub](https://tfhub.dev/)에서 가져왔으며 [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python)를 사용하여 구현되었습니다.

[TensorFlow Lite 객체 감지](tensorflow-lite-object-detection-component.md) 추론 구성 요소는 이 구성 요소를 모델 소스의 종속성으로 사용합니다. 사용자 지정 훈련된 TensorFlow Lite 모델을 사용하려면 이 모델 구성 요소의 [사용자 지정 버전을 생성](ml-customization.md#override-public-model-store)하고 사용자 지정 모델을 구성 요소 아티팩트로 포함합니다. 이 구성 요소의 레시피를 템플릿으로 사용하여 사용자 지정 모델 구성 요소를 생성할 수 있습니다.

**Topics**
+ [버전](#tensorflow-lite-object-detection-model-store-component-versions)
+ [유형](#tensorflow-lite-object-detection-model-store-component-type)
+ [운영 체제](#tensorflow-lite-object-detection-model-store-component-os-support)
+ [요구 사항](#tensorflow-lite-object-detection-model-store-component-requirements)
+ [종속성](#tensorflow-lite-object-detection-model-store-component-dependencies)
+ [구성](#tensorflow-lite-object-detection-model-store-component-configuration)
+ [로컬 로그 파일](#tensorflow-lite-object-detection-model-store-component-log-file)
+ [Changelog](#tensorflow-lite-object-detection-model-store-component-changelog)

## 버전
<a name="tensorflow-lite-object-detection-model-store-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.1.x

## 유형
<a name="tensorflow-lite-object-detection-model-store-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="tensorflow-lite-object-detection-model-store-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="tensorflow-lite-object-detection-model-store-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.<a name="ml-component-requirements"></a>
+ Amazon Linux 2 또는 Ubuntu 18.04를 실행 중인 Greengrass 코어 디바이스의 경우 [GNU C 라이브러리](https://www.gnu.org/software/libc/)(glibc) 버전 2.27 이상이 디바이스에 설치되어 있어야 합니다.
+ Raspberry Pi와 같은 Armv7l 디바이스에는 디바이스에 OpenCV-Python에 대한 종속성이 설치되어 있어야 합니다. 다음 명령을 실행하여 종속성을 설치합니다.

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ Raspberry Pi OS Bullseye를 실행하는 Raspberry Pi 디바이스는 다음과 같은 요구 사항을 충족해야 합니다.
  + 디바이스에 NumPy 1.22.4 이상이 설치되어 있어야 합니다. Raspberry Pi OS Bullseye에는 이전 버전의 NumPy가 포함되어 있으므로 다음 명령을 실행하여 디바이스에서 NumPy를 업그레이드할 수 있습니다.

    ```
    pip3 install --upgrade numpy
    ```
  + 디바이스에서 레거시 카메라 스택이 활성화되어 있어야 합니다. Raspberry Pi OS Bullseye에는 기본적으로 활성화되어 있지만 호환되지 않는 새 카메라 스택이 포함되어 있으므로 레거시 카메라 스택을 활성화해야 합니다.<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**레거시 카메라 스택을 활성화하려면**

    1. 다음 명령을 실행하여 Raspberry Pi 구성 도구를 엽니다.

       ```
       sudo raspi-config
       ```

    1. **인터페이스 옵션**을 선택합니다.

    1. **레거시 카메라**를 선택하여 레거시 카메라 스택을 활성화합니다.

    1. Raspberry Pi를 재부팅합니다.

## 종속성
<a name="tensorflow-lite-object-detection-model-store-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#tensorflow-lite-object-detection-model-store-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.1.11 and 2.1.12 ]

다음 표에는 이 구성 요소의 버전 2.1.11 및 2.1.12에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 소프트 | 

------
#### [ 2.1.10 ]

다음 표에는 이 구성 요소의 버전 2.1.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 소프트 | 

------
#### [ 2.1.9 ]

다음 표에는 이 구성 요소의 버전 2.1.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 소프트 | 

------
#### [ 2.1.8 ]

다음 표에는 이 구성 요소의 버전 2.1.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 소프트 | 

------
#### [ 2.1.7 ]

다음 표에는 이 구성 요소의 버전 2.1.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 소프트 | 

------
#### [ 2.1.6 ]

다음 표에는 이 구성 요소의 버전 2.1.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 소프트 | 

------
#### [ 2.1.5 ]

다음 표에는 이 구성 요소의 버전 2.1.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 소프트 | 

------
#### [ 2.1.4 ]

다음 표에는 이 구성 요소의 버전 2.1.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 소프트 | 

------
#### [ 2.1.3 ]

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 소프트 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 소프트 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 소프트 | 

------
#### [ 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 소프트 | 

------

## 구성
<a name="tensorflow-lite-object-detection-model-store-component-configuration"></a>

이 구성 요소에는 구성 파라미터가 없습니다.

## 로컬 로그 파일
<a name="tensorflow-lite-object-detection-model-store-component-log-file"></a>

이 구성 요소는 로그를 출력하지 않습니다.

## Changelog
<a name="tensorflow-lite-object-detection-model-store-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  버전  |  변경 사항  | 
| --- | --- | 
|  2.1.12  |  Greengrass nucleus 2.12.5 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.11  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.10  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.9  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.8  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.7  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.6  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.5  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.4  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.3  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.2  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.1  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.0  |  초기 버전입니다.  | 

# TensorFlow Lite 런타임
<a name="tensorflow-lite-component"></a>

TensorFlow Lite 런타임 구성 요소(`variant.TensorFlowLite`)에는 디바이스의 가상 환경에 [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) 버전 2.5.0 및 해당 종속성을 설치하는 스크립트가 포함되어 있습니다. [TensorFlow Lite 이미지 분류](tensorflow-lite-image-classification-component.md) 및 [TensorFlow Lite 객체 감지](tensorflow-lite-object-detection-component.md) 구성 요소는 이 런타임 구성 요소를 TensorFlow Lite 설치를 위한 종속성으로 사용합니다.

**참고**  
TensorFlow Lite 런타임 구성 요소 v2.5.6 이상은 TensorFlow Lite 런타임 및 해당 종속성의 기존 설치를 재설치합니다. 이 재설치는 코어 디바이스에서 TensorFlow Lite의 호환 버전과 해당 종속성을 실행하는 데 도움이 됩니다.

다른 런타임을 사용하려면 이 구성 요소의 레시피를 템플릿으로 사용하여 [사용자 지정 기계 학습 구성 요소](ml-customization.md)를 생성하면 됩니다.

**Topics**
+ [버전](#tensorflow-lite-component-versions)
+ [유형](#tensorflow-lite-component-type)
+ [운영 체제](#tensorflow-lite-component-os-support)
+ [요구 사항](#tensorflow-lite-component-requirements)
+ [종속성](#tensorflow-lite-component-dependencies)
+ [구성](#tensorflow-lite-component-configuration)
+ [사용법](#tensorflow-lite-component-usage)
+ [로컬 로그 파일](#tensorflow-lite-component-log-file)
+ [Changelog](#tensorflow-lite-component-changelog)

## 버전
<a name="tensorflow-lite-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.5.x

## 유형
<a name="tensorflow-lite-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="tensorflow-lite-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="tensorflow-lite-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.<a name="ml-component-requirements"></a>
+ Amazon Linux 2 또는 Ubuntu 18.04를 실행 중인 Greengrass 코어 디바이스의 경우 [GNU C 라이브러리](https://www.gnu.org/software/libc/)(glibc) 버전 2.27 이상이 디바이스에 설치되어 있어야 합니다.
+ Raspberry Pi와 같은 Armv7l 디바이스에는 디바이스에 OpenCV-Python에 대한 종속성이 설치되어 있어야 합니다. 다음 명령을 실행하여 종속성을 설치합니다.

  ```
  sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  ```
+ Raspberry Pi OS Bullseye를 실행하는 Raspberry Pi 디바이스는 다음과 같은 요구 사항을 충족해야 합니다.
  + 디바이스에 NumPy 1.22.4 이상이 설치되어 있어야 합니다. Raspberry Pi OS Bullseye에는 이전 버전의 NumPy가 포함되어 있으므로 다음 명령을 실행하여 디바이스에서 NumPy를 업그레이드할 수 있습니다.

    ```
    pip3 install --upgrade numpy
    ```
  + 디바이스에서 레거시 카메라 스택이 활성화되어 있어야 합니다. Raspberry Pi OS Bullseye에는 기본적으로 활성화되어 있지만 호환되지 않는 새 카메라 스택이 포함되어 있으므로 레거시 카메라 스택을 활성화해야 합니다.<a name="raspberry-pi-bullseye-enable-legacy-camera-stack"></a>

**레거시 카메라 스택을 활성화하려면**

    1. 다음 명령을 실행하여 Raspberry Pi 구성 도구를 엽니다.

       ```
       sudo raspi-config
       ```

    1. **인터페이스 옵션**을 선택합니다.

    1. **레거시 카메라**를 선택하여 레거시 카메라 스택을 활성화합니다.

    1. Raspberry Pi를 재부팅합니다.

### 엔드포인트 및 포트
<a name="tensorflow-lite-component-endpoints"></a>

기본적으로 이 구성 요소에 코어 디바이스에서 사용하는 플랫폼에 따라 `apt`, `yum`, `brew`, `pip` 명령을 사용하여 패키지를 설치하는 설치 관리자 스크립트를 사용합니다. 이 구성 요소는 설치 관리자 스크립트를 실행하기 위해 다양한 패키지 인덱스 및 리포지토리에 대한 아웃바운드 요청을 수행할 수 있어야 합니다. 프록시 또는 방화벽을 통해 이 구성 요소의 아웃바운드 트래픽을 허용하려면 코어 디바이스가 설치를 위해 연결되는 패키지 인덱스 및 리포지토리의 엔드포인트를 식별해야 합니다.

이 구성 요소의 설치 스크립트에 필요한 엔드포인트를 식별하는 경우 다음 사항을 고려하세요.
+ 엔드포인트는 코어 디바이스의 플랫폼에 따라 다릅니다. 예를 들어 Ubuntu를 실행하는 코어 디바이스는 `yum` 또는 `brew` 대신 `apt`를 사용합니다. 또한 동일한 패키지 인덱스를 사용하는 디바이스의 소스 목록은 다를 수 있으므로 서로 다른 리포지토리에서 패키지를 검색할 수 있습니다.
+ 각 디바이스에는 패키지를 검색할 위치를 정의하는 자체 소스 목록이 있으므로 동일한 패키지 인덱스를 사용하는 여러 디바이스 간에 엔드포인트가 다를 수 있습니다.
+ 엔드포인트는 시간이 지남에 따라 변경될 수 있습니다. 각 패키지 인덱스는 패키지를 다운로드하는 리포지토리의 URL을 제공하며 패키지 소유자는 패키지 인덱스가 제공하는 URL을 변경할 수 있습니다.

이 구성 요소에서 설치하는 종속성에 대한 자세한 내용과 설치 프로그램 스크립트를 비활성화하는 방법은 [UseInstaller](#tensorflow-lite-component-config-useinstaller-term) 구성 파라미터를 참조하세요.

기본 작업에 필요한 엔드포인트와 포트에 대한 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 섹션을 참조하세요.

## 종속성
<a name="tensorflow-lite-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#tensorflow-lite-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.5.14 and 2.5.15 ]

다음 표에는 이 구성 요소의 버전 2.5.14 및 2.5.15에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0 | 소프트 | 

------
#### [ 2.5.13 ]

다음 표에는 이 구성 요소의 버전 2.5.13에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0 | 소프트 | 

------
#### [ 2.5.12 ]

다음 표에는 이 구성 요소의 버전 2.5.12에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0 | 소프트 | 

------
#### [ 2.5.11 ]

다음 표에는 이 구성 요소의 버전 2.5.11에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0 | 소프트 | 

------
#### [ 2.5.10 ]

다음 표에는 이 구성 요소의 버전 2.5.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0 | 소프트 | 

------
#### [ 2.5.9 ]

다음 표에는 이 구성 요소의 버전 2.5.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0 | 소프트 | 

------
#### [ 2.5.8 ]

다음 표에는 이 구성 요소의 버전 2.5.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0 | 소프트 | 

------
#### [ 2.5.5 - 2.5.7 ]

다음 표에는 이 구성 요소의 버전 2.5.5\$12.5.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0 | 소프트 | 

------
#### [ 2.5.3 and 2.5.4 ]

다음 표에는 이 구성 요소의 버전 2.5.3 및 2.5.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0 | 소프트 | 

------
#### [ 2.5.2 ]

다음 표에는 이 구성 요소의 버전 2.5.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0 | 소프트 | 

------
#### [ 2.5.1 ]

다음 표에는 이 구성 요소의 버전 2.5.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0 | 소프트 | 

------
#### [ 2.5.0 ]

다음 표에는 이 구성 요소의 버전 2.5.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0 | 소프트 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="tensorflow-lite-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

`MLRootPath`  
<a name="ml-config-mlrootpath-desc"></a>(선택 사항) 추론 구성 요소가 이미지를 읽고 추론 결과를 쓰는 Linux 코어 디바이스의 폴더 경로입니다. 이 값은 해당 구성 요소를 실행하는 사용자에게 읽기/쓰기 권한이 있는 디바이스의 모든 위치로 수정할 수 있습니다.  
<a name="ml-config-mlrootpath-default-tfl"></a>기본값: `/greengrass/v2/work/variant.TensorFlowLite/greengrass_ml`

`WindowsMLRootPath`  
이 기능은 이 구성 요소의 v1.6.6 이상에 사용할 수 있습니다.  
<a name="ml-config-windowsmlrootpath-desc"></a>(선택 사항) 추론 구성 요소가 이미지를 읽고 추론 결과를 쓰는 Windows 코어 디바이스의 폴더 경로입니다. 이 값은 해당 구성 요소를 실행하는 사용자에게 읽기/쓰기 권한이 있는 디바이스의 모든 위치로 수정할 수 있습니다.  
<a name="ml-config-windowsmlrootpath-default-dlr"></a>기본값: `C:\greengrass\v2\\work\\variant.DLR\\greengrass_ml`

  `UseInstaller`   
<a name="ml-config-useinstaller-desc-tfl"></a>(선택 사항) 이 구성 요소의 설치 관리자 스크립트를 사용하여 TensorFlow Lite와 해당 종속성을 설치할지 여부를 정의하는 문자열 값입니다. 지원되는 값은 `true` 및 `false`입니다.  <a name="ml-config-useinstaller-libraries-tfl"></a>

TensorFlow Lite 설치에 사용자 지정 스크립트를 사용하려는 경우 또는 사전 빌드된 Linux 이미지에 런타임 종속성을 포함하려는 경우에는 이 값을 `false`로 설정합니다. 이 구성 요소를 AWS제공 TensorFlow Lite 추론 구성 요소와 함께 사용하려면 종속성을 포함하여 다음 라이브러리를 설치하고 ML 구성 요소를 `ggc_user`실행하는와 같은 시스템 사용자가 사용할 수 있도록 합니다.
+ [Python](https://www.python.org/downloads/) 3.8 이상(사용 중인 Python 버전의 경우 `pip` 포함)
+ [TensorFlow Lite](https://www.tensorflow.org/lite/guide/python) v2.5.0
+ [NumPy](https://numpy.org/install/)
+ [OpenCV-Python](https://pypi.org/project/opencv-python/)
+ [AWS IoT Device SDK Python용 v2](https://github.com/aws/aws-iot-device-sdk-python-v2)
+ [AWS 공통 런타임(CRT) Python](https://github.com/awslabs/aws-crt-python)
+ [Picamera](https://picamera.readthedocs.io/en/release-1.13/)(Raspberry Pi 디바이스용)
+ [`awscam` 모듈](https://docs.aws.amazon.com/deeplens/latest/dg/deeplens-library-awscam-module.html)( AWS DeepLens 디바이스용)
+ libGL(Linux 디바이스용)
<a name="ml-config-useinstaller-default"></a>기본값: `true`

## 사용법
<a name="tensorflow-lite-component-usage"></a>

`UseInstaller` 구성 파라미터가 `true`로 설정된 이 구성 요소를 사용하여 디바이스에 TensorFlow Lite와 해당 종속성을 설치합니다. 이 구성 요소는 디바이스에 TensorFlow Lite에 필요한 OpenCV 및 NumPy 라이브러리를 포함하는 가상 환경을 설정합니다.

**참고**  <a name="ml-installer-component-usage-note"></a>
이 구성 요소의 설치 프로그램 스크립트에서도 디바이스에 가상 환경을 구성하고 설치된 기계 학습 프레임워크를 사용하는 데 필요한 추가 시스템 라이브러리의 최신 버전을 설치합니다. 그러면 디바이스의 기존 시스템 라이브러리가 업그레이드될 수 있습니다. 지원되는 각 운영 체제별로 이 구성 요소가 설치하는 라이브러리의 목록은 다음 표를 참조하세요. 이 설치 프로세스를 사용자 지정하려면 `UseInstaller` 구성 파라미터를 `false`로 설정하고 자체 설치 관리자 스크립트를 개발합니다.


| 플랫폼 | 디바이스 시스템에 설치된 라이브러리 | 가상 환경에 설치된 라이브러리 | 
| --- | --- | --- | 
| Armv7l | build-essential, cmake, ca-certificates, git | setuptools, wheel | 
| Amazon Linux 2 | mesa-libGL | 없음 | 
| Ubuntu | wget | 없음 | 

추론 구성 요소를 배포할 때 이 런타임 구성 요소는 먼저 디바이스에 이미 TensorFlow Lite 및 해당 종속성이 설치되어 있는지 확인합니다. 그렇지 않으면 런타임 구성 요소가 이를 대신 설치합니다.

## 로컬 로그 파일
<a name="tensorflow-lite-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/variant.TensorFlowLite.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\variant.TensorFlowLite.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/variant.TensorFlowLite.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\variant.TensorFlowLite.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="tensorflow-lite-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  버전  |  변경 사항  | 
| --- | --- | 
|  2.5.15  |  Greengrass nucleus 2.12.5 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.14  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.5.13  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.5.12  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.5.11  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.5.10  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.5.9  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.8  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.7  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/tensorflow-lite-component.html)  | 
|  2.5.6  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/tensorflow-lite-component.html)  | 
|  2.5.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/tensorflow-lite-component.html)  | 
|  2.5.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/tensorflow-lite-component.html)  | 
|  2.5.3  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.2  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.1  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.5.0  |  초기 버전입니다.  | 

# Modbus-RTU 프로토콜 어댑터
<a name="modbus-rtu-protocol-adapter-component"></a>

Modbus-RTU 프로토콜 어댑터 구성 요소(`aws.greengrass.Modbus`)는 로컬 Modbus RTU 디바이스에서 정보를 폴링합니다.

이 구성 요소를 사용하여 로컬 Modbus RTU 디바이스에서 정보를 요청하려면 이 구성 요소가 구독하는 주제에 메시지를 게시합니다. 메시지에서 디바이스에 전송할 Modbus RTU 요청을 지정합니다. 그러면 이 구성 요소는 Modbus RTU 요청에 대한 결과가 포함된 응답을 게시합니다.

**참고**  
이 구성 요소는 AWS IoT Greengrass V1의 Modbus RTU 프로토콜 어댑터 커넥터와 유사한 기능을 제공합니다. 자세한 내용은 *AWS IoT Greengrass V1 개발자 가이드*의 [Modbus RTU 프로토콜 어댑터 커넥터](https://docs.aws.amazon.com/greengrass/latest/developerguide/modbus-protocol-adapter-connector.html)를 참조하세요.

**Topics**
+ [버전](#modbus-rtu-protocol-adapter-component-versions)
+ [유형](#modbus-rtu-protocol-adapter-component-type)
+ [운영 체제](#modbus-rtu-protocol-adapter-component-os-support)
+ [요구 사항](#modbus-rtu-protocol-adapter-component-requirements)
+ [종속성](#modbus-rtu-protocol-adapter-component-dependencies)
+ [구성](#modbus-rtu-protocol-adapter-component-configuration)
+ [입력 데이터](#modbus-rtu-protocol-adapter-component-input-data)
+ [출력 데이터](#modbus-rtu-protocol-adapter-component-output-data)
+ [Modbus RTU 요청 및 응답](#modbus-rtu-protocol-adapter-component-requests-responses)
+ [로컬 로그 파일](#modbus-rtu-protocol-adapter-component-log-file)
+ [라이선스](#modbus-rtu-protocol-adapter-component-licenses)
+ [Changelog](#modbus-rtu-protocol-adapter-component-changelog)

## 버전
<a name="modbus-rtu-protocol-adapter-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.1.x
+ 2.0.x

## 유형
<a name="modbus-rtu-protocol-adapter-component-type"></a>

<a name="public-component-type-lambda"></a>이 <a name="public-component-type-lambda-phrase"></a>구성 요소는 Lambda 구성 요소(`aws.greengrass.lambda`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)에서는 [Lambda 런처 구성 요소](lambda-launcher-component.md)를 사용하여 이 구성 요소의 Lambda 함수를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="modbus-rtu-protocol-adapter-component-os-support"></a>

이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.

## 요구 사항
<a name="modbus-rtu-protocol-adapter-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
+ <a name="core-device-lambda-function-requirements"></a>Lambda 함수를 실행하려면 코어 디바이스가 요구 사항을 충족해야 합니다. 코어 디바이스에서 컨테이너화된 Lambda 함수를 실행하려면 디바이스가 요구 사항을 충족해야 합니다. 자세한 내용은 [Lambda 함수 요구 사항](setting-up.md#greengrass-v2-lambda-requirements) 단원을 참조하십시오.
+ <a name="public-component-python3-requirement"></a>코어 장치에 설치되고 PATH 환경 변수에 추가된 [Python](https://www.python.org/) 버전 3.7입니다.
+  AWS IoT Greengrass 코어 디바이스와 Modbus 디바이스 간의 물리적 연결입니다. 코어 디바이스는 직렬 포트(예: USB 포트)를 통해 Modbus RTU 네트워크에 물리적으로 연결되어 있어야 합니다.
+ <a name="connector-component-legacy-subscription-router-dependency"></a>이 구성 요소의 출력 데이터를 수신하려면 이 구성 요소를 배포할 때 [레거시 구독 라우터 구성 요소](legacy-subscription-router-component.md)(`aws.greengrass.LegacySubscriptionRouter`)에 대한 다음 구성 업데이트를 병합해야 합니다. 이 구성에서는 이 구성 요소가 응답을 게시하는 주제를 지정합니다.

------
#### [ Legacy subscription router v2.1.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-modbus": {
        "id": "aws-greengrass-modbus",
        "source": "component:aws.greengrass.Modbus",
        "subject": "modbus/adapter/response",
        "target": "cloud"
      }
    }
  }
  ```

------
#### [ Legacy subscription router v2.0.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-modbus": {
        "id": "aws-greengrass-modbus",
        "source": "arn:aws:lambda:region:aws:function:aws-greengrass-modbus:version",
        "subject": "modbus/adapter/response",
        "target": "cloud"
      }
    }
  }
  ```<a name="connector-component-legacy-subscription-router-dependency-replace"></a>
  + *region*을 사용하는 AWS 리전 로 바꿉니다.
  + *버전*을 이 구성 요소에서 실행되는 Lambda 함수의 버전으로 바꿉니다. Lambda 함수 버전을 찾으려면 배포하려는 이 구성 요소의 버전에 대한 레시피를 확인해야 합니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서 이 구성 요소의 세부 정보 페이지를 열고 **Lambda 함수** 키-값 페어를 찾습니다. 이 키-값 페어에는 Lambda 함수의 이름과 버전이 포함되어 있습니다.

**중요**  <a name="connector-component-legacy-subscription-router-dependency-note"></a>
이 구성 요소를 배포할 때마다 레거시 구독 라우터의 Lambda 함수 버전을 업데이트해야 합니다. 이를 통해 배포하는 구성 요소 버전에 맞는 올바른 Lambda 함수 버전을 사용할 수 있습니다.

------

  <a name="connector-component-create-deployments"></a>자세한 내용은 [배포 만들기](create-deployments.md) 단원을 참조하십시오.
+ Modbus-RTU 프로토콜 어댑터는 VPC에서 실행할 수 있습니다.

## 종속성
<a name="modbus-rtu-protocol-adapter-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#modbus-rtu-protocol-adapter-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.1.11 ]

다음 표에는 이 구성 요소의 버전 2.1.11에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.16.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.10 ]

다음 표에는 이 구성 요소의 버전 2.1.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.15.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.9 ]

다음 표에는 이 구성 요소의 버전 2.1.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.14.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.8 ]

다음 표에는 이 구성 요소의 버전 2.1.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.7 ]

다음 표에는 이 구성 요소의 버전 2.1.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.6 ]

다음 표에는 이 구성 요소의 버전 2.1.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.4 and 2.1.5 ]

다음 표에는 이 구성 요소의 버전 2.1.4 및 2.1.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.3 ]

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.8 and 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.0.8 및 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.7 ]

다음 표에는 이 구성 요소의 버전 2.0.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.6 ]

다음 표에는 이 구성 요소의 버전 2.0.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.5 ]

다음 표에는 이 구성 요소의 버전 2.0.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.4 ]

다음 표에는 이 구성 요소의 버전 2.0.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.3 ]

다음 표에는 이 구성 요소의 버전 2.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.3 <2.1.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | >=1.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | >=1.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=1.0.0  | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="modbus-rtu-protocol-adapter-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

**참고**  <a name="connector-component-lambda-parameters"></a>
이 구성 요소의 기본 구성에는 Lambda 함수 파라미터가 포함되어 있습니다. 디바이스에서 다음 파라미터만 사용하여 이 구성 요소를 구성하는 것이 좋습니다.

------
#### [ v2.1.x ]

`lambdaParams`  
이 구성 요소의 Lambda 함수에 대한 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`EnvironmentVariables`  
Lambda 함수의 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`ModbusLocalPort`  <a name="modbus-rtu-protocol-adapter-configuration-modbuslocalport"></a>
코어 디바이스에 있는 물리적 Modbus 직렬 포트의 절대 경로입니다(예: `/dev/ttyS2`).  
컨테이너에서 이 구성 요소를 실행하려면 이 경로를 구성 요소가 액세스할 수 있는 시스템 디바이스(`containerParams.devices`에)로 정의해야 합니다. 이 구성 요소는 기본적으로 컨테이너에서 실행됩니다.  
이 구성 요소에는 디바이스에 대한 읽기/쓰기 액세스 권한이 있어야 합니다.  
`ModbusBaudRate`  
(선택 사항) 로컬 Modbus TCP 디바이스와의 직렬 통신을 위한 전송 속도를 지정하는 문자열 값입니다.  
기본값: `9600`  
`ModbusByteSize`  
(선택 사항) 로컬 Modbus TCP 디바이스와의 직렬 통신에서 바이트 크기를 지정하는 문자열 값입니다. `5`, `6`, `7` 또는 `8`비트를 선택합니다.  
기본값: `8`  
`ModbusParity`  
(선택 사항) 로컬 Modbus TCP 디바이스와의 직렬 통신에서 데이터 무결성을 확인하는 데 사용할 패리티 모드입니다.  
+ `E` - 짝수 패리티를 사용하여 데이터 무결성을 확인합니다.
+ `O` – 홀수 패리티를 사용하여 데이터 무결성을 확인합니다.
+ `N` – 데이터 무결성을 확인하지 않습니다.
기본값: `N`  
`ModbusStopBits`  
(선택 사항) 로컬 Modbus TCP 디바이스와의 직렬 통신에서 바이트의 끝을 나타내는 비트 수를 지정하는 문자열 값입니다.  
기본값: `1`

`containerMode`  <a name="modbus-rtu-protocol-adapter-configuration-containermode"></a>
(선택 사항) 이 구성 요소에 대한 컨테이너화 모드입니다. 다음 옵션 중 하나를 선택합니다.  
+ `GreengrassContainer` - 구성 요소는 AWS IoT Greengrass 컨테이너 내의 격리된 런타임 환경에서 실행됩니다.

  이 옵션을 지정하는 경우 컨테이너에 Modbus 디바이스에 대한 액세스 권한을 부여할 시스템 디바이스(`containerParams.devices`에)를 지정해야 합니다.
+ `NoContainer` - 구성 요소가 격리된 런타임 환경에서 실행되지 않습니다.
기본값: `GreengrassContainer`

`containerParams`  <a name="modbus-rtu-protocol-adapter-configuration-containerparams"></a>
<a name="connector-component-container-params-description"></a>(선택 사항) 이 구성 요소에 대한 컨테이너 파라미터를 포함하는 객체입니다. `containerMode`에 `GreengrassContainer`를 지정하면 구성 요소에서 이러한 파라미터를 사용합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`memorySize`  
<a name="connector-component-container-params-memory-size-description"></a>(선택 사항) 구성 요소에 할당되는 메모리 양(킬로바이트)입니다.  
기본값은 512MB(525,312KB)입니다.  
`devices`  
(선택 사항) 구성 요소가 컨테이너에서 액세스할 수 있는 시스템 디바이스를 지정하는 객체입니다.  
컨테이너에서 이 구성 요소를 실행하려면 `ModbusLocalPort` 환경 변수에서 구성하는 시스템 디바이스를 지정해야 합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`0` – 문자열 형태의 배열 인덱스입니다.  
다음 정보를 포함하는 객체입니다.    
`path`  
코어 디바이스의 시스템 디바이스 경로입니다. `ModbusLocalPort`에 대해 구성하는 값과 같은 값이어야 합니다.  
`permission`  
(선택 사항) 컨테이너에서 시스템 디바이스에 액세스할 수 있는 권한입니다. 이 값은 구성 요소가 시스템 디바이스에 대한 읽기/쓰기 액세스 권한을 갖도록 지정하는 `rw`여야 합니다.  
기본값: `rw`  
`addGroupOwner`  
(선택 사항) 구성 요소를 실행하는 시스템 그룹을 시스템 디바이스의 소유자로 추가할지 여부입니다.  
기본값: `true`

`pubsubTopics`  <a name="connector-component-pubsub-topics-parameter"></a>
(선택 사항) 구성 요소에서 메시지를 수신하려고 구독하는 주제를 포함하는 객체입니다. 각 주제와 구성 요소가 AWS IoT Core 또는 로컬 게시/구독 주제의 MQTT 주제를 구독하는지 여부를 지정할 수 있습니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`0` – 문자열 형태의 배열 인덱스입니다.  
다음 정보를 포함하는 객체입니다.    
`type`  
(선택 사항) 이 구성 요소에서 메시지 구독에 사용하는 게시/구독 메시징의 유형입니다. 다음 옵션 중 하나를 선택합니다.  
+ `PUB_SUB` – 로컬 게시/구독 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 섹션을 참조하세요.
+ `IOT_CORE` - AWS IoT Core MQTT 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.
기본값: `PUB_SUB`  
`topic`  
(선택 사항) 구성 요소가 메시지를 수신하기 위해 구독하는 주제입니다. `type`에 `IotCore`를 지정하면 이 주제에서 MQTT 와일드카드(`+` 및 `#`)를 사용할 수 있습니다.

**Example 예: 구성 병합 업데이트(컨테이너 모드)**  <a name="modbus-rtu-protocol-adapter-configuration-example-container-mode"></a>

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "ModbusLocalPort": "/dev/ttyS2"
    }
  },
  "containerMode": "GreengrassContainer",
  "containerParams": {
    "devices": {
      "0": {
        "path": "/dev/ttyS2",
        "permission": "rw",
        "addGroupOwner": true
      }
    }
  }
}
```

**Example 예: 구성 병합 업데이트(컨테이너 없음 모드)**  <a name="modbus-rtu-protocol-adapter-configuration-example-no-container-mode"></a>

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "ModbusLocalPort": "/dev/ttyS2"
    }
  },
  "containerMode": "NoContainer"
}
```

------
#### [ v2.0.x ]

`lambdaParams`  
이 구성 요소의 Lambda 함수에 대한 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`EnvironmentVariables`  
Lambda 함수의 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`ModbusLocalPort`  <a name="modbus-rtu-protocol-adapter-configuration-modbuslocalport"></a>
코어 디바이스에 있는 물리적 Modbus 직렬 포트의 절대 경로입니다(예: `/dev/ttyS2`).  
컨테이너에서 이 구성 요소를 실행하려면 이 경로를 구성 요소가 액세스할 수 있는 시스템 디바이스(`containerParams.devices`에)로 정의해야 합니다. 이 구성 요소는 기본적으로 컨테이너에서 실행됩니다.  
이 구성 요소에는 디바이스에 대한 읽기/쓰기 액세스 권한이 있어야 합니다.

`containerMode`  <a name="modbus-rtu-protocol-adapter-configuration-containermode"></a>
(선택 사항) 이 구성 요소에 대한 컨테이너화 모드입니다. 다음 옵션 중 하나를 선택합니다.  
+ `GreengrassContainer` - 구성 요소는 AWS IoT Greengrass 컨테이너 내의 격리된 런타임 환경에서 실행됩니다.

  이 옵션을 지정하는 경우 컨테이너에 Modbus 디바이스에 대한 액세스 권한을 부여할 시스템 디바이스(`containerParams.devices`에)를 지정해야 합니다.
+ `NoContainer` - 구성 요소가 격리된 런타임 환경에서 실행되지 않습니다.
기본값: `GreengrassContainer`

`containerParams`  <a name="modbus-rtu-protocol-adapter-configuration-containerparams"></a>
<a name="connector-component-container-params-description"></a>(선택 사항) 이 구성 요소에 대한 컨테이너 파라미터를 포함하는 객체입니다. `containerMode`에 `GreengrassContainer`를 지정하면 구성 요소에서 이러한 파라미터를 사용합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`memorySize`  
<a name="connector-component-container-params-memory-size-description"></a>(선택 사항) 구성 요소에 할당되는 메모리 양(킬로바이트)입니다.  
기본값은 512MB(525,312KB)입니다.  
`devices`  
(선택 사항) 구성 요소가 컨테이너에서 액세스할 수 있는 시스템 디바이스를 지정하는 객체입니다.  
컨테이너에서 이 구성 요소를 실행하려면 `ModbusLocalPort` 환경 변수에서 구성하는 시스템 디바이스를 지정해야 합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`0` – 문자열 형태의 배열 인덱스입니다.  
다음 정보를 포함하는 객체입니다.    
`path`  
코어 디바이스의 시스템 디바이스 경로입니다. `ModbusLocalPort`에 대해 구성하는 값과 같은 값이어야 합니다.  
`permission`  
(선택 사항) 컨테이너에서 시스템 디바이스에 액세스할 수 있는 권한입니다. 이 값은 구성 요소가 시스템 디바이스에 대한 읽기/쓰기 액세스 권한을 갖도록 지정하는 `rw`여야 합니다.  
기본값: `rw`  
`addGroupOwner`  
(선택 사항) 구성 요소를 실행하는 시스템 그룹을 시스템 디바이스의 소유자로 추가할지 여부입니다.  
기본값: `true`

`pubsubTopics`  <a name="connector-component-pubsub-topics-parameter"></a>
(선택 사항) 구성 요소에서 메시지를 수신하려고 구독하는 주제를 포함하는 객체입니다. 각 주제와 구성 요소가 AWS IoT Core 또는 로컬 게시/구독 주제의 MQTT 주제를 구독하는지 여부를 지정할 수 있습니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`0` – 문자열 형태의 배열 인덱스입니다.  
다음 정보를 포함하는 객체입니다.    
`type`  
(선택 사항) 이 구성 요소에서 메시지 구독에 사용하는 게시/구독 메시징의 유형입니다. 다음 옵션 중 하나를 선택합니다.  
+ `PUB_SUB` – 로컬 게시/구독 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 섹션을 참조하세요.
+ `IOT_CORE` - AWS IoT Core MQTT 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.
기본값: `PUB_SUB`  
`topic`  
(선택 사항) 구성 요소가 메시지를 수신하기 위해 구독하는 주제입니다. `type`에 `IotCore`를 지정하면 이 주제에서 MQTT 와일드카드(`+` 및 `#`)를 사용할 수 있습니다.

**Example 예: 구성 병합 업데이트(컨테이너 모드)**  <a name="modbus-rtu-protocol-adapter-configuration-example-container-mode"></a>

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "ModbusLocalPort": "/dev/ttyS2"
    }
  },
  "containerMode": "GreengrassContainer",
  "containerParams": {
    "devices": {
      "0": {
        "path": "/dev/ttyS2",
        "permission": "rw",
        "addGroupOwner": true
      }
    }
  }
}
```

**Example 예: 구성 병합 업데이트(컨테이너 없음 모드)**  <a name="modbus-rtu-protocol-adapter-configuration-example-no-container-mode"></a>

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "ModbusLocalPort": "/dev/ttyS2"
    }
  },
  "containerMode": "NoContainer"
}
```

------

## 입력 데이터
<a name="modbus-rtu-protocol-adapter-component-input-data"></a>

이 구성 요소는 다음 주제에 대한 Modbus RTU 요청 파라미터를 수락하고 Modbus RTU 요청을 디바이스에 전송합니다. <a name="connector-component-local-publish"></a>기본적으로 이 구성 요소는 로컬 게시/구독 메시지를 구독합니다. 사용자 지정 구성 요소에서 이 구성 요소로 메시지를 게시하는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 섹션을 참조하세요.

**기본 주제(로컬 게시/구독):** `modbus/adapter/request`

<a name="connector-component-input-properties"></a>메시지는 다음 속성을 수락합니다. 입력 메시지는 JSON 형식이어야 합니다.

`request`  
전송할 Modbus RTU 요청의 파라미터입니다.  
요청 메시지의 셰이프는 메시지가 나타내는 Modbus RTU 요청 유형에 따라 다릅니다. 다음은 모든 요청에 필수적인 속성입니다.  
유형: 다음 정보를 포함하는 `object`입니다.    
`operation`  
실행할 작업의 이름입니다. 예를 들어 Modbus RTU 디바이스에서 코일을 읽으려면 `ReadCoilsRequest`를 지정합니다. 지원되는 작업에 대한 자세한 내용은 [Modbus RTU 요청 및 응답](#modbus-rtu-protocol-adapter-component-requests-responses) 섹션을 참조하세요.  
유형: `string`  
`device`  
요청의 대상 디바이스입니다.  
이 값은 `0`에서 `247` 사이의 정수여야 합니다.  
유형: `integer`
요청에 포함할 다른 파라미터는 작업에 따라 다릅니다. 이 구성 요소는 [순환 중복 검사(CRC)](https://en.wikipedia.org/wiki/Cyclic_redundancy_check)를 처리하여 사용자의 데이터 요청을 확인합니다.  
요청에 `address` 속성이 포함된 경우 해당 값을 정수로 지정해야 합니다. 예를 들어 `"address": 1`입니다.

`id`  <a name="connector-component-input-property-id"></a>
요청에 대한 임의의 ID입니다. 이 속성을 사용하여 입력 요청을 출력 응답에 매핑할 수 있습니다. 이 속성을 지정하면 구성 요소는 응답 객체의 `id` 속성을 해당 값으로 설정합니다.  
유형: `string`

**Example 입력 예: 코일 요청 읽기**  

```
{
  "request": {
    "operation": "ReadCoilsRequest",
    "device": 1,
    "address": 1,
    "count": 1
  },
  "id": "MyRequest"
}
```

## 출력 데이터
<a name="modbus-rtu-protocol-adapter-component-output-data"></a>

 <a name="connector-component-output-data"></a>이 구성 요소는 기본적으로 다음 MQTT 주제에 대한 출력 데이터로 응답을 게시합니다. [레거시 구독 라우터 구성 요소](legacy-subscription-router-component.md)의 구성에서 이 주제를 `subject`로 지정해야 합니다. 사용자 지정 구성 요소에서 이 주제에 대한 메시지를 구독하는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.

**기본 주제(AWS IoT Core MQTT):** `modbus/adapter/response`

응답 메시지의 셰이프는 요청 작업 및 응답 상태에 따라 달라집니다. 예시는 [예제 요청 및 응답](#modbus-rtu-protocol-adapter-component-examples) 섹션을 참조하세요.

모든 응답에는 다음 속성이 포함됩니다.

`response`  
Modbus RTU 디바이스의 응답입니다.  
유형: 다음 정보를 포함하는 `object`입니다.    
`status`  
요청 상태입니다. 상태는 다음 값 중 하나일 수 있습니다.  
+ `Success` – 요청이 유효하고 구성 요소에서 Modbus RTU 네트워크에 요청을 전송했으며 Modbus RTU 네트워크에서 응답을 반환했습니다.
+ `Exception` - 요청이 유효하고 구성 요소에서 Modbus RTU 네트워크에 요청을 전송했으며 Modbus RTU 네트워크에서 예외를 반환했습니다. 자세한 내용은 [응답 상태: 예외](#modbus-rtu-protocol-adapter-component-response-exception) 단원을 참조하십시오.
+ `No Response` - 요청이 잘못되었고, 구성 요소에서 Modbus RTU 네트워크에 요청을 보내기 전에 오류가 발견되었습니다. 자세한 내용은 [응답 상태: 응답 없음](#modbus-rtu-protocol-adapter-component-response-noresponse) 단원을 참조하십시오.  
`operation`  
구성 요소에서 요청한 작업입니다.  
`device`  
구성 요소에서 요청을 전송한 디바이스입니다.  
`payload`  
Modbus RTU 디바이스의 응답입니다. `status`가 `No Response`인 경우 이 객체에는 오류 설명이 있는 `error` 속성만 포함됩니다(예: `[Input/Output] No Response received from the remote unit`).

`id`  
요청의 ID이며, 요청에 해당하는 응답을 식별하는 데 사용할 수 있습니다.

**참고**  
쓰기 작업에 대한 응답은 단순히 요청의 에코일 뿐입니다. 쓰기 응답에 대해 의미 있는 정보가 없더라도 응답의 상태를 확인하여 요청의 성공 여부를 확인하는 것이 좋습니다.

**Example 출력 예: 성공**  

```
{
  "response" : {
    "status" : "success",
    "device": 1,
    "operation": "ReadCoilsRequest",
    "payload": {
      "function_code": 1,
      "bits": [1]
    }
  },
  "id" : "MyRequest"
}
```

**Example 출력 예: 실패**  

```
{
  "response" : {
    "status" : "fail",
    "error_message": "Internal Error",
    "error": "Exception",
    "device": 1,
    "operation": "ReadCoilsRequest",
    "payload": {
      "function_code": 129,
      "exception_code": 2
    }
  },
  "id" : "MyRequest"
}
```

더 많은 예시는 [예제 요청 및 응답](#modbus-rtu-protocol-adapter-component-examples)를 참조합니다.

## Modbus RTU 요청 및 응답
<a name="modbus-rtu-protocol-adapter-component-requests-responses"></a>

이 커넥터는 Modbus RTU 요청 파라미터를 [입력 데이터](#modbus-rtu-protocol-adapter-component-input-data)로 수락하고 응답을 [출력 데이터](#modbus-rtu-protocol-adapter-component-output-data)로 게시합니다.

지원되는 일반적인 작업은 다음과 같습니다.


| 요청 시 작업 이름 | 응답의 함수 코드 | 
| --- | --- | 
| ReadCoilsRequest | 01 | 
| ReadDiscreteInputsRequest | 02 | 
| ReadHoldingRegistersRequest | 03 | 
| ReadInputRegistersRequest | 04 | 
| WriteSingleCoilRequest | 05 | 
| WriteSingleRegisterRequest | 06 | 
| WriteMultipleCoilsRequest | 15 | 
| WriteMultipleRegistersRequest | 16 | 
| MaskWriteRegisterRequest | 22 | 
| ReadWriteMultipleRegistersRequest | 23 | 

### 예제 요청 및 응답
<a name="modbus-rtu-protocol-adapter-component-examples"></a>

다음은 지원되는 작업에 대한 예제 요청 및 응답입니다.

코일 읽기  
**요청 예:**  

```
{
  "request": {
    "operation": "ReadCoilsRequest",
    "device": 1,
    "address": 1,
    "count": 1
  },
  "id": "TestRequest"
}
```
**응답 예:**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "ReadCoilsRequest",
    "payload": {
      "function_code": 1,
      "bits": [1]
    }
  },
  "id" : "TestRequest"
}
```

개별 입력 읽기  
**요청 예:**  

```
{
  "request": {
    "operation": "ReadDiscreteInputsRequest",
    "device": 1,
    "address": 1,
    "count": 1
  },
  "id": "TestRequest"
}
```
**응답 예:**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "ReadDiscreteInputsRequest",
    "payload": {
      "function_code": 2,
      "bits": [1]
    }
  },
  "id" : "TestRequest"
}
```

보류 레지스터 읽기  
**요청 예:**  

```
{
  "request": {
    "operation": "ReadHoldingRegistersRequest",
    "device": 1,
    "address": 1,
    "count": 1
  },
  "id": "TestRequest"
}
```
**응답 예:**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "ReadHoldingRegistersRequest",
    "payload": {
      "function_code": 3,
      "registers": [20,30]
    }
  },
  "id" : "TestRequest"
}
```

입력 레지스터 읽기  
**요청 예:**  

```
{
  "request": {
    "operation": "ReadInputRegistersRequest",
    "device": 1,
    "address": 1,
    "count": 1
  },
  "id": "TestRequest"
}
```

단일 코일 쓰기  
**요청 예:**  

```
{
  "request": {
    "operation": "WriteSingleCoilRequest",
    "device": 1,
    "address": 1,
    "value": 1
  },
  "id": "TestRequest"
}
```
**응답 예:**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "WriteSingleCoilRequest",
    "payload": {
      "function_code": 5,
      "address": 1,
      "value": true
    }
  },
  "id" : "TestRequest"
}
```

단일 레지스터 쓰기  
**요청 예:**  

```
{
  "request": {
    "operation": "WriteSingleRegisterRequest",
    "device": 1,
    "address": 1,
    "value": 1
  },
  "id": "TestRequest"
}
```

다중 코일 쓰기  
**요청 예:**  

```
{
  "request": {
    "operation": "WriteMultipleCoilsRequest",
    "device": 1,
    "address": 1,
    "values": [1,0,0,1]
  },
  "id": "TestRequest"
}
```
**응답 예:**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "WriteMultipleCoilsRequest",
    "payload": {
      "function_code": 15,
      "address": 1,
      "count": 4
    }
  },
  "id" : "TestRequest"
}
```

다중 레지스터 쓰기  
**요청 예:**  

```
{
  "request": {
    "operation": "WriteMultipleRegistersRequest",
    "device": 1,
    "address": 1,
    "values": [20,30,10]
  },
  "id": "TestRequest"
}
```
**응답 예:**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "WriteMultipleRegistersRequest",
    "payload": {
      "function_code": 23,
      "address": 1,
      "count": 3
    }
  },
  "id" : "TestRequest"
}
```

레지스터 쓰기 마스크  
**요청 예:**  

```
{
  "request": {
    "operation": "MaskWriteRegisterRequest",
    "device": 1,
    "address": 1,
    "and_mask": 175,
    "or_mask": 1
  },
  "id": "TestRequest"
}
```
**응답 예:**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "MaskWriteRegisterRequest",
    "payload": {
      "function_code": 22,
      "and_mask": 0,
      "or_mask": 8
    }
  },
  "id" : "TestRequest"
}
```

다중 레지스터 쓰기 읽기  
**요청 예:**  

```
{
  "request": {
    "operation": "ReadWriteMultipleRegistersRequest",
    "device": 1,
    "read_address": 1,
    "read_count": 2,
    "write_address": 3,
    "write_registers": [20,30,40]
  },
  "id": "TestRequest"
}
```
**응답 예:**  

```
{
  "response": {
    "status": "success",
    "device": 1,
    "operation": "ReadWriteMultipleRegistersRequest",
    "payload": {
      "function_code": 23,
      "registers": [10,20,10,20]
    }
  },
  "id" : "TestRequest"
}
```
응답에는 구성 요소에서 읽는 레지스터가 포함됩니다.

### 응답 상태: 예외
<a name="modbus-rtu-protocol-adapter-component-response-exception"></a>

요청 형식이 올바르지만 요청이 성공적으로 완료되지 않으면 예외가 발생합니다. 이 경우 응답에는 다음 정보가 포함됩니다.
+ `status`는 `Exception`으로 설정됩니다.
+ `function_code`는 요청의 코드 함수 \$1 128과 같습니다.
+ `exception_code`에는 예외 코드가 포함되어 있습니다. 자세한 내용은 Modbus 예외 코드를 참조하십시오.

**예:**

```
{
  "response": {
    "status": "fail",
    "error_message": "Internal Error",
    "error": "Exception",
    "device": 1,
    "operation": "ReadCoilsRequest",
    "payload": {
      "function_code": 129,
      "exception_code": 2
    }
  },
  "id": "TestRequest"
}
```

### 응답 상태: 응답 없음
<a name="modbus-rtu-protocol-adapter-component-response-noresponse"></a>

이 커넥터는 Modbus 요청에 대해 확인 점검을 수행합니다. 예를 들어 잘못된 형식과 누락된 필드가 있는지 점검합니다. 확인이 실패하면 커넥터는 요청을 전송하지 않습니다. 그 대신 다음 정보를 포함하는 응답을 반환합니다.
+ `status`는 `No Response`으로 설정됩니다.
+ `error`에는 오류 이유가 포함되어 있습니다.
+ `error_message`에는 오류 메시지가 포함되어 있습니다.

**예**:

```
{
  "response": {
    "status": "fail",
    "error_message": "Invalid address field. Expected <type 'int'>, got <type 'str'>",
    "error": "No Response",
    "device": 1,
    "operation": "ReadCoilsRequest",
    "payload": {
      "error": "Invalid address field. Expected Expected <type 'int'>, got <type 'str'>"
    }
  },
  "id": "TestRequest"
}
```

요청이 존재하지 않는 장치를 대상으로 하거나 Modbus RTU 네트워크가 작동하지 않는 경우 응답 없음 형식을 사용하는 `ModbusIOException`가 발생할 수 있습니다.

```
{
  "response": {
    "status": "fail",
    "error_message": "[Input/Output] No Response received from the remote unit",
    "error": "No Response",
    "device": 1,
    "operation": "ReadCoilsRequest",
    "payload": {
      "error": "[Input/Output] No Response received from the remote unit"
    }
  },
  "id": "TestRequest"
}
```

## 로컬 로그 파일
<a name="modbus-rtu-protocol-adapter-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

```
/greengrass/v2/logs/aws.greengrass.Modbus.log
```

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. 를 AWS IoT Greengrass 루트 폴더의 경로`/greengrass/v2`로 바꿉니다.

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.Modbus.log
  ```

## 라이선스
<a name="modbus-rtu-protocol-adapter-component-licenses"></a>

이 구성 요소에는 다음 타사 소프트웨어/라이선스가 포함되어 있습니다.
+ [pymodbus](https://github.com/riptideio/pymodbus/blob/master/README.rst)/BSD 라이선스
+ [pyserial](https://github.com/pyserial/pyserial)/BSD 라이선스

<a name="component-core-software-license"></a>이 구성 요소는 [Greengrass 코어 소프트웨어 라이선스 계약](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)에 따라 릴리스됩니다.

## Changelog
<a name="modbus-rtu-protocol-adapter-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.1.11  | Greengrass nucleus 버전 2.15.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.10  | Greengrass nucleus 버전 2.14.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.9  | Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.8  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.7  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.6  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.5  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/modbus-rtu-protocol-adapter-component.html) | 
|  2.1.4  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.3  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.2  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.1  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/modbus-rtu-protocol-adapter-component.html)  | 
|  2.0.8  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.7  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.6  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.5  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.4  |  Greengrass nucleus 버전 2.1.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.3  |  초기 버전입니다.  | 

# MQTT 브리지
<a name="mqtt-bridge-component"></a>

MQTT 브리지 구성 요소(`aws.greengrass.clientdevices.mqtt.Bridge`)는 클라이언트 디바이스, 로컬 Greengrass 게시/구독 및 간에 MQTT 메시지를 릴레이합니다 AWS IoT Core. 이 구성 요소를 사용하여 사용자 지정 구성 요소의 클라이언트 디바이스에서 보내는 MQTT 메시지에 대한 조치를 취하고 클라이언트 디바이스를 AWS 클라우드와 동기화할 수 있습니다.

**참고**  <a name="client-device-component-context"></a>
클라이언트 디바이스는 Greengrass 코어 디바이스에 연결되어 처리할 MQTT 메시지와 데이터를 보내는 로컬 IoT 디바이스입니다. 자세한 내용은 [로컬 IoT 디바이스와 상호 작용](interact-with-local-iot-devices.md) 단원을 참조하십시오.

이 구성 요소를 사용하여 다음 메시지 브로커 간에 메시지를 릴레이할 수 있습니다.
+ 로컬 MQTT - 로컬 MQTT 브로커는 클라이언트 디바이스와 코어 디바이스 간의 메시지를 처리합니다.
+ 로컬 게시/구독 - 로컬 Greengrass 메시지 브로커는 코어 디바이스에 있는 구성 요소 간의 메시지를 처리합니다. Greengrass 구성 요소에서 이러한 메시지를 조작하는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 섹션을 참조하세요.
+ AWS IoT Core - AWS IoT Core MQTT 브로커는 IoT 디바이스와 AWS 클라우드 대상 간의 메시지를 처리합니다. Greengrass 구성 요소에서 이러한 메시지를 조작하는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.

**Topics**
+ [버전](#mqtt-bridge-component-versions)
+ [유형](#mqtt-bridge-component-type)
+ [운영 체제](#mqtt-bridge-component-os-support)
+ [요구 사항](#mqtt-bridge-component-requirements)
+ [종속성](#mqtt-bridge-component-dependencies)
+ [구성](#mqtt-bridge-component-configuration)
+ [로컬 로그 파일](#mqtt-bridge-component-log-file)
+ [Changelog](#mqtt-bridge-component-changelog)

## 버전
<a name="mqtt-bridge-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.3.x
+ 2.2.x
+ 2.1.x
+ 2.0.x

## 유형
<a name="mqtt-bridge-component-type"></a>

<a name="public-component-type-plugin-para1"></a>이 구성 요소는 플러그인 구성 요소(`aws.greengrass.plugin`)입니다. [Greengrass nucleus는](greengrass-nucleus-component.md) 이 구성 요소를 nucleus와 동일한 Java 가상 머신(JVM)에서 실행합니다. 코어 디바이스에서 구성 요소의 버전을 변경하면 nucleus가 다시 시작됩니다.

<a name="public-component-type-plugin-para2"></a>이 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 단원을 참조하십시오.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="mqtt-bridge-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="mqtt-bridge-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.
+ 기본 포트 8883 이외의 포트를 사용하도록 코어 디바이스의 MQTT 브로커 구성 요소를 구성하는 경우 MQTT 브리지 v2.1.0 이상을 사용해야 합니다. 브로커가 작동하는 포트에 연결하도록 구성합니다.
+ MQTT 브리지 구성 요소는 VPC에서 실행할 수 있습니다.

## 종속성
<a name="mqtt-bridge-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#mqtt-bridge-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.3.2 ]

다음 표에는 이 구성 요소의 버전 2.3.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.6.0 | 하드 | 

------
#### [ 2.3.0 and 2.3.1 ]

다음 표에는 이 구성 요소의 버전 2.3.0 및 2.3.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.5.0 | 하드 | 

------
#### [ 2.2.5 and 2.2.6 ]

다음 표에는 이 구성 요소의 버전 2.2.5 및 2.2.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.5.0 | 하드 | 

------
#### [ 2.2.3 and 2.2.4 ]

다음 표에는 이 구성 요소의 버전 2.2.3 및 2.2.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.4.0 | 하드 | 

------
#### [ 2.2.0 – 2.2.2 ]

다음 표에는 이 구성 요소의 버전 2.2.0\$12.2.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.3.0 | 하드 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.0.0 <2.2.0 | 하드 | 

------
#### [ 2.0.0 to 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.0.0\$12.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.0.0 <2.1.0 | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="mqtt-bridge-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

------
#### [ 2.3.0 – 2.3.2 ]

`mqttTopicMapping`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>브리지할 주제 매핑입니다. 이 구성 요소는 소스 주제에 대한 메시지를 구독하고 수신하는 메시지를 대상 주제에 게시합니다. 각 주제 매핑에서는 주제, 소스 유형 및 대상 유형을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>이 주제 매핑의 이름입니다. *topicMappingNameKey*를 이 주제 매핑을 식별하는 데 도움이 되는 이름으로 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topic`  
소스 브로커와 대상 브로커를 브리지할 주제 또는 주제 필터입니다.  
`+` 및 `#` MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 모든 주제에 대한 메시지를 릴레이할 수 있습니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.  
`Pubsub` 소스 브로커와 함께 MQTT 주제 와일드카드를 사용하려면 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md) 의 v2.6.0 이상을 사용해야 합니다.  
`targetTopicPrefix`  
이 구성 요소가 메시지를 릴레이할 때 대상 주제에 추가할 접두사입니다.  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
소스 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
대상 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.

mqtt5RouteOptions  
(선택 사항) 소스 주제에서 대상 주제로 메시지를 브리징하기 위한 주제 매핑을 구성하는 옵션을 제공합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
*mqtt5RouteOptionsNameKey*  
주제 매핑에 대한 경로 옵션의 이름입니다. *mqtt5RouteOptionsNameKey*를 `mqttTopicMapping` 필드에 정의된 일치하는 *topicMappingNameKey*로 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
noLocal  
(선택 사항) 활성화하는 경우 브리지는 브리지 자체에서 게시한 주제에 대한 메시지를 전달하지 않습니다. 다음과 같은 루프를 방지하려면 이 옵션을 사용합니다.  

```
{
    "mqtt5RouteOptions": {
        "toIoTCore": {
            "noLocal": true
        }
    },
    "mqttTopicMapping": {
        "toIoTCore": {
            "topic": "device",
            "source": "LocalMqtt",
            "target": "IotCore"
        },
        "toLocal": {
            "topic": "device",
            "source": "IotCore",
            "target": "LocalMqtt"
        }
    }
}
```
`noLocal`는 `source`가 `LocalMqtt`인 경로에 대해서만 지원됩니다.  
기본값: false  
retainAsPublished  
(선택 사항) 활성화하는 경우 브리지에서 전달하는 메시지에는 해당 경로에 대해 브로커에 게시된 메시지와 동일한 `retain` 플래그가 지정됩니다.  
`retainAsPublished`는 `source`가 `LocalMqtt`인 경로에 대해서만 지원됩니다.  
기본값: false

mqtt  
(선택 사항) 로컬 브로커와 통신하기 위한 MQTT 프로토콜 설정입니다.    
version  
(선택 사항) 브리지에서 로컬 브로커와 통신하는 데 사용되는 MQTT 프로토콜 버전입니다. nucleus 구성에서 선택한 MQTT 버전과 동일해야 합니다.  
다음 중에서 선택합니다.  
+ `mqtt3`
+ `mqtt5`
`mqttTopicMapping` 객체의 `source` 또는 `target` 필드가 `LocalMqtt`로 설정된 경우 MQTT 브로커를 배포해야 합니다. `mqtt5` 옵션을 선택하는 경우 [MQTT 5 브로커(EMQX)](mqtt-broker-emqx-component.md)를 사용해야 합니다.  
기본값: `mqtt3`  
ackTimeoutSeconds  
(선택 사항) 작업에 실패하기 전에 PUBACK, SUBACK 또는 UNSUBACK 패킷을 기다리는 시간 간격입니다.  
기본값: 60  
connAckTimeoutMs  
(선택 사항) 연결을 종료하기 전에 CONNACK 패킷을 기다리는 시간 간격입니다.  
기본값: 20000(20초)  
pingTimeoutMs  
(선택 사항) 브리즈가 로컬 브로커에서 PINGACK 메시지를 수신하기 위해 대기하는 시간(밀리초)입니다. 대기 시간이 제한 시간을 초과하면 브리지가 닫히고 MQTT 연결을 다시 엽니다. 이 값은 `keepAliveTimeoutSeconds`보다 작아야 합니다.  
기본값: 30000(30초)  
keepAliveTimeoutSeconds  
(선택 사항) MQTT 연결을 유지하기 위해 브리지가 보내는 각 PING 메시지 사이의 시간(초)입니다. 이 값은 `pingTimeoutMs`보다 커야 합니다.  
기본값: 60  
maxReconnectDelayMs  
(선택 사항) MQTT가 다시 연결하는 데 걸리는 최대 시간(초)입니다.  
기본값: 30000(30초)  
minReconnectDelayMs  
(선택 사항) MQTT가 다시 연결하는 데 걸리는 최소 시간(초)입니다.  
receiveMaximum  
(선택 사항) 브리지가 보낼 수 있는 확인되지 않은 최대 QoS1 패킷 수입니다.  
기본값: 100  
maximumPacketSize  
클라이언트가 MQTT 패킷에 대해 허용할 최대 바이트 수입니다.  
기본값: null(제한 없음)  
sessionExpiryInterval  
(선택 사항) 브리지와 로컬 브로커 간에 세션이 지속되도록 요청할 수 있는 시간(초)입니다.  
기본값: 4294967295(세션이 만료되지 않음)

`brokerUri`  <a name="mqtt-bridge-component-configuration-broker-uri"></a>
(선택 사항) 로컬 MQTT 브로커의 URI입니다. 기본 포트 8883이 아닌 다른 포트를 사용하도록 MQTT 브로커를 구성하는 경우 이 파라미터를 지정해야 합니다. `ssl://localhost:port` 형식을 사용하고 *port*를 MQTT 브로커가 작동하는 포트로 바꿉니다.  
기본값: `ssl://localhost:8883`

startupTimeoutSeconds  
(선택 사항) 구성 요소가 시작되는 최대 시간(초)입니다. 이 제한 시간이 초과되면 구성 요소의 상태가 `BROKEN`으로 변경됩니다.  
기본값: `120`

**Example 예: 구성 병합 업데이트**  <a name="mqtt-bridge-component-configuration-example-with-prefix"></a>
아래에 나와 있는 구성 업데이트 예에서는 다음을 지정합니다.  
+ `clients/+/hello/world` 주제 필터와 일치하는 주제에 AWS IoT Core 대해 클라이언트 디바이스에서 로 메시지를 릴레이합니다.
+ `clients/+/detections` 주제 필터와 일치하는 주제에 대한 메시지를 클라이언트 디바이스에서 로컬 게시/구독으로 릴레이하고 대상 주제에 `events/input/` 접두사를 추가합니다. 결과 대상 주제는 `events/input/clients/+/detections` 주제 필터와 일치합니다.
+ `clients/+/status` 주제 필터와 일치하는 주제에 AWS IoT Core 대해 클라이언트 디바이스에서 로 메시지를 릴레이하고 대상 주제에 `$aws/rules/StatusUpdateRule/` 접두사를 추가합니다. 이 예제에서는 이러한 메시지를 `StatusUpdateRule`이라는 [AWS IoT 규칙](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html)으로 직접 릴레이하여 [기본 수집](https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html)을 사용하는 비용을 절감합니다.

```
{
  "mqttTopicMapping": {
    "ClientDeviceHelloWorld": {
      "topic": "clients/+/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    },
    "ClientDeviceEvents": {
      "topic": "clients/+/detections",
      "targetTopicPrefix": "events/input/",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "ClientDeviceCloudStatusUpdate": {
      "topic": "clients/+/status",
      "targetTopicPrefix": "$aws/rules/StatusUpdateRule/",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

**Example 예: MQTT 5 구성**  
다음 예제 구성에서는 다음을 업데이트합니다.  
+ 브리지가 로컬 브로커와 함께 MQTT 5 프로토콜을 사용할 수 있도록 합니다.
+ `ClientDeviceHelloWorld` 주제 매핑에 대한 게시된 설정으로 MQTT 유지를 구성합니다.

```
{
  "mqttTopicMapping": {
    "ClientDeviceHelloWorld": {
      "topic": "clients/+/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  },
  "mqtt5RouteOptions": {
    "ClientDeviceHelloWorld": {
      "retainAsPublished": true
    }
  },
  "mqtt": {
    "version": "mqtt5"
  }
}
```

------
#### [ 2.2.6 ]

`mqttTopicMapping`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>브리지할 주제 매핑입니다. 이 구성 요소는 소스 주제에 대한 메시지를 구독하고 수신하는 메시지를 대상 주제에 게시합니다. 각 주제 매핑에서는 주제, 소스 유형 및 대상 유형을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>이 주제 매핑의 이름입니다. *topicMappingNameKey*를 이 주제 매핑을 식별하는 데 도움이 되는 이름으로 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topic`  
소스 브로커와 대상 브로커를 브리지할 주제 또는 주제 필터입니다.  
`+` 및 `#` MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 모든 주제에 대한 메시지를 릴레이할 수 있습니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.  
`Pubsub` 소스 브로커와 함께 MQTT 주제 와일드카드를 사용하려면 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md) 의 v2.6.0 이상을 사용해야 합니다.  
`targetTopicPrefix`  
이 구성 요소가 메시지를 릴레이할 때 대상 주제에 추가할 접두사입니다.  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
소스 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
대상 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.

`brokerUri`  <a name="mqtt-bridge-component-configuration-broker-uri"></a>
(선택 사항) 로컬 MQTT 브로커의 URI입니다. 기본 포트 8883이 아닌 다른 포트를 사용하도록 MQTT 브로커를 구성하는 경우 이 파라미터를 지정해야 합니다. `ssl://localhost:port` 형식을 사용하고 *port*를 MQTT 브로커가 작동하는 포트로 바꿉니다.  
기본값: `ssl://localhost:8883`

startupTimeoutSeconds  
(선택 사항) 구성 요소가 시작되는 최대 시간(초)입니다. 이 제한 시간이 초과되면 구성 요소의 상태가 `BROKEN`으로 변경됩니다.  
기본값: `120`

**Example 예: 구성 병합 업데이트**  <a name="mqtt-bridge-component-configuration-example-with-prefix"></a>
아래에 나와 있는 구성 업데이트 예에서는 다음을 지정합니다.  
+ `clients/+/hello/world` 주제 필터와 일치하는 주제에 AWS IoT Core 대해 클라이언트 디바이스에서 로 메시지를 릴레이합니다.
+ `clients/+/detections` 주제 필터와 일치하는 주제에 대한 메시지를 클라이언트 디바이스에서 로컬 게시/구독으로 릴레이하고 대상 주제에 `events/input/` 접두사를 추가합니다. 결과 대상 주제는 `events/input/clients/+/detections` 주제 필터와 일치합니다.
+ `clients/+/status` 주제 필터와 일치하는 주제에 AWS IoT Core 대해 클라이언트 디바이스에서 로 메시지를 릴레이하고 대상 주제에 `$aws/rules/StatusUpdateRule/` 접두사를 추가합니다. 이 예제에서는 이러한 메시지를 `StatusUpdateRule`이라는 [AWS IoT 규칙](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html)으로 직접 릴레이하여 [기본 수집](https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html)을 사용하는 비용을 절감합니다.

```
{
  "mqttTopicMapping": {
    "ClientDeviceHelloWorld": {
      "topic": "clients/+/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    },
    "ClientDeviceEvents": {
      "topic": "clients/+/detections",
      "targetTopicPrefix": "events/input/",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "ClientDeviceCloudStatusUpdate": {
      "topic": "clients/+/status",
      "targetTopicPrefix": "$aws/rules/StatusUpdateRule/",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

------
#### [ 2.2.0 - 2.2.5 ]

`mqttTopicMapping`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>브리지할 주제 매핑입니다. 이 구성 요소는 소스 주제에 대한 메시지를 구독하고 수신하는 메시지를 대상 주제에 게시합니다. 각 주제 매핑에서는 주제, 소스 유형 및 대상 유형을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>이 주제 매핑의 이름입니다. *topicMappingNameKey*를 이 주제 매핑을 식별하는 데 도움이 되는 이름으로 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topic`  
소스 브로커와 대상 브로커를 브리지할 주제 또는 주제 필터입니다.  
`+` 및 `#` MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 모든 주제에 대한 메시지를 릴레이할 수 있습니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.  
`Pubsub` 소스 브로커와 함께 MQTT 주제 와일드카드를 사용하려면 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md) 의 v2.6.0 이상을 사용해야 합니다.  
`targetTopicPrefix`  
이 구성 요소가 메시지를 릴레이할 때 대상 주제에 추가할 접두사입니다.  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
소스 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
대상 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.

`brokerUri`  <a name="mqtt-bridge-component-configuration-broker-uri"></a>
(선택 사항) 로컬 MQTT 브로커의 URI입니다. 기본 포트 8883이 아닌 다른 포트를 사용하도록 MQTT 브로커를 구성하는 경우 이 파라미터를 지정해야 합니다. `ssl://localhost:port` 형식을 사용하고 *port*를 MQTT 브로커가 작동하는 포트로 바꿉니다.  
기본값: `ssl://localhost:8883`

**Example 예: 구성 병합 업데이트**  <a name="mqtt-bridge-component-configuration-example-with-prefix"></a>
아래에 나와 있는 구성 업데이트 예에서는 다음을 지정합니다.  
+ `clients/+/hello/world` 주제 필터와 일치하는 주제에 AWS IoT Core 대해 클라이언트 디바이스에서 로 메시지를 릴레이합니다.
+ `clients/+/detections` 주제 필터와 일치하는 주제에 대한 메시지를 클라이언트 디바이스에서 로컬 게시/구독으로 릴레이하고 대상 주제에 `events/input/` 접두사를 추가합니다. 결과 대상 주제는 `events/input/clients/+/detections` 주제 필터와 일치합니다.
+ `clients/+/status` 주제 필터와 일치하는 주제에 AWS IoT Core 대해 클라이언트 디바이스에서 로 메시지를 릴레이하고 대상 주제에 `$aws/rules/StatusUpdateRule/` 접두사를 추가합니다. 이 예제에서는 이러한 메시지를 `StatusUpdateRule`이라는 [AWS IoT 규칙](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html)으로 직접 릴레이하여 [기본 수집](https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html)을 사용하는 비용을 절감합니다.

```
{
  "mqttTopicMapping": {
    "ClientDeviceHelloWorld": {
      "topic": "clients/+/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    },
    "ClientDeviceEvents": {
      "topic": "clients/+/detections",
      "targetTopicPrefix": "events/input/",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "ClientDeviceCloudStatusUpdate": {
      "topic": "clients/+/status",
      "targetTopicPrefix": "$aws/rules/StatusUpdateRule/",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

------
#### [ 2.1.x ]

`mqttTopicMapping`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping"></a>
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>브리지할 주제 매핑입니다. 이 구성 요소는 소스 주제에 대한 메시지를 구독하고 수신하는 메시지를 대상 주제에 게시합니다. 각 주제 매핑에서는 주제, 소스 유형 및 대상 유형을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>이 주제 매핑의 이름입니다. *topicMappingNameKey*를 이 주제 매핑을 식별하는 데 도움이 되는 이름으로 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topic`  
소스 브로커와 대상 브로커를 브리지할 주제 또는 주제 필터입니다.  
`LocalMqtt` 또는 `IotCore` 소스 브로커를 지정하는 경우 `+` 및 `#` MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 모든 주제에 대한 메시지를 릴레이할 수 있습니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
소스 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
대상 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.

`brokerUri`  <a name="mqtt-bridge-component-configuration-broker-uri"></a>
(선택 사항) 로컬 MQTT 브로커의 URI입니다. 기본 포트 8883이 아닌 다른 포트를 사용하도록 MQTT 브로커를 구성하는 경우 이 파라미터를 지정해야 합니다. `ssl://localhost:port` 형식을 사용하고 *port*를 MQTT 브로커가 작동하는 포트로 바꿉니다.  
기본값: `ssl://localhost:8883`

**Example 예: 구성 병합 업데이트**  <a name="mqtt-bridge-component-configuration-example-no-prefix"></a>
다음 예제 구성 업데이트는 `clients/MyClientDevice1/hello/world` 및 `clients/MyClientDevice2/hello/world` 주제에서 클라이언트 디바이스의 메시지를 AWS IoT Core 로 릴레이하도록 지정합니다.  

```
{
  "mqttTopicMapping": {
    "ClientDevice1HelloWorld": {
      "topic": "clients/MyClientDevice1/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    },
    "ClientDevice2HelloWorld": {
      "topic": "clients/MyClientDevice2/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

------
#### [ 2.0.x ]

`mqttTopicMapping`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping"></a>
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-description"></a>브리지할 주제 매핑입니다. 이 구성 요소는 소스 주제에 대한 메시지를 구독하고 수신하는 메시지를 대상 주제에 게시합니다. 각 주제 매핑에서는 주제, 소스 유형 및 대상 유형을 정의합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topicMappingNameKey`  
<a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-name-key-description"></a>이 주제 매핑의 이름입니다. *topicMappingNameKey*를 이 주제 매핑을 식별하는 데 도움이 되는 이름으로 바꿉니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`topic`  
소스 브로커와 대상 브로커를 브리지할 주제 또는 주제 필터입니다.  
`LocalMqtt` 또는 `IotCore` 소스 브로커를 지정하는 경우 `+` 및 `#` MQTT 주제 와일드카드를 사용하여 주제 필터와 일치하는 모든 주제에 대한 메시지를 릴레이할 수 있습니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT 주제](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.  
`source`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-source"></a>
소스 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.  
`target`  <a name="mqtt-bridge-component-configuration-mqtt-topic-mapping-target"></a>
대상 메시지 브로커입니다. 다음 옵션 중 하나를 선택합니다.  <a name="mqtt-bridge-component-configuration-topic-types"></a>
+ `LocalMqtt` - 클라이언트 디바이스가 통신하는 로컬 MQTT 브로커입니다.
+ `Pubsub` – 로컬 Greengrass 게시/구독 메시지 브로커입니다.
+ `IotCore` - AWS IoT Core MQTT 메시지 브로커입니다.
**참고**  <a name="mqtt-bridge-component-iotcore-qos-1-note"></a>
MQTT 브리지는 클라이언트 디바이스가 QoS 0을 사용하여 로컬 MQTT 브로커를 게시하고 구독 AWS IoT Core하는 경우에도 QoS 1을 사용하여 게시하고 구독합니다. 따라서 로컬 MQTT 브로커의 클라이언트 디바이스에서 MQTT 메시지를 릴레이할 때 추가 지연 시간이 관찰될 수 있습니다 AWS IoT Core. 코어 디바이스의 MQTT 구성에 대한 자세한 내용은 [MQTT 제한 시간 및 캐시 설정 구성](configure-greengrass-core-v2.md#configure-mqtt) 섹션을 참조하세요.
`source` 및 `target`은 서로 달라야 합니다.

**Example 예: 구성 병합 업데이트**  <a name="mqtt-bridge-component-configuration-example-no-prefix"></a>
다음 예제 구성 업데이트는 `clients/MyClientDevice1/hello/world` 및 `clients/MyClientDevice2/hello/world` 주제에서 클라이언트 디바이스의 메시지를 AWS IoT Core 로 릴레이하도록 지정합니다.  

```
{
  "mqttTopicMapping": {
    "ClientDevice1HelloWorld": {
      "topic": "clients/MyClientDevice1/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    },
    "ClientDevice2HelloWorld": {
      "topic": "clients/MyClientDevice2/hello/world",
      "source": "LocalMqtt",
      "target": "IotCore"
    }
  }
}
```

------

## 로컬 로그 파일
<a name="mqtt-bridge-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="mqtt-bridge-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.3.2  |  [클라이언트 디바이스 인증](client-device-auth-component.md) 버전 2.5.0 릴리스에 대한 버전이 업데이트되었습니다.  | 
| 2.3.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
| 2.3.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.6  |  <a name="changelog-mqtt-bridge-2.2.6"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.5  |  [클라이언트 디바이스 인증](client-device-auth-component.md) 버전 2.4.0 릴리스에 대한 버전이 업데이트되었습니다.  | 
|  2.2.4  |  Greengrass [클라이언트 디바이스 인증](client-device-auth-component.md) 버전 2.3.0 릴리스에 대한 버전이 업데이트되었습니다.  | 
|  2.2.3  |  이 버전에는 버그 수정과 개선 사항이 포함되어 있습니다.  | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.2.0  |  <a name="changelog-mqtt-bridge-2.2.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.1.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-bridge-component.html)  | 
|  2.0.1  |  이 버전에는 버그 수정 및 개선 사항이 포함됩니다.  | 
|  2.0.0  |  초기 버전입니다.  | 

# MQTT 3.1.1 브로커(Moquette)
<a name="mqtt-broker-moquette-component"></a>

EMQX MQTT 브로커 구성 요소(`aws.greengrass.clientdevices.mqtt.Moquette`)는 클라이언트 디바이스와 Greengrass 코어 디바이스 간의 MQTT 메시지를 처리합니다. 이 구성 요소는 [Moquette MQTT 브로커](https://github.com/moquette-io/moquette)의 수정된 버전을 제공합니다. 경량 MQTT 브로커를 실행하려면 이 MQTT 브로커를 배포합니다. MQTT 브로커를 선택하는 방법에 대한 자세한 내용은 [MQTT 브로커 선택](choose-local-mqtt-broker.md) 섹션을 참조하세요.

이 브로커는 MQTT 3.1.1 프로토콜을 구현합니다. 이 프로토콜에는 QoS 0, QoS 1, QoS 2 보존된 메시지, 유언 메시지 및 영구 세션에 대한 지원이 포함됩니다.

**참고**  <a name="client-device-component-context"></a>
클라이언트 디바이스는 Greengrass 코어 디바이스에 연결되어 처리할 MQTT 메시지와 데이터를 보내는 로컬 IoT 디바이스입니다. 자세한 내용은 [로컬 IoT 디바이스와 상호 작용](interact-with-local-iot-devices.md) 단원을 참조하십시오.

**Topics**
+ [버전](#mqtt-broker-moquette-component-versions)
+ [유형](#mqtt-broker-moquette-component-type)
+ [운영 체제](#mqtt-broker-moquette-component-os-support)
+ [요구 사항](#mqtt-broker-moquette-component-requirements)
+ [종속성](#mqtt-broker-moquette-component-dependencies)
+ [구성](#mqtt-broker-moquette-component-configuration)
+ [로컬 로그 파일](#mqtt-broker-moquette-component-log-file)
+ [Changelog](#mqtt-broker-moquette-component-changelog)

## 버전
<a name="mqtt-broker-moquette-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.3.x
+ 2.2.x
+ 2.1.x
+ 2.0.x

## 유형
<a name="mqtt-broker-moquette-component-type"></a>

<a name="public-component-type-plugin-para1"></a>이 구성 요소는 플러그인 구성 요소(`aws.greengrass.plugin`)입니다. [Greengrass nucleus는](greengrass-nucleus-component.md) 이 구성 요소를 nucleus와 동일한 Java 가상 머신(JVM)에서 실행합니다. 코어 디바이스에서 구성 요소의 버전을 변경하면 nucleus가 다시 시작됩니다.

<a name="public-component-type-plugin-para2"></a>이 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 단원을 참조하십시오.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="mqtt-broker-moquette-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="mqtt-broker-moquette-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.
+ 코어 디바이스는 MQTT 브로커가 작동하는 포트에서 연결을 허용할 수 있어야 합니다. 이 구성 요소는 기본적으로 포트 8883에서 MQTT 브로커를 실행합니다. 이 구성 요소를 구성할 때 다른 포트를 지정할 수 있습니다.

  <a name="mqtt-broker-configuration-mqtt-bridge-requirement"></a>다른 포트를 지정하고 [MQTT 브리지 구성 요소](mqtt-bridge-component.md)를 사용하여 MQTT 메시지를 다른 브로커에 릴레이하는 경우 MQTT 브리지 v2.1.0 이상을 사용해야 합니다. 이 구성 요소에서 MQTT 브로커가 작동하는 포트를 사용하도록 구성합니다.

  <a name="mqtt-broker-configuration-ip-detector-requirement"></a>다른 포트를 지정하고 [IP 감지기 구성 요소](ip-detector-component.md)를 사용하여 MQTT 브로커 엔드포인트를 관리하는 경우 IP 감지기 v2.1.0 이상을 사용해야 합니다. 이 구성 요소에서 MQTT 브로커가 작동하는 포트를 보고하도록 구성합니다.
+ Moquette MQTT 브로커 구성 요소는 VPC에서 실행할 수 있습니다.

## 종속성
<a name="mqtt-broker-moquette-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#mqtt-broker-moquette-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.3.7 ]

다음 표에는 이 구성 요소의 버전 2.3.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.6.0 | 하드 | 

------
#### [ 2.3.2 – 2.3.6 ]

다음 표에는 이 구성 요소의 버전 2.3.2\$12.3.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.5.0 | 하드 | 

------
#### [ 2.3.0 and 2.3.1 ]

다음 표에는 이 구성 요소의 버전 2.3.0 및 2.3.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.4.0 | 하드 | 

------
#### [ 2.2.0 ]

다음 표에는 이 구성 요소의 버전 2.2.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.3.0 | 하드 | 

------
#### [ 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.0.0 <2.2.0 | 하드 | 

------
#### [ 2.0.0 - 2.0.2 ]

다음 표에는 이 구성 요소의 버전 2.0.0\$12.0.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.0.0 <2.1.0 | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="mqtt-broker-moquette-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

`moquette`  
(선택 사항) 사용할 [Moquette MQTT 브로커](https://github.com/moquette-io/moquette) 구성입니다. 이 구성 요소에서 Moqeutte 구성 옵션의 하위 집합을 구성할 수 있습니다. 자세한 내용은 [Moquette 구성 파일](https://github.com/moquette-io/moquette/blob/main/distribution/src/main/resources/moquette.conf) 의 인라인 설명을 참조하세요.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`ssl_port`  
(선택 사항) MQTT 브로커가 작동하는 포트입니다.  
<a name="mqtt-broker-configuration-mqtt-bridge-requirement"></a>다른 포트를 지정하고 [MQTT 브리지 구성 요소](mqtt-bridge-component.md)를 사용하여 MQTT 메시지를 다른 브로커에 릴레이하는 경우 MQTT 브리지 v2.1.0 이상을 사용해야 합니다. 이 구성 요소에서 MQTT 브로커가 작동하는 포트를 사용하도록 구성합니다.  
<a name="mqtt-broker-configuration-ip-detector-requirement"></a>다른 포트를 지정하고 [IP 감지기 구성 요소](ip-detector-component.md)를 사용하여 MQTT 브로커 엔드포인트를 관리하는 경우 IP 감지기 v2.1.0 이상을 사용해야 합니다. 이 구성 요소에서 MQTT 브로커가 작동하는 포트를 보고하도록 구성합니다.
기본값: `8883`  
`host`  
(선택 사항) MQTT 브로커가 바인딩되는 인터페이스입니다. 예를 들어 MQTT 브로커가 특정 로컬 네트워크에만 바인딩되도록 이 파라미터를 변경할 수 있습니다.  
기본값: `0.0.0.0`(모든 네트워크 인터페이스에 바인딩됨)

startupTimeoutSeconds  
(선택 사항) 구성 요소가 시작되는 최대 시간(초)입니다. 이 제한 시간이 초과되면 구성 요소의 상태가 `BROKEN`으로 변경됩니다.  
기본값: `120`

**Example 예: 구성 병합 업데이트**  
다음 예제 구성에서는 포트 443에서 MQTT 브로커를 작동하도록 지정합니다.  

```
{
  "moquette": {
    "ssl_port": "443"
  }
}
```

## 로컬 로그 파일
<a name="mqtt-broker-moquette-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="mqtt-broker-moquette-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.3.7  |  [클라이언트 디바이스 인증](client-device-auth-component.md) 버전 2.5.0 릴리스에 대한 버전이 업데이트되었습니다.  | 
|  2.3.6  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)  | 
|  2.3.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)  | 
|  2.3.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)  | 
|  2.3.3  |  <a name="changelog-mqtt-broker-moquette-2.3.3"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)  | 
|  2.3.2  |  [클라이언트 디바이스 인증](client-device-auth-component.md) 버전 2.4.0 릴리스에 대한 버전이 업데이트되었습니다.  | 
|  2.3.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)  | 
|  2.3.0  |  인증서 체인에 대한 지원을 추가합니다.  | 
|  2.2.0  |  [클라이언트 디바이스 인증](client-device-auth-component.md) 버전 2.2.0 릴리스에 대한 버전이 업데이트되었습니다.  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)  | 
|  2.0.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)  | 
|  2.0.1  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.0  |  초기 버전입니다.  | 

# MQTT 5 브로커(EMQX)
<a name="mqtt-broker-emqx-component"></a>

EMQX MQTT 브로커 구성 요소(`aws.greengrass.clientdevices.mqtt.EMQX`)는 클라이언트 디바이스와 Greengrass 코어 디바이스 간의 MQTT 메시지를 처리합니다. 이 구성 요소는 [EMQX MQTT 5.0 브로커](https://www.emqx.com/en/mqtt/mqtt5)의 수정된 버전을 제공합니다. 클라이언트 디바이스와 코어 디바이스 간의 통신에서 MQTT 5 기능을 사용하려면 이 MQTT 브로커를 배포하세요. MQTT 브로커를 선택하는 방법에 대한 자세한 내용은 [MQTT 브로커 선택](choose-local-mqtt-broker.md) 섹션을 참조하세요.

이 브로커는 MQTT 5.0 프로토콜을 구현합니다. 이 프로토콜에는 세션 및 메시지 만료 간격, 사용자 속성, 공유 구독, 주제 별칭 등에 대한 지원이 포함되어 있습니다. MQTT 5는 하위 버전 MQTT 3.1.1과 호환되므로 [Moquette MQTT 3.1.1 브로커](mqtt-broker-moquette-component.md)를 실행하는 경우 EMQX MQTT 5 브로커를 바꿀 수 있고 바꾸더라도 클라이언트 디바이스는 평소대로 계속 연결되고 작동할 수 있습니다.

<a name="note-local-mqtt-broker-mqtt-5-features"></a>

**참고**  <a name="client-device-component-context"></a>
클라이언트 디바이스는 Greengrass 코어 디바이스에 연결되어 처리할 MQTT 메시지와 데이터를 보내는 로컬 IoT 디바이스입니다. 자세한 내용은 [로컬 IoT 디바이스와 상호 작용](interact-with-local-iot-devices.md) 단원을 참조하십시오.

**Topics**
+ [버전](#mqtt-broker-emqx-component-versions)
+ [유형](#mqtt-broker-emqx-component-type)
+ [운영 체제](#mqtt-broker-emqx-component-os-support)
+ [요구 사항](#mqtt-broker-emqx-component-requirements)
+ [종속성](#mqtt-broker-emqx-component-dependencies)
+ [구성](#mqtt-broker-emqx-component-configuration)
+ [로컬 로그 파일](#mqtt-broker-emqx-component-log-file)
+ [라이선스](#mqtt-broker-emqx-component-licenses)
+ [Changelog](#mqtt-broker-emqx-component-changelog)

## 버전
<a name="mqtt-broker-emqx-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.0.x
+ 1.2.x
+ 1.1.x
+ 1.0.x

## 유형
<a name="mqtt-broker-emqx-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="mqtt-broker-emqx-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="mqtt-broker-emqx-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.
+ 코어 디바이스는 MQTT 브로커가 작동하는 포트에서 연결을 허용할 수 있어야 합니다. 이 구성 요소는 기본적으로 포트 8883에서 MQTT 브로커를 실행합니다. 이 구성 요소를 구성할 때 다른 포트를 지정할 수 있습니다.

  <a name="mqtt-broker-configuration-mqtt-bridge-requirement"></a>다른 포트를 지정하고 [MQTT 브리지 구성 요소](mqtt-bridge-component.md)를 사용하여 MQTT 메시지를 다른 브로커에 릴레이하는 경우 MQTT 브리지 v2.1.0 이상을 사용해야 합니다. 이 구성 요소에서 MQTT 브로커가 작동하는 포트를 사용하도록 구성합니다.

  <a name="mqtt-broker-configuration-ip-detector-requirement"></a>다른 포트를 지정하고 [IP 감지기 구성 요소](ip-detector-component.md)를 사용하여 MQTT 브로커 엔드포인트를 관리하는 경우 IP 감지기 v2.1.0 이상을 사용해야 합니다. 이 구성 요소에서 MQTT 브로커가 작동하는 포트를 보고하도록 구성합니다.
+ Linux 코어 디바이스에서는 다음과 같이 Docker가 코어 디바이스에 설치 및 구성되어 있습니다.
  + <a name="docker-engine-requirement"></a>Greengrass 코어 디바이스에 [Docker Engine](https://docs.docker.com/engine/) 1.9.1 이상이 설치되어 있어야 합니다. 버전 20.10은 AWS IoT Greengrass 코어 소프트웨어에서 작동하는 것으로 확인된 최신 버전입니다. Docker 컨테이너를 실행하는 구성 요소를 배포하기 전에 코어 디바이스에 직접 Docker를 설치해야 합니다.
  + <a name="docker-daemon-requirement"></a>Docker 데몬이 이 구성 요소를 배포하기 전에 코어 디바이스에서 시작되어 실행 중입니다.
  + 이 구성 요소를 실행하는 시스템 사용자에게 루트 또는 관리자 권한이 있어야 합니다. 또는 `docker` 그룹의 시스템 사용자로 이 구성 요소를 실행하고 권한 없이 EQMX MQTT 브로커를 실행하도록 이 구성 요소의 `requiresPrivileges` 옵션을 `false`로 구성할 수 있습니다.
+ EMQX MQTT 브로커 구성 요소는 VPC에서 실행할 수 있습니다.
+ EMQX MQTT 브로커 구성 요소는 `armv7` 플랫폼에서 지원되지 않습니다.

## 종속성
<a name="mqtt-broker-emqx-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#mqtt-broker-emqx-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.0.2 – 2.0.3 ]

다음 표에는 이 구성 요소의 버전 2.0.2 및 2.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.6.0 | 소프트 | 

------
#### [ 2.0.1 ]

다음 표에는 이 구성 요소의 버전 2.0.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.6.0 | 하드 | 

------
#### [ 2.0.0 ]

다음 표에는 이 구성 요소의 버전 2.0.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.5.0 | 하드 | 

------
#### [ 1.2.2 – 1.2.3 ]

다음 표에는 이 구성 요소의 버전 1.2.2\$11.2.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.5.0 | 하드 | 

------
#### [ 1.2.0 and 1.2.1 ]

다음 표에는 이 구성 요소의 버전 1.2.0 및 1.2.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.4.0 | 하드 | 

------
#### [ 1.0.0 and 1.1.0 ]

다음 표에는 이 구성 요소의 버전 1.0.0 및 1.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [클라이언트 디바이스 인증](client-device-auth-component.md) | >=2.2.0 <2.3.0 | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="mqtt-broker-emqx-component-configuration"></a>

------
#### [ 2.0.0 - 2.0.3 ]

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

**중요**  
MQTT 5 브로커(EMQX) 구성 요소의 버전 2를 사용하는 경우 구성 파일을 업데이트해야 합니다. 버전 1 구성 파일은 버전 2에서 작동하지 않습니다.

emqxConfig  
 (선택 사항) 사용할 [EMQX MQTT 브로커](https://www.emqx.io/docs/en/v5.1/configuration/configuration.html) 구성입니다. 이 구성 요소에서 EMQX 구성 옵션을 설정할 수 있습니다.  
EMQX 브로커를 사용하는 경우 Greengrass에서는 기본 구성을 사용합니다. 이 필드를 사용하여 수정하지 않는 한 이 구성이 사용됩니다.  
다음 구성 설정을 수정하면 EMQX 브로커 구성 요소가 다시 시작됩니다. 다른 구성 변경 사항은 구성 요소를 다시 시작하지 않고 적용됩니다.  
+ `emqxConfig/cluster`
+ `emqxConfig/node`
+ `emqxConfig/rpc`
`aws.greengrass.clientdevices.mqtt.EMQX`를 사용하면 보안상 중요한 옵션을 구성할 수 있습니다. 여기에는 TLS 설정, 인증 및 권한 부여 공급자가 포함됩니다. 상호 TLS 인증과 Greengrass 클라이언트 디바이스 인증 공급자를 사용하는 기본 구성을 사용하는 것이 좋습니다.

**Example 예: 기본 구성**  
다음 예제에서는 MQTT 5(EMQX) 브로커의 기본 설정을 보여줍니다. `emqxConfig` 구성 설정을 사용하여 이러한 설정을 재정의할 수 있습니다.  

```
{
  "authorization": {
    "no_match": "deny",
    "sources": []
  },
  "node": {
    "cookie": "<placeholder>"
  }, 
  "listeners": {
     "ssl": {
       "default": {
         "ssl_options": {
           "keyfile": "{work:path}\\data\\key.pem",
           "certfile": "{work:path}\\data\\cert.pem",
           "cacertfile": null,
           "verify": "verify_peer",
           "versions": ["tlsv1.3", "tlsv1.2"],
           "fail_if_no_peer_cert": true
         }
       }
     },
     "tcp": {
       "default": {
         "enabled": false
       }
     },
     "ws": {
       "default": {
         "enabled": false
       }
     },
     "wss": {
       "default": {
         "enabled": false
       }
     }
  },
  "plugins": {
    "states": [{"name_vsn": "gg-1.0.0", "enable": true}],
    "install_dir": "plugins"
  }
}
```

authMode  
(선택 사항) 브로커의 권한 부여 공급자를 설정합니다. 다음 값 중 하나일 수 있습니다.  
+ `enabled` – (기본값) Greengrass 인증 및 권한 부여 공급자를 사용합니다.
+ `bypass_on_failure` – Greengrass 인증 공급자를 사용한 다음 Greengrass에서 인증 또는 권한 부여를 거부하는 경우 EMQX 공급자 체인의 나머지 인증 공급자를 사용합니다.
+ `bypass` – Greengrass 공급자가 비활성화되었습니다. 인증 및 권한 부여가 EMQX 공급자 체인에 의해 처리됩니다.

`requiresPrivilege`  
(선택 사항) Linux 코어 장치에서 루트 또는 관리자 권한 없이 EMQX MQTT 브로커를 실행하도록 지정할 수 있습니다. 이 옵션을 `false`로 설정하면 이 구성 요소를 실행하는 시스템 사용자가 `docker` 그룹의 구성원이어야 합니다.  
기본값: `true`

`startupTimeoutSeconds`  
(선택 사항) EMQX MQTT 브로커가 시작되는 최대 시간(초)입니다. 이 제한 시간이 초과되면 구성 요소의 상태가 `BROKEN`으로 변경됩니다.  
기본값: `90`

`ipcTimeoutSeconds`  
(선택 사항) 구성 요소에서 Greengrass nucleus가 프로세스 간 통신(IPC) 요청에 응답할 때까지 기다리는 최대 시간(초)입니다. 이 구성 요소가 클라이언트 디바이스에 권한이 있는지 확인할 때 제한 시간 오류를 보고하는 경우 이 수를 늘립니다.  
기본값: `5`

`crtLogLevel`  
(선택 사항) AWS 공통 런타임(CRT) 라이브러리의 로그 수준입니다.  
기본값은 EMQX MQTT 브로커 로그 수준(`emqx`의 `log.level`)입니다.

`restartIdentifier`  
(선택 사항) EMQX MQTT 브로커를 다시 시작하려면 이 옵션을 구성합니다. 이 구성 값이 변경되면 이 구성 요소는 MQTT 브로커를 다시 시작합니다. 이 옵션을 사용하여 클라이언트 디바이스의 연결을 강제로 해제할 수 있습니다.

`dockerOptions`  
(선택 사항) Linux 운영 체제에서만 Docker 명령줄에 파라미터를 추가하려면 이 옵션을 구성합니다. 예를 들어 추가 포트를 매핑하려면 `-p` Docker 파라미터를 사용합니다.  

```
"-p 1883:1883"
```

**Example 예: v1.x 구성 파일을 v2.x로 업데이트**  
다음 예제에서는 v1.x 구성 파일을 버전 2.x로 업데이트하는 데 필요한 변경 사항을 보여줍니다.  
버전 1.x 구성 파일:  

```
{
    "emqx": {
        "listener.ssl.external": "443",
        "listener.ssl.external.max_connections": "1024000",
        "listener.ssl.external.max_conn_rate": "500",
        "listener.ssl.external.rate_limit": "50KB,5s",
        "listener.ssl.external.handshake_timeout": "15s",
        "log.level": "warning"
    },
    "mergeConfigurationFiles": {
        "etc/plugins/aws_greengrass_emqx_auth.conf": "auth_mode=enabled\n use_greengrass_managed_certificates=true\n"
    }
}
```
이와 동일한 v2의 구성 파일:  

```
{
    "emqxConfig": {
        "listeners": {
            "ssl": {
                "default": {
                   "bind": "8883",
                   "max_connections": "1024000",
                   "max_conn_rate": "500",
                   "ssl_options": {
                        "handshake_timeout": "15s"
                   }
                }
            }
        },
        "log": {
            "console": {
              "enable": true,
              "level": "warning"
            }
        }
    },
    "authMode": "enabled"
}
```
`listener.ssl.external.rate_limit` 구성 항목과 동일한 항목은 없습니다. `use_greengrass_managed_certificates` 구성 옵션은 제거되었습니다.

**Example 예: 브로커의 새 포트 설정**  
다음 예제에서는 MQTT 브로커가 작동하는 포트를 기본값인 8883에서 포트 1234로 변경합니다. Linux를 사용하는 경우 `dockerOptions` 필드를 포함합니다.  

```
{
  "emqxConfig": {
    "listeners": {
      "ssl": {
        "default": {
          "bind": 1234
        }
      }
    }
  },
  "dockerOptions": "-p 1234:1234"
}
```

**Example 예: MQTT 브로커의 로그 수준 조정**  
다음 예제에서는 MQTT 브로커의 로그 수준을 `debug`로 변경합니다. 다음 로그 수준 중에서 선택할 수 있습니다.  
+ `debug`
+ `info`
+ `notice`
+ `warning`
+ `error`
+ `critical`
+ `alert`
+ `emergency`
기본 로그 수준은 `warning`입니다.  

```
{
  "emqxConfig": {
    "log": {
      "console": {
         "level": "debug"
      }
    }
  }
}
```

**Example 예: EMQX 대시보드 활성화**  
다음 예제에서는 브로커를 모니터링하고 관리할 수 있도록 EMQX 대시보드를 활성화합니다. Linux를 사용하는 경우 `dockerOptions` 필드를 포함합니다.  

```
{
  "emqxConfig": {
    "dashboard": {
      "listeners": {
        "http": {
          "bind": 18083
        }
      }
    }
  },
  "dockerOptions": "-p 18083:18083"
}
```

------
#### [ 1.0.0 - 1.2.2 ]

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

`emqx`  
(선택 사항) 사용할 [EMQX MQTT 브로커](https://www.emqx.io/docs/en/v4.4/configuration/configuration.html) 구성입니다. 이 구성 요소에서 EMQX 구성 옵션의 하위 집합을 구성할 수 있습니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`listener.ssl.external`  
(선택 사항) MQTT 브로커가 작동하는 포트입니다.  
<a name="mqtt-broker-configuration-mqtt-bridge-requirement"></a>다른 포트를 지정하고 [MQTT 브리지 구성 요소](mqtt-bridge-component.md)를 사용하여 MQTT 메시지를 다른 브로커에 릴레이하는 경우 MQTT 브리지 v2.1.0 이상을 사용해야 합니다. 이 구성 요소에서 MQTT 브로커가 작동하는 포트를 사용하도록 구성합니다.  
<a name="mqtt-broker-configuration-ip-detector-requirement"></a>다른 포트를 지정하고 [IP 감지기 구성 요소](ip-detector-component.md)를 사용하여 MQTT 브로커 엔드포인트를 관리하는 경우 IP 감지기 v2.1.0 이상을 사용해야 합니다. 이 구성 요소에서 MQTT 브로커가 작동하는 포트를 보고하도록 구성합니다.
기본값: `8883`  
`listener.ssl.external.max_connections`  
(선택 사항) MQTT 브로커가 지원하는 최대 동시 연결 수입니다.  
기본값: `1024000`  
`listener.ssl.external.max_conn_rate`  
(선택 사항) MQTT 브로커가 수신할 수 있는 초당 최대 새 연결 수입니다.  
기본값: `500`  
`listener.ssl.external.rate_limit`  
(선택 사항) MQTT 브로커에 대한 모든 연결의 대역폭 제한입니다. `bandwidth,duration`의 형식으로 대역폭과 해당 대역폭의 기간을 쉼표(`,`)로 구분하여 지정합니다. 예를 들어 5초마다 50KB(킬로바이트)의 데이터로 MQTT 브로커를 제한하려면 `50KB,5s`를 지정할 수 있습니다.  
`listener.ssl.external.handshake_timeout`  
(선택 사항) MQTT 브로커가 새 연결 인증이 완료될 때까지 대기하는 시간입니다.  
기본값: `15s`  
`mqtt.max_packet_size`  
(선택 사항) MQTT 메시지의 최대 크기입니다.  
기본값: `268435455`(256MB - 1)  
`log.level`  
(선택 사항) MQTT 브로커의 로그 수준입니다. 다음 옵션 중 하나를 선택합니다.  
+ `debug`
+ `info`
+ `notice`
+ `warning`
+ `error`
+ `critical`
+ `alert`
+ `emergency`
기본 로그 수준은 `warning`입니다.

`requiresPrivilege`  
(선택 사항) Linux 코어 장치에서 루트 또는 관리자 권한 없이 EMQX MQTT 브로커를 실행하도록 지정할 수 있습니다. 이 옵션을 `false`로 설정하면 이 구성 요소를 실행하는 시스템 사용자가 `docker` 그룹의 구성원이어야 합니다.  
기본값: `true`

`startupTimeoutSeconds`  
(선택 사항) EMQX MQTT 브로커가 시작되는 최대 시간(초)입니다. 이 제한 시간이 초과되면 구성 요소의 상태가 `BROKEN`으로 변경됩니다.  
기본값: `90`

`ipcTimeoutSeconds`  
(선택 사항) 구성 요소에서 Greengrass nucleus가 프로세스 간 통신(IPC) 요청에 응답할 때까지 기다리는 최대 시간(초)입니다. 이 구성 요소가 클라이언트 디바이스에 권한이 있는지 확인할 때 제한 시간 오류를 보고하는 경우 이 수를 늘립니다.  
기본값: `5`

`crtLogLevel`  
(선택 사항) AWS 공통 런타임(CRT) 라이브러리의 로그 수준입니다.  
기본값은 EMQX MQTT 브로커 로그 수준(`emqx`의 `log.level`)입니다.

`restartIdentifier`  
(선택 사항) EMQX MQTT 브로커를 다시 시작하려면 이 옵션을 구성합니다. 이 구성 값이 변경되면 이 구성 요소는 MQTT 브로커를 다시 시작합니다. 이 옵션을 사용하여 클라이언트 디바이스의 연결을 강제로 해제할 수 있습니다.

`dockerOptions`  
(선택 사항) Linux 운영 체제에서만 Docker 명령줄에 파라미터를 추가하려면 이 옵션을 구성합니다. 예를 들어 추가 포트를 매핑하려면 `-p` Docker 파라미터를 사용합니다.  

```
"-p 1883:1883"
```

`mergeConfigurationFiles`  
(선택 사항) 지정된 EMQX 구성 파일의 기본값에 추가하거나 기본값을 재정의하려면 이 옵션을 구성합니다. 구성 파일 및 해당 형식에 대한 자세한 내용은 *EMQX 4.0 Documentation*의 [Configuration](https://www.emqx.io/docs/en/v4.4/configuration/configuration.html)을 참조하세요. 지정하는 값이 구성 파일에 추가됩니다.  
다음 예제에서는 `etc/emqx.conf` 파일을 업데이트합니다.  

```
"mergeConfigurationFiles": {
    "etc/emqx.conf": "broker.sys_interval=30s\nbroker.sys_heartbeat=10s"
},
```
EMQX에서 지원하는 구성 파일 외에도 Greengrass에서는 EMQX에 대한 Greengrass 인증 플러그인을 구성하는 `etc/plugins/aws_greengrass_emqx_auth.conf`라는 파일도 지원합니다. 지원되는 두 가지 옵션은 `auth_mode` 및 `use_greengrass_managed_certificates`입니다. 다른 인증 공급자를 사용하려면 `auth_mode` 옵션을 다음 중 하나로 설정합니다.  
+ `enabled` – (기본값) Greengrass 인증 및 권한 부여 공급자를 사용합니다.
+ `bypass_on_failure` – Greengrass 인증 공급자를 사용한 다음 Greengrass에서 인증 또는 권한 부여를 거부하는 경우 EMQX 공급자 체인의 나머지 인증 공급자를 사용합니다.
+ `bypass` – Greengrass 공급자가 비활성화되었습니다. 그러면 인증 및 권한 부여는 EMQX 공급자 체인에 의해 처리됩니다.
`use_greengrass_managed_certificates`가 `true`이면 Greengrass가 브로커 TLS 인증서를 관리합니다. `false`인 경우에는 다른 소스를 통해 인증서를 제공합니다.  
다음 예제에서는 `etc/plugins/aws_greengrass_emqx_auth.conf` 구성 파일의 기본값을 업데이트합니다.  

```
"mergeConfigurationFiles": {
    "etc/plugins/aws_greengrass_emqx_auth.conf": "auth_mode=enabled\n use_greengrass_managed_certificates=true\n"
  },
```
`aws.greengrass.clientdevices.mqtt.EMQX`를 사용하면 보안상 중요한 옵션을 구성할 수 있습니다. 여기에는 TLS 설정, 인증 및 권한 부여 공급자가 포함됩니다. 상호 TLS 인증과 Greengrass 클라이언트 디바이스 인증 공급자를 사용하는 기본 구성이 권장 구성입니다.

`replaceConfigurationFiles`  
(선택 사항) 지정된 EMQX 구성 파일을 바꾸려면 이 옵션을 구성합니다. 지정하는 값으로 기존 구성 파일 전체가 대체됩니다. 이 섹션에서는 `etc/emqx.conf` 파일을 지정할 수 없습니다. `etc/emqx.conf`를 수정하려면 `mergeConfigurationFile`을 사용해야 합니다.

**Example 예: 구성 병합 업데이트**  
다음 예제 구성에서는 포트 443에서 MQTT 브로커를 작동하도록 지정합니다.  

```
{
  "emqx": {
    "listener.ssl.external": "443",
    "listener.ssl.external.max_connections": "1024000",
    "listener.ssl.external.max_conn_rate": "500",
    "listener.ssl.external.rate_limit": "50KB,5s",
    "listener.ssl.external.handshake_timeout": "15s",
    "log.level": "warning"
  },
  "requiresPrivilege": "true",
  "startupTimeoutSeconds": "90",
  "ipcTimeoutSeconds": "5"
}
```

------

## 로컬 로그 파일
<a name="mqtt-broker-emqx-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\aws.greengrass.clientdevices.mqtt.EMQX.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.clientdevices.mqtt.EMQX.log -Tail 10 -Wait
  ```

------

## 라이선스
<a name="mqtt-broker-emqx-component-licenses"></a>

Windows 운영 체제에서 이 소프트웨어에는 [Microsoft 소프트웨어 라이선스 조건 - Microsoft Visual Studio Community 2022](https://visualstudio.microsoft.com/license-terms/vs2022-ga-community)에 따라 배포된 코드가 포함됩니다. 이 소프트웨어를 다운로드하면 해당 코드의 라이선스 조건에 동의하는 것입니다.

<a name="component-core-software-license"></a>이 구성 요소는 [Greengrass 코어 소프트웨어 라이선스 계약](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)에 따라 릴리스됩니다.

## Changelog
<a name="mqtt-broker-emqx-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.

------
#### [ v2.x ]


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.0.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-broker-emqx-component.html)  | 
|  2.0.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-broker-emqx-component.html)  | 
|  2.0.1  |  [클라이언트 디바이스 인증](client-device-auth-component.md) 버전 2.5.0 릴리스에 대한 버전이 업데이트되었습니다.  | 
| 2.0.0 | 이 버전의 MQTT 5 브로커(EMQX)에는 버전 1.x와 다른 구성 파라미터가 필요합니다. 버전 1.x에 기본값이 아닌 구성을 사용하고 있는 경우 2.x에 맞게 구성 요소의 구성을 업데이트해야 합니다. 자세한 내용은 [구성](#mqtt-broker-emqx-component-configuration) 단원을 참조하십시오. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-broker-emqx-component.html) | 

------
#### [ v1.x ]


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  1.2.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-broker-emqx-component.html)  | 
|  1.2.2  |  [클라이언트 디바이스 인증](client-device-auth-component.md) 버전 2.4.0 릴리스에 대한 버전이 업데이트되었습니다.  | 
|  1.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-broker-emqx-component.html)  | 
|  1.2.0  |  인증서 체인에 대한 지원을 추가합니다.  | 
|  1.1.0  | <a name="changelog-emqx-1.1.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/mqtt-broker-emqx-component.html) | 
|  1.0.1  |  TLS 핸드셰이크 중에 일부 MQTT 클라이언트가 연결되지 않는 문제를 해결합니다.  | 
|  1.0.0  |  초기 버전입니다.  | 

------

# nucleus 원격 측정 이미터
<a name="nucleus-emitter-component"></a>

nucleus 원격 측정 이미터 구성 요소(`aws.greengrass.telemetry.NucleusEmitter`)는 시스템 상태 원격 측정 데이터를 수집하여 로컬 주제 및 AWS IoT Core MQTT 주제에 지속적으로 게시합니다. 이 구성 요소를 사용하면 Greengrass 코어 디바이스에서 실시간 시스템 원격 측정 데이터를 수집할 수 있습니다. Amazon EventBridge에 시스템 원격 측정 데이터를 게시하는 Greengrass 원격 측정 에이전트에 대한 자세한 내용은 [AWS IoT Greengrass 코어 디바이스에서 시스템 상태 원격 측정 데이터 수집](telemetry.md) 섹션을 참조하세요.

기본적으로 nucleus 원격 측정 이미터 구성 요소는 60초마다 다음 로컬 게시/구독 주제에 원격 측정 데이터를 게시합니다.

```
$local/greengrass/telemetry
```

nucleus 원격 측정 이미터 구성 요소는 기본적으로 AWS IoT Core MQTT 주제에 게시되지 않습니다. 배포 시 AWS IoT Core MQTT 주제에 게시하도록이 구성 요소를 구성할 수 있습니다. MQTT 주제를 사용하여에 데이터를 게시하는 데는 [AWS IoT Core 요금이](https://aws.amazon.com/iot-core/pricing/) AWS 클라우드 적용됩니다.

<a name="greengrass-software-catalog-influxdb-telemetry-publisher"></a>AWS IoT Greengrass 는 InfluxDB 및 Grafana를 사용하여 코어 디바이스에서 로컬로 원격 측정 데이터를 분석하고 시각화하는 데 도움이 되는 여러 [커뮤니티 구성 요소를](greengrass-software-catalog.md) 제공합니다. 이러한 구성 요소는 nucleus 이미터 구성 요소의 원격 측정 데이터를 사용합니다. 자세한 내용은 [InfluxDB 게시자 구성 요소](https://github.com/awslabs/aws-greengrass-labs-telemetry-influxdbpublisher)에 대한 README를 참조하세요.

**Topics**
+ [버전](#nucleus-emitter-component-versions)
+ [유형](#nucleus-emitter-component-type)
+ [운영 체제](#nucleus-emitter-component-os-support)
+ [종속성](#nucleus-emitter-component-dependencies)
+ [구성](#nucleus-emitter-component-configuration)
+ [출력 데이터](#nucleus-emitter-component-output-data)
+ [사용법](#nucleus-emitter-component-usage)
+ [로컬 로그 파일](#nucleus-emitter-component-log-file)
+ [Changelog](#nucleus-emitter-component-changelog)

## 버전
<a name="nucleus-emitter-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 1.0.x

## 유형
<a name="nucleus-emitter-component-type"></a>

<a name="public-component-type-plugin-para1"></a>이 구성 요소는 플러그인 구성 요소(`aws.greengrass.plugin`)입니다. [Greengrass nucleus는](greengrass-nucleus-component.md) 이 구성 요소를 nucleus와 동일한 Java 가상 머신(JVM)에서 실행합니다. 코어 디바이스에서 구성 요소의 버전을 변경하면 nucleus가 다시 시작됩니다.

<a name="public-component-type-plugin-para2"></a>이 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 단원을 참조하십시오.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="nucleus-emitter-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 종속성
<a name="nucleus-emitter-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#nucleus-emitter-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 1.0.12 ]

다음 표에는이 구성 요소의 버전 1.0.12에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.4.0 <2.17.0 | 소프트 | 

------
#### [ 1.0.11 ]

다음 표에는이 구성 요소의 버전 1.0.11에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.16.0  | 하드 | 

------
#### [ 1.0.10 ]

다음 표에는 이 구성 요소의 버전 1.0.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.15.0  | 하드 | 

------
#### [ 1.0.9 ]

다음 표에는 이 구성 요소의 버전 1.0.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.14.0  | 하드 | 

------
#### [ 1.0.8 ]

다음 표에는 이 구성 요소의 버전 1.0.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.13.0  | 하드 | 

------
#### [ 1.0.7 ]

다음 표에는 이 구성 요소의 버전 1.0.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.12.0  | 하드 | 

------
#### [ 1.0.6 ]

다음 표에는 이 구성 요소의 버전 1.0.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.11.0  | 하드 | 

------
#### [ 1.0.5 ]

다음 표에는 이 구성 요소의 버전 1.0.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.10.0  | 하드 | 

------
#### [ 1.0.4 ]

다음 표에는 이 구성 요소의 버전 1.0.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.9.0  | 하드 | 

------
#### [ 1.0.3 ]

다음 표에는 이 구성 요소의 버전 1.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.8.0  | 하드 | 

------
#### [ 1.0.2 ]

다음 표에는 이 구성 요소의 버전 1.0.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.7.0  | 하드 | 

------
#### [ 1.0.1 ]

다음 표에는 이 구성 요소의 버전 1.0.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.6.0  | 하드 | 

------
#### [ 1.0.0 ]

다음 표에는 이 구성 요소의 버전 1.0.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.5.0  | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="nucleus-emitter-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

`pubSubPublish`  
(선택 사항) 원격 측정 데이터를 `$local/greengrass/telemetry` 주제에 게시할지 여부를 정의합니다. 지원되는 값은 `true` 및 `false`입니다.  
기본값: `true`

`mqttTopic`  
(선택 사항)이 구성 요소가 원격 측정 데이터를 게시하는 AWS IoT Core MQTT 주제입니다.  
이 값을 원격 측정 데이터를 게시하려는 AWS IoT Core MQTT 주제로 설정합니다. 이 값이 비어 있으면 nucleus 이미터는 원격 측정 데이터를 AWS 클라우드에 게시하지 않습니다.  
MQTT 주제를 사용하여에 데이터를 게시하는 AWS 클라우드 데는 [AWS IoT Core 요금이](https://aws.amazon.com/iot-core/pricing/) 적용됩니다.
기본값: `""`

`telemetryPublishIntervalMs`  
(선택 사항) 구성 요소가 원격 측정 데이터를 게시하는 시간 간격(밀리초)입니다. 이 값을 지원되는 최소 값보다 낮게 설정하면 구성 요소에서 대신 최소값을 사용합니다.  
게시 간격이 짧으면 코어 디바이스의 CPU 사용량이 늘어납니다. 기본 게시 간격으로 시작하여 디바이스의 CPU 사용량에 따라 조정하는 것이 좋습니다.
최소: `500`  
기본값: `60000`

**Example 예: 구성 병합 업데이트**  
다음 예제에서는 `$local/greengrass/telemetry` 주제 및 `greengrass/myTelemetry` AWS IoT Core MQTT 주제에 5초마다 원격 측정 데이터를 게시할 수 있는 샘플 구성 병합 업데이트를 보여줍니다.  

```
{
  "pubSubPublish": "true",
  "mqttTopic": "greengrass/myTelemetry",
  "telemetryPublishIntervalMs": 5000
}
```

## 출력 데이터
<a name="nucleus-emitter-component-output-data"></a>

이 구성 요소는 원격 측정 지표를 다음 주제에 대한 JSON 배열로 게시합니다.

**로컬 주제:** `$local/greengrass/telemetry`

선택적으로 원격 측정 지표를 AWS IoT Core MQTT 주제에 게시하도록 선택할 수도 있습니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [MQTT topics](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)를 참조하세요.

**Example 예시 데이터**  

```
[
  {
    "A": "Average",
    "N": "CpuUsage",
    "NS": "SystemMetrics",
    "TS": 1627597331445,
    "U": "Percent",
    "V": 26.21981271562346
  },
  {
    "A": "Count",
    "N": "TotalNumberOfFDs",
    "NS": "SystemMetrics",
    "TS": 1627597331445,
    "U": "Count",
    "V": 7316
  },
  {
    "A": "Count",
    "N": "SystemMemUsage",
    "NS": "SystemMetrics",
    "TS": 1627597331445,
    "U": "Megabytes",
    "V": 10098
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsStarting",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsInstalled",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsStateless",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsStopping",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsBroken",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsRunning",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 7
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsErrored",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsNew",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsFinished",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 2
  }
]
```<a name="telemetry-json-array-config"></a>

출력 배열에는 다음 속성을 가진 지표 목록이 포함됩니다.

`A`  
지표에 대한 집계 유형입니다.  
`CpuUsage` 지표의 경우 지표의 게시된 값이 마지막 게시 이벤트 이후의 평균 CPU 사용량이므로 이 속성은 `Average`로 설정됩니다.  
다른 모든 지표의 경우 nucleus 이미터에서 지표 값을 집계하지 않으며 이 속성은 `Count`로 설정됩니다.

`N`  
지표의 이름.

`NS`  
지표 네임스페이스입니다.

`TS`  
데이터가 수집된 시기의 타임스탬프입니다.

`U`  
지표 값의 단위.

`V`  
 지표 값.

nucleus 이미터는 다음 지표를 게시합니다.


| 명칭 | 설명 | 
| --- | --- | 
|  **시스템**  | 
|  `SystemMemUsage`  |  운영 체제를 포함하여 Greengrass 코어 장치의 모든 애플리케이션에서 현재 사용 중인 메모리의 양입니다.  | 
|  `CpuUsage`  |  운영 체제를 포함하여 Greengrass 코어 장치의 모든 애플리케이션에서 현재 사용 중인 CPU의 양입니다.  | 
|  `TotalNumberOfFDs`  |  Greengrass 코어 장치의 운영 체제에 저장된 파일 디스크립터 수입니다. 하나의 파일 디스크립터는 열려 있는 파일 하나를 고유하게 식별합니다.  | 
|  **Greengrass nucleus**  | 
|  `NumberOfComponentsRunning`  |  Greengrass 코어 디바이스에서 실행 중인 구성 요소의 수입니다.  | 
|  `NumberOfComponentsErrored`  |  Greengrass 코어 디바이스에서 오류 상태에 있는 구성 요소의 수입니다.  | 
|  `NumberOfComponentsInstalled`  |  Greengrass 코어 디바이스에 설치된 구성 요소의 수입니다.  | 
|  `NumberOfComponentsStarting`  |  Greengrass 코어 디바이스에서 시작하는 구성 요소의 수입니다.  | 
|  `NumberOfComponentsNew`  |  Greengrass 코어 디바이스의 새로운 구성 요소의 수입니다.  | 
|  `NumberOfComponentsStopping`  |  Greengrass 코어 디바이스에서 중지하는 구성 요소의 수입니다.  | 
|  `NumberOfComponentsFinished`  |  Greengrass 코어 디바이스에서 완료된 구성 요소의 수입니다.  | 
|  `NumberOfComponentsBroken`  |  Greengrass 코어 디바이스에서 손상된 구성 요소의 수입니다.  | 
|  `NumberOfComponentsStateless`  |  Greengrass 코어 디바이스에 있는 상태 비저장 구성 요소의 수입니다.  | 

## 사용법
<a name="nucleus-emitter-component-usage"></a>

시스템 상태 원격 측정 데이터를 사용하려면 nucleus 이미터가 원격 측정 데이터를 게시하는 주제를 구독하는 사용자 지정 구성 요소를 생성하고 필요에 따라 해당 데이터에 대응할 수 있습니다. nucleus 이미터 구성 요소에서 원격 측정 데이터를 로컬 주제에 게시하는 옵션을 제공하므로 해당 주제를 구독하고 게시된 데이터를 사용하여 코어 디바이스에서 로컬로 작업할 수 있습니다. 그러면 코어 디바이스는 클라우드에 대한 연결이 제한된 경우에도 원격 측정 데이터에 대응할 수 있습니다.

예를 들어 `$local/greengrass/telemetry` 주제에서 원격 측정 데이터를 수신하는 구성 요소를 구성하고 스트림 관리자 구성 요소에 데이터를 전송하여 데이터를 AWS 클라우드로 스트리밍할 수 있습니다. 이러한 구성 요소를 생성하는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 및 [스트림 관리자를 사용하는 사용자 지정 구성 요소 생성](use-stream-manager-in-custom-components.md) 섹션을 참조하세요.

## 로컬 로그 파일
<a name="nucleus-emitter-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="nucleus-emitter-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  1.0.12  |  Greengrass nucleus 버전 2.16.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.11  | Greengrass nucleus 버전 2.15.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.0.10  | Greengrass nucleus 버전 2.14.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.0.9  | Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.0.8  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.0.7  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.0.6  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.0.5  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.0.4  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.0.3  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.2  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.1  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.0  |  초기 버전입니다.  | 

# PKCS\$111 공급자
<a name="pkcs11-provider-component"></a>

PKCS\$111 공급자 구성 요소(`aws.greengrass.crypto.Pkcs11Provider`)를 사용하면 [PKCS\$111 인터페이스](https://en.wikipedia.org/wiki/PKCS_11)를 통해 HSM(하드웨어 보안 모듈)을 사용하도록 AWS IoT Greengrass 코어 소프트웨어를 구성할 수 있습니다. 이 구성 요소를 사용하면 인증서와 프라이빗 키를 소프트웨어에 노출되거나 복제되지 않도록 안전하게 저장할 수 있습니다. 자세한 내용은 [하드웨어 보안 통합](hardware-security.md) 단원을 참조하십시오.

인증서와 프라이빗 키를 HSM에 저장하는 Greengrass 코어 디바이스를 프로비저닝하려면 AWS IoT Greengrass 코어 소프트웨어를 설치할 때이 구성 요소를 프로비저닝 플러그인으로 지정해야 합니다. 자세한 내용은 [수동 리소스 프로비저닝을 사용하여 AWS IoT Greengrass 코어 소프트웨어 설치](manual-installation.md) 단원을 참조하십시오.

AWS IoT Greengrass 는 설치 중에 프로비저닝 플러그인으로 지정하기 위해 다운로드할 수 있는 JAR 파일로이 구성 요소를 제공합니다. 다음 URL([https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar](https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar))에서 최신 버전의 구성 요소 JAR 파일을 다운로드할 수 있습니다.

**Topics**
+ [버전](#pkcs11-provider-component-versions)
+ [유형](#pkcs11-provider-component-type)
+ [운영 체제](#pkcs11-provider-component-os-support)
+ [요구 사항](#pkcs11-provider-component-requirements)
+ [종속성](#pkcs11-provider-component-dependencies)
+ [구성](#pkcs11-provider-component-configuration)
+ [로컬 로그 파일](#pkcs11-provider-component-log-file)
+ [Changelog](#pkcs11-provider-component-changelog)

## 버전
<a name="pkcs11-provider-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.0.x

## 유형
<a name="pkcs11-provider-component-type"></a>

<a name="public-component-type-plugin-para1"></a>이 구성 요소는 플러그인 구성 요소(`aws.greengrass.plugin`)입니다. [Greengrass nucleus는](greengrass-nucleus-component.md) 이 구성 요소를 nucleus와 동일한 Java 가상 머신(JVM)에서 실행합니다. 코어 디바이스에서 구성 요소의 버전을 변경하면 nucleus가 다시 시작됩니다.

<a name="public-component-type-plugin-para2"></a>이 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 단원을 참조하십시오.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="pkcs11-provider-component-os-support"></a>

이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.

## 요구 사항
<a name="pkcs11-provider-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.
+ <a name="hardware-security-module-requirements-key"></a>[PKCS\$11 v1.5](https://tools.ietf.org/html/rfc2313) 서명 체계와 RSA-2048 키 크기(또는 그 이상) 또는 ECC 키를 사용하는 RSA 키가 지원되는 하드웨어 보안 모듈.
**참고**  <a name="hardware-security-module-requirements-key-notes"></a>
ECC 키와 함께 하드웨어 보안 모듈을 사용하려면 [Greengrass nucleus](greengrass-nucleus-component.md) v2.5.6 이상을 사용해야 합니다.  
하드웨어 보안 모듈 및 [보안 암호 관리자](secret-manager-component.md)를 사용하려면 RSA 키가 있는 하드웨어 보안 모듈을 사용해야 합니다.
+ <a name="hardware-security-module-requirements-pkcs11-provider-library"></a> AWS IoT Greengrass 코어 소프트웨어가 런타임에 로드(libdl 사용)하여 PKCS\$111 함수를 호출할 수 있는 PKCS\$111 공급자 라이브러리입니다. PKCS\$111 공급자 라이브러리는 다음 PKCS\$111 API 작업을 구현해야 합니다.
  + `C_Initialize`
  + `C_Finalize`
  + `C_GetSlotList`
  + `C_GetSlotInfo`
  + `C_GetTokenInfo`
  + `C_OpenSession`
  + `C_GetSessionInfo`
  + `C_CloseSession`
  + `C_Login`
  + `C_Logout`
  + `C_GetAttributeValue`
  + `C_FindObjectsInit`
  + `C_FindObjects`
  + `C_FindObjectsFinal`
  + `C_DecryptInit`
  + `C_Decrypt`
  + `C_DecryptUpdate`
  + `C_DecryptFinal`
  + `C_SignInit`
  + `C_Sign`
  + `C_SignUpdate`
  + `C_SignFinal`
  + `C_GetMechanismList`
  + `C_GetMechanismInfo`
  + `C_GetInfo`
  + `C_GetFunctionList`
+ <a name="hardware-security-module-requirements-slot-label"></a>하드웨어 모듈은 PKCS\$111 사양에 정의된 것처럼 슬롯 레이블로 확인할 수 있어야 합니다.
+ <a name="hardware-security-module-requirements-private-key-and-certificate"></a>프라이빗 키와 인증서를 동일한 슬롯의 HSM에 저장해야 하고, HSM이 객체 ID를 지원하는 경우 동일한 객체 레이블과 객체 ID를 사용해야 합니다.
+ <a name="hardware-security-module-requirements-object-label"></a>인증서와 프라이빗 키는 객체 레이블로 확인할 수 있어야 합니다.
+ <a name="hardware-security-module-requirements-private-key-permissions"></a>프라이빗 키에 다음 권한이 있어야 합니다.
  + `sign`
  + `decrypt`
+ <a name="hardware-security-module-requirements-secret-manager-permissions"></a>(선택 사항) [보안 암호 관리자 구성 요소](secret-manager-component.md)를 사용하려면 버전 2.1.0 이상을 사용해야 하며, 프라이빗 키에 다음 권한이 있어야 합니다.
  + `unwrap`
  + `wrap`
+ <a name="hardware-security-module-requirements-environment-variable"></a>(선택 사항) TPM2 라이브러리를 사용하고 Greengrass 코어를 서비스로 실행하는 경우 PKCS\$111 스토어의 위치가 포함된 환경 변수를 제공해야 합니다. 다음 예제는 필수 환경 변수가 있는 systemd 서비스 파일입니다.

  ```
  [Unit]
  Description=Greengrass Core
  After=network.target
  
  [Service]
  Type=simple
  PIDFile=/var/run/greengrass.pid
  Environment=TPM2_PKCS11_STORE=/path/to/store/directory
  RemainAfterExit=no
  Restart=on-failure
  RestartSec=10
  ExecStart=/bin/sh /greengrass/v2/alts/current/distro/bin/loader
  
  [Install]
  WantedBy=multi-user.target
  ```

## 종속성
<a name="pkcs11-provider-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#pkcs11-provider-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.0.11 ]

다음 표에는 이 구성 요소의 버전 2.0.11에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.3 <2.17.0 | 소프트 | 

------
#### [ 2.0.10 ]

다음 표에는 이 구성 요소의 버전 2.0.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.3 <2.16.0  | 소프트 | 

------
#### [ 2.0.9 ]

다음 표에는 이 구성 요소의 버전 2.0.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.3 <2.15.0  | 소프트 | 

------
#### [ 2.0.8 ]

다음 표에는 이 구성 요소의 버전 2.0.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.3 <2.14.0  | 소프트 | 

------
#### [ 2.0.7 ]

다음 표에는 이 구성 요소의 버전 2.0.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.3 <2.13.0  | 소프트 | 

------
#### [ 2.0.6 ]

다음 표에는 이 구성 요소의 버전 2.0.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.3 <2.12.0  | 소프트 | 

------
#### [ 2.0.5 ]

다음 표에는 이 구성 요소의 버전 2.0.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.3 <2.11.0  | 소프트 | 

------
#### [ 2.0.4 ]

다음 표에는 이 구성 요소의 버전 2.0.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.3 <2.10.0  | 소프트 | 

------
#### [ 2.0.3 ]

다음 표에는 이 구성 요소의 버전 2.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.3 <2.9.0  | 소프트 | 

------
#### [ 2.0.2 ]

다음 표에는 이 구성 요소의 버전 2.0.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.3 <2.8.0  | 소프트 | 

------
#### [ 2.0.1 ]

다음 표에는 이 구성 요소의 버전 2.0.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.5.3 <2.7.0  | 소프트 | 

------
#### [ 2.0.0 ]

다음 표에는 이 구성 요소의 버전 2.0.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.5.3 <2.6.0  | 소프트 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="pkcs11-provider-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.<a name="pkcs11-provider-component-configuration-parameters"></a>

`name`  
PKCS\$111 구성의 이름입니다.

`library`  
 AWS IoT Greengrass 코어 소프트웨어가 libdl로 로드할 수 있는 PKCS\$111 구현 라이브러리의 절대 파일 경로입니다.

`slot`  
프라이빗 키와 디바이스 인증서가 포함된 슬롯의 ID입니다. 이 값은 슬롯 인덱스 또는 슬롯 레이블과 다릅니다.

`userPin`  
슬롯 액세스에 사용할 사용자 PIN입니다.

**Example 예: 구성 병합 업데이트**  

```
{
  "name": "softhsm_pkcs11",
  "library": "/usr/lib/softhsm/libsofthsm2.so",
  "slot": 1,
  "userPin": "1234"
}
```

## 로컬 로그 파일
<a name="pkcs11-provider-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="pkcs11-provider-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.0.11  |  Greengrass nucleus 버전 2.16.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.10  | Greengrass nucleus 버전 2.15.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.9  | Greengrass nucleus 버전 2.14.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.8  | Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.7  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.6  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.5  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.4  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.3  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.0.2  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.1  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.0  |  초기 버전입니다.  | 

# 보안 암호 관리자
<a name="secret-manager-component"></a>

보안 암호 관리자 구성 요소(`aws.greengrass.SecretManager`)는 Greengrass 코어 디바이스에 AWS Secrets Manager 의 보안 암호를 배포합니다. 이 구성 요소를 사용하면 Greengrass 코어 디바이스의 사용자 지정 구성 요소에서 암호와 같은 자격 증명을 안전하게 사용할 수 있습니다. Secrets Manager에 대한 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [AWS Secrets Manager란 무엇입니까?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)를 참조하세요.

사용자 지정 Greengrass 구성 요소에서 이 구성 요소의 보안 암호에 액세스하려면 AWS IoT Device SDK에서 [GetSecretValue](ipc-secret-manager.md#ipc-operation-getsecretvalue) 작업을 사용합니다. 자세한 내용은 [AWS IoT Device SDK 를 사용하여 Greengrass nucleus, 기타 구성 요소 및 AWS IoT CoreGreengrass nucleus, 기타 구성 요소 및와 통신 AWS IoT Core](interprocess-communication.md) 및 [보안 암호 값 검색](ipc-secret-manager.md) 섹션을 참조하세요.

이 구성 요소는 코어 디바이스의 보안 암호를 암호화하여 자격 증명과 보안 암호를 사용해야 할 때까지 이를 안전하게 보관합니다. 코어 디바이스의 프라이빗 키를 사용하여 보안 암호를 암호화하고 해독합니다.

**Topics**
+ [버전](#secret-manager-component-versions)
+ [유형](#secret-manager-component-type)
+ [운영 체제](#secret-manager-component-os-support)
+ [요구 사항](#secret-manager-component-requirements)
+ [종속성](#secret-manager-component-dependencies)
+ [구성](#secret-manager-component-configuration)
+ [로컬 로그 파일](#secret-manager-component-log-file)
+ [Changelog](#secret-manager-component-changelog)

## 버전
<a name="secret-manager-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.2.x
+ 2.1.x
+ 2.0.x

## 유형
<a name="secret-manager-component-type"></a>

<a name="public-component-type-plugin-para1"></a>이 구성 요소는 플러그인 구성 요소(`aws.greengrass.plugin`)입니다. [Greengrass nucleus는](greengrass-nucleus-component.md) 이 구성 요소를 nucleus와 동일한 Java 가상 머신(JVM)에서 실행합니다. 코어 디바이스에서 구성 요소의 버전을 변경하면 nucleus가 다시 시작됩니다.

<a name="public-component-type-plugin-para2"></a>이 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 단원을 참조하십시오.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="secret-manager-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="secret-manager-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
+ 다음 예제 IAM 정책에 표시된 대로 [Greengrass 디바이스 역할](device-service-role.md)은 `secretsmanager:GetSecretValue` 작업을 허용해야 합니다.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "secretsmanager:GetSecretValue"
        ],
        "Effect": "Allow",
        "Resource": [
        "arn:aws:secretsmanager:us-east-1:123456789012:secret:MySecret"
        ]
      }
    ]
  }
  ```

------

  ```
  ```
**참고**  
고객 관리형 AWS Key Management Service 키를 사용하여 보안 암호를 암호화하는 경우 디바이스 역할도 `kms:Decrypt` 작업을 허용해야 합니다.

  Secrets Manager의 IAM 정책에 대한 자세한 내용은 *AWS Secrets Manager 사용 설명서*에서 다음을 참조하세요.
  + [에 대한 인증 및 액세스 제어 AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html)
  + [Actions, resources, and context keys you can use in an IAM policy or secret policy for AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html)
+ 사용자 지정 구성 요소는 `aws.greengrass#GetSecretValue`가 이 구성 요소에 저장한 보안 암호를 가져올 수 있도록 허용하는 권한 부여 정책을 정의해야 합니다. 이 권한 부여 정책에서 특정 보안 암호에 대한 구성 요소의 액세스를 제한할 수 있습니다. 자세한 내용은 [보안 암호 관리자 IPC 권한 부여](ipc-secret-manager.md#ipc-secret-manager-authorization)를 참조하세요.
+ (선택 사항) 코어 디바이스의 프라이빗 키와 인증서를 [하드웨어 보안 모듈](hardware-security.md)(HSM)에 저장하는 경우 HSM은 RSA 키를 지원해야 하며 프라이빗 키에는 `unwrap` 권한이 있어야 하고 퍼블릭 키에는 `wrap` 권한이 있어야 합니다.

### 엔드포인트 및 포트
<a name="secret-manager-component-endpoints"></a>

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에 다음 엔드포인트 및 포트에 대한 아웃바운드 요청도 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.


| 엔드포인트 | 포트 | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `secretsmanager.region.amazonaws.com`  | 443 | 예 |  코어 디바이스에 보안 암호를 다운로드합니다.  | 

## 종속성
<a name="secret-manager-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#secret-manager-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.2.7 ]

다음 표에는 이 구성 요소의 버전 2.2.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.17.0 | 소프트 | 

------
#### [ 2.2.6 ]

다음 표에는 이 구성 요소의 버전 2.2.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.16.0 | 소프트 | 

------
#### [ 2.2.2 – 2.2.5 ]

다음 표에는이 구성 요소의 버전 2.2.2\$12.2.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.15.0 | 소프트 | 

------
#### [ 2.2.0 ]

다음 표에는 이 구성 요소의 버전 2.2.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.13.0 <2.14.0 | 소프트 | 

------
#### [ 2.1.7 – 2.1.8 ]

다음 표에는 이 구성 요소의 버전 2.1.7 및 2.1.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.13.0 | 소프트 | 

------
#### [ 2.1.6 ]

다음 표에는 이 구성 요소의 버전 2.1.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.12.0 | 소프트 | 

------
#### [ 2.1.5 ]

다음 표에는 이 구성 요소의 버전 2.1.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.11.0 | 소프트 | 

------
#### [ 2.1.4 ]

다음 표에는 이 구성 요소의 버전 2.1.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.10.0 | 소프트 | 

------
#### [ 2.1.3 ]

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.9.0 | 소프트 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.8.0 | 소프트 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.7.0 | 소프트 | 

------
#### [ 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.6.0 | 소프트 | 

------
#### [ 2.0.9 ]

다음 표에는 이 구성 요소의 버전 2.0.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.5.0  | 소프트 | 

------
#### [ 2.0.8 ]

다음 표에는 이 구성 요소의 버전 2.0.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.4.0  | 소프트 | 

------
#### [ 2.0.7 ]

다음 표에는 이 구성 요소의 버전 2.0.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.3.0  | 소프트 | 

------
#### [ 2.0.6 ]

다음 표에는 이 구성 요소의 버전 2.0.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.2.0  | 소프트 | 

------
#### [ 2.0.4 and 2.0.5 ]

다음 표에는 이 구성 요소의 버전 2.0.4 및 2.0.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.3 <2.1.0  | 소프트 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="secret-manager-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

`periodicRefreshIntervalMin` (선택 사항)  
이 구성 요소가 코어 디바이스에 구성된 보안 암호를 AWS Secrets Manager 서비스의 최신 보안 암호 값과 동기화하는 분 단위 간격입니다. 이 간격이 구성되지 않은 경우 보안 암호 관리자가 구성된 보안 암호를 주기적으로 새로 고치지 않습니다.  

```
{
  "cloudSecrets": [
    {
      "arn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyGreengrassSecret-abcdef"
    }
  ],
  "periodicRefreshIntervalMin" : 60
}
```

`cloudSecrets`  
코어 디바이스에 배포할 Secrets Manager 보안 암호의 목록. 레이블을 지정하여 배포할 각 암호의 버전을 정의할 수 있습니다. 버전을 지정하지 않으면 이 구성 요소는 스테이징 레이블 `AWSCURRENT`가 연결된 버전을 배포합니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [Staging labels](https://docs.aws.amazon.com/secretsmanager/latest/userguide/terms-concepts.html#term_staging-label)를 참조하세요.  
보안 암호 관리자 구성 요소는 보안 암호를 로컬에 캐시합니다. Secrets Manager에서 보안 암호 값이 변경되는 경우 이 구성 요소는 새로운 값을 자동으로 검색하지 않습니다. 로컬 복사본을 업데이트하려면 암호에 새 레이블을 지정하고 새 레이블로 식별된 암호를 검색하도록 이 구성 요소를 구성합니다.  
각 객체에는 다음 정보가 포함되어 있습니다.    
`arn`  
배포할 암호의 ARN. 암호의 ARN은 전체 ARN 또는 부분 ARN일 수 있습니다. 부분 ARN이 아닌 전체 ARN을 지정하는 것이 좋습니다. 자세한 내용은 [Finding a secret from a partial ARN](https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot.html#ARN_secretnamehyphen)을 참조하세요. 다음은 전체 ARN과 부분 ARN의 예제입니다.  
+ 전체 ARN: `arn:aws:secretsmanager:us-east-2:111122223333:secret:SecretName-abcdef`
+ 부분 ARN: `arn:aws:secretsmanager:us-east-2:111122223333:secret:SecretName`  
`labels`  
(선택 사항) 코어 디바이스에 배포할 암호의 버전을 식별하기 위한 레이블의 목록.  
각 레이블은 문자열이어야 합니다.

**Example 예: 구성 병합 업데이트**  

```
{
  "cloudSecrets": [
    {
      "arn": "arn:aws:secretsmanager:us-west-2:123456789012:secret:MyGreengrassSecret-abcdef"
    }
  ]
}
```

## 로컬 로그 파일
<a name="secret-manager-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="secret-manager-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.2.7  |  Greengrass nucleus 버전 2.16.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.2.6  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.2.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.2.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.2.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.1.8  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.1.7  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.6  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.5  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.1.3  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.2  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.1  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.0.9  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.8  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.7  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.6  |  Greengrass nucleus 버전 2.1.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secret-manager-component.html)  | 
|  2.0.4  |  초기 버전입니다.  | 

# 보안 터널링
<a name="secure-tunneling-component"></a>

`aws.greengrass.SecureTunneling` 구성 요소를 사용하면 제한된 방화벽 뒤에 있는 Greengrass 코어 디바이스와 안전한 양방향 통신을 설정할 수 있습니다.

예를 들어 방화벽 뒤에 들어오는 모든 연결을 금지하는 Greengrass 코어 디바이스가 있다고 가정해 보겠습니다. 보안 터널링은 MQTT를 사용하여 액세스 토큰을 디바이스로 전송한 다음 WebSockets를 사용하여 방화벽을 통해 디바이스에 SSH를 연결합니다. 이 AWS IoT 관리형 터널을 사용하면 디바이스에 필요한 SSH 연결을 열 수 있습니다. AWS IoT 보안 터널링을 사용하여 원격 디바이스에 연결하는 방법에 대한 자세한 내용은 *AWS IoT 개발자 안내서*의 [AWS IoT 보안 터널링](https://docs.aws.amazon.com/iot/latest/developerguide/secure-tunneling.html)을 참조하세요.

이 구성 요소는 `$aws/things/greengrass-core-device/tunnels/notify` 주제에 대한 AWS IoT Core MQTT 메시지 브로커를 구독하여 보안 터널링 알림을 수신합니다.

**Topics**
+ [버전](#secure-tunneling-component-versions)
+ [유형](#secure-tunneling-component-type)
+ [운영 체제](#secure-tunneling-component-os-support)
+ [요구 사항](#secure-tunneling-component-requirements)
+ [종속성](#secure-tunneling-component-dependencies)
+ [구성](#secure-tunneling-component-configuration)
+ [로컬 로그 파일](#secure-tunneling-component-log-file)
+ [라이선스](#secure-tunneling-component-licenses)
+ [사용법](#secure-tunneling-component-usage)
+ [다음 사항도 참조하세요.](#secure-tunneling-component-see-also)
+ [Changelog](#secure-tunneling-component-changelog)

## 버전
<a name="secure-tunneling-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 1.1.x
+ 1.0.x

## 유형
<a name="secure-tunneling-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="secure-tunneling-component-os-support"></a>

이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.

아키텍처:
+ Armv71
+ ARMv8(AArch64)
+ x86\$164

## 요구 사항
<a name="secure-tunneling-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
+ 보안 터널링 구성 요소에 사용할 수 있는 최소 디스크 공간은 32MB입니다. 이 요구 사항에는 동일한 디바이스에서 실행되는 Greengrass 코어 소프트웨어 또는 기타 구성 요소가 포함되지 않습니다.
+ 보안 터널링 구성 요소에 사용할 수 있는 최소 RAM은 16MB입니다. 이 요구 사항에는 동일한 디바이스에서 실행되는 Greengrass 코어 소프트웨어 또는 기타 구성 요소가 포함되지 않습니다. 자세한 내용은 [JVM 옵션으로 메모리 할당 제어](configure-greengrass-core-v2.md#jvm-tuning) 단원을 참조하십시오.
+ 보안 터널링 구성 요소 버전 1.0.12 이상에는 Linux 커널이 3.2 이상인 GNU C 라이브러리(glibc) 버전 2.25 이상이 필요합니다. 장기 지원 종료 날짜가 지난 운영 체제 및 라이브러리 버전은 지원되지 않습니다. 장기 지원과 함께 운영 체제 및 라이브러리를 사용해야 합니다.
+ 운영 체제와 Java 런타임은 모두 64비트로 설치되어 있어야 합니다.
+ Greengrass 코어 디바이스에 [Python](https://www.python.org/) 버전 3.5 이상이 설치되고 PATH 환경 변수에 추가되어 있어야 합니다.
+ `libcrypto.so.1.1`이 Greengrass 코어 디바이스에 설치되고 PATH 환경 변수에 추가되어 있어야 합니다.
+ Greengrass 코어 디바이스의 포트 443에서 아웃바운드 트래픽을 엽니다.
+ Greengrass 코어 디바이스와 통신하는 데 사용할 통신 서비스에 대한 지원을 켭니다. 예를 들어 디바이스에 대한 SSH 연결을 열려면 해당 디바이스에서 SSH를 켜야 합니다.

### 엔드포인트 및 포트
<a name="secure-tunneling-component-endpoints"></a>

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에 다음 엔드포인트 및 포트에 대한 아웃바운드 요청도 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.


| 엔드포인트 | Port | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `data.tunneling.iot.region.amazonaws.com`  | 443 | 예 |  보안 터널을 설정합니다.  | 

## 종속성
<a name="secure-tunneling-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#secure-tunneling-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 1.0.19 – 1.1.3 ]

다음 표에는이 구성 요소의 버전 1.0.19\$11.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <3.0.0  | 소프트 | 

------
#### [ 1.0.18 ]

다음 표에는 이 구성 요소의 버전 1.0.18에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.13.0  | 소프트 | 

------
#### [ 1.0.16 – 1.0.17 ]

다음 표에는 이 구성 요소의 버전 1.0.16\$11.0.17에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.12.0  | 소프트 | 

------
#### [ 1.0.14 – 1.0.15 ]

다음 표에는 이 구성 요소의 버전 1.0.14\$11.0.15에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.11.0  | 소프트 | 

------
#### [ 1.0.11 – 1.0.13 ]

다음 표에는 이 구성 요소의 버전 1.0.11\$11.0.13에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.10.0  | 소프트 | 

------
#### [ 1.0.10 ]

다음 표에는 이 구성 요소의 버전 1.0.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.9.0  | 소프트 | 

------
#### [ 1.0.9 ]

다음 표에는 이 구성 요소의 버전 1.0.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.8.0  | 소프트 | 

------
#### [ 1.0.8 ]

다음 표에는 이 구성 요소의 버전 1.0.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.7.0  | 소프트 | 

------
#### [ 1.0.5 - 1.0.7 ]

다음 표에는 이 구성 요소의 버전 1.0.5\$11.0.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.6.0  | 소프트 | 

------
#### [ 1.0.4 ]

다음 표에는 이 구성 요소의 버전 1.0.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.5.0  | 소프트 | 

------
#### [ 1.0.3 ]

다음 표에는 이 구성 요소의 버전 1.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.4.0  | 소프트 | 

------
#### [ 1.0.2 ]

다음 표에는 이 구성 요소의 버전 1.0.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.3.0  | 소프트 | 

------
#### [ 1.0.1 ]

다음 표에는 이 구성 요소의 버전 1.0.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.2.0  | 소프트 | 

------
#### [ 1.0.0 ]

다음 표에는 이 구성 요소의 버전 1.0.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.3 <2.1.0  | 소프트 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="secure-tunneling-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

`OS_DIST_INFO`  
(선택 사항) 코어 디바이스의 운영 체제. 기본적으로 구성 요소는 코어 디바이스에서 실행 중인 운영 체제를 자동으로 식별하려고 시도합니다. 구성 요소가 기본값으로 시작되지 않는 경우 이 값을 사용하여 운영 체제를 지정합니다. 이 구성 요소에 대해 지원되는 운영 체제의 목록은 [디바이스 요구 사항](greengrass-nucleus-component.md#greengrass-v2-requirements) 섹션을 참조하세요.  
이 값은 `auto`, `ubuntu`, `amzn2`, `raspberrypi` 중 하나일 수 있습니다.  
기본값: `auto`

`accessControl`  
(선택 사항) 구성 요소가 보안 터널링 알림 주제에 메시지를 구독할 수 있도록 허용하는 [권한 부여 정책](interprocess-communication.md#ipc-authorization-policies)이 있는 객체입니다.  
배포가 사물 그룹을 대상으로 하는 경우 이 구성 파라미터를 수정하지 마세요. 배포가 개별 코어 디바이스를 대상으로 하고 해당 디바이스의 주제에 대한 구독을 제한하려는 경우 코어 디바이스의 사물 이름을 지정합니다. 디바이스의 권한 부여 정책의 `resources` 값에서 MQTT 주제 와일드카드를 디바이스의 사물 이름으로 바꿉니다.

```
{
  "aws.greengrass.ipc.mqttproxy": {
    "aws.iot.SecureTunneling:mqttproxy:1": {
      "policyDescription": "Access to tunnel notification pubsub topic",
      "operations": [
        "aws.greengrass#SubscribeToIoTCore"
      ],
      "resources": [
        "$aws/things/+/tunnels/notify"
      ]
    }
  }
}
```

**Example 예: 구성 병합 업데이트**  
다음 예제 구성은 이 구성 요소가 Ubuntu를 실행하는 **MyGreengrassCore**라는 코어 디바이스에서 보안 터널을 열 수 있도록 지정합니다.  

```
{
  "OS_DIST_INFO": "ubuntu",
  "accessControl": {
    "aws.greengrass.ipc.mqttproxy": {
      "aws.iot.SecureTunneling:mqttproxy:1": {
        "policyDescription": "Access to tunnel notification pubsub topic",
        "operations": [
          "aws.greengrass#SubscribeToIoTCore"
        ],
        "resources": [
          "$aws/things/MyGreengrassCore/tunnels/notify"
        ]
      }
    }
  }
}
```

## 로컬 로그 파일
<a name="secure-tunneling-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

```
/greengrass/v2/logs/aws.greengrass.SecureTunneling.log
```

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. 를 AWS IoT Greengrass 루트 폴더의 경로`/greengrass/v2`로 바꿉니다.

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.SecureTunneling.log
  ```

## 라이선스
<a name="secure-tunneling-component-licenses"></a>

이 구성 요소에는 다음 타사 소프트웨어/라이선스가 포함되어 있습니다.
+ [AWS IoT 디바이스 클라이언트](https://github.com/awslabs/aws-iot-device-client)/Apache 라이선스 2.0
+ [AWS IoT Device SDK for Java](https://github.com/aws/aws-greengrass-core-sdk-java/)/Apache 라이선스 2.0
+ [gson](https://github.com/google/gson)/Apache 라이선스 2.0
+ [log4j](https://logging.apache.org/log4j/2.x/)/Apache 라이선스 2.0
+ [slf4j](http://www.slf4j.org/)/Apache 라이선스 2.0

## 사용법
<a name="secure-tunneling-component-usage"></a>

디바이스에서 보안 터널링 구성 요소를 사용하려면 다음을 수행합니다.

1. 디바이스에 보안 터널링 구성 요소를 배포합니다.

1. [AWS IoT 콘솔](https://console.aws.amazon.com/iot)을 엽니다. 왼쪽 메뉴에서 **원격 작업**을 선택한 다음 **보안 터널**을 선택합니다.

1. Greengrass 디바이스에 대한 터널을 생성합니다.

1. 소스 액세스 토큰을 다운로드합니다.

1. 소스 액세스 토큰과 함께 로컬 프록시를 사용하여 대상에 연결합니다. 자세한 내용은 *AWS IoT 개발자 안내서*의 [How to use the local proxy](https://docs.aws.amazon.com/iot/latest/developerguide/how-use-local-proxy.html)를 참조하세요.

## 다음 사항도 참조하세요.
<a name="secure-tunneling-component-see-also"></a>
+ *AWS IoT 개발자 안내서*의 [AWS IoT 보안 터널링](https://docs.aws.amazon.com/iot/latest/developerguide/secure-tunneling.html) 
+ *AWS IoT 개발자 안내서*의 [How to use the local proxy](https://docs.aws.amazon.com/iot/latest/developerguide/how-use-local-proxy.html)

## Changelog
<a name="secure-tunneling-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  1.1.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.1.2  |   이 버전은 더 이상 사용할 수 없습니다. 이 버전의 개선 사항은 이 구성 요소의 이후 버전에서 사용할 수 있습니다.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.1.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.0.19  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secure-tunneling-component.html)  보안 터널링 로컬 프록시를 터널 소스 클라이언트로 사용하는 경우 로컬 프록시를 버전 3.1.1 이상으로 업그레이드할 때까지 이 버전으로 구성 요소를 업데이트하지 마세요.   | 
|  1.0.18  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.0.17  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.0.16  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.0.15  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.0.14  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.0.13  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.0.12  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.0.11  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.0.10  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  1.0.9  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.8  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.7  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/secure-tunneling-component.html)  | 
|  1.0.6  |  이 버전에는 버그 수정이 포함되어 있습니다.  | 
|  1.0.5  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.4  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.3  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.2  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.1  |  Greengrass nucleus 버전 2.1.0 릴리스용으로 업데이트된 버전입니다.  | 
|  1.0.0  |  초기 버전입니다.  | 

# 섀도 관리자
<a name="shadow-manager-component"></a>

섀도 관리자 구성 요소(`aws.greengrass.ShadowManager`)는 코어 디바이스에서 로컬 섀도 서비스를 활성화합니다. 로컬 섀도 서비스를 사용하면 구성 요소가 프로세스 간 통신을 사용하여 [로컬 섀도와 상호 작용](ipc-local-shadows.md)할 수 있습니다. 섀도 관리자 구성 요소는 로컬 섀도 문서의 스토리지를 관리하고 로컬 섀도 상태를 AWS IoT 디바이스 섀도 서비스와 동기화하는 작업도 처리합니다.

Greengrass 코어 디바이스가 섀도와 상호 작용하는 방법에 대한 자세한 내용은 [디바이스 섀도와 연동](interact-with-shadows.md) 섹션을 참조하세요.

**Topics**
+ [버전](#shadow-manager-component-versions)
+ [유형](#shadow-manager-component-type)
+ [운영 체제](#shadow-manager-component-os-support)
+ [요구 사항](#shadow-manager-component-requirements)
+ [종속성](#shadow-manager-component-dependencies)
+ [구성](#shadow-manager-component-configuration)
+ [로컬 로그 파일](#shadow-manager-component-log-file)
+ [Changelog](#shadow-manager-component-changelog)

## 버전
<a name="shadow-manager-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.3.x
+ 2.2.x
+ 2.1.x
+ 2.0.x

## 유형
<a name="shadow-manager-component-type"></a>

<a name="public-component-type-plugin-para1"></a>이 구성 요소는 플러그인 구성 요소(`aws.greengrass.plugin`)입니다. [Greengrass nucleus는](greengrass-nucleus-component.md) 이 구성 요소를 nucleus와 동일한 Java 가상 머신(JVM)에서 실행합니다. 코어 디바이스에서 구성 요소의 버전을 변경하면 nucleus가 다시 시작됩니다.

<a name="public-component-type-plugin-para2"></a>이 구성 요소에서는 Greengrass nucleus와 동일한 로그 파일이 사용됩니다. 자세한 내용은 [AWS IoT Greengrass 로그 모니터링](monitor-logs.md) 단원을 참조하십시오.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="shadow-manager-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="shadow-manager-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
+ (선택 사항) 섀도우를 AWS IoT 디바이스 섀도우 서비스에 동기화하려면 Greengrass 코어 디바이스의 AWS IoT 정책에서 다음 AWS IoT Core 섀도우 정책 작업을 허용해야 합니다.
  + `iot:GetThingShadow`
  + `iot:UpdateThingShadow`
  + `iot:DeleteThingShadow`

  이러한 AWS IoT Core 정책에 대한 자세한 내용은 *AWS IoT 개발자 안내서*의 [AWS IoT Core 정책 작업을](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-actions.html) 참조하세요.

  최소 AWS IoT 정책에 대한 자세한 내용은 섹션을 참조하세요. [AWS IoT Greengrass V2 코어 디바이스에 대한 최소 AWS IoT 정책](device-auth.md#greengrass-core-minimal-iot-policy) 
+ 섀도 관리자 구성 요소는 VPC에서 실행할 수 있습니다.

## 종속성
<a name="shadow-manager-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#shadow-manager-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.3.13 ]

다음 표에는이 구성 요소의 버전 2.3.13에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.17.0 | 소프트 | 

------
#### [ 2.3.12 ]

다음 표에는이 구성 요소의 버전 2.3.12에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.17.0 | 소프트 | 

------
#### [ 2.3.11 ]

다음 표에는이 구성 요소의 버전 2.3.11에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.16.0 | 소프트 | 

------
#### [ 2.3.10 ]

다음 표에는이 구성 요소의 버전 2.3.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.15.0 | 소프트 | 

------
#### [ 2.3.9 ]

다음 표에는 이 구성 요소의 버전 2.3.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.14.0 | 소프트 | 

------
#### [ 2.3.5 – 2.3.8 ]

다음 표에는 이 구성 요소의 버전 2.3.5\$12.3.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.13.0 | 소프트 | 

------
#### [ 2.3.3 and 2.3.4 ]

다음 표에는 이 구성 요소의 버전 2.3.3 및 2.3.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.12.0 | 소프트 | 

------
#### [ 2.3.2 ]

다음 표에는 이 구성 요소의 버전 2.3.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.11.0 | 소프트 | 

------
#### [ 2.3.0 and 2.3.1 ]

다음 표에는 이 구성 요소의 버전 2.3.0 및 2.3.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.5.0 <2.10.0 | 소프트 | 

------
#### [ 2.2.3 and 2.2.4 ]

다음 표에는 이 구성 요소의 버전 2.2.3 및 2.2.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <3.0.0 | 소프트 | 

------
#### [ 2.2.2 ]

다음 표에는 이 구성 요소의 버전 2.2.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.9.0 | 소프트 | 

------
#### [ 2.2.1 ]

다음 표에는 이 구성 요소의 버전 2.2.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.8.0 | 소프트 | 

------
#### [ 2.1.1 and 2.2.0 ]

다음 표에는 이 구성 요소의 버전 2.1.1 및 2.2.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.7.0 | 소프트 | 

------
#### [ 2.0.5 - 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.0.5\$12.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.6.0 | 소프트 | 

------
#### [ 2.0.3 and 2.0.4 ]

다음 표에는 이 구성 요소의 버전 2.0.3 및 2.0.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.5.0 | 소프트 | 

------
#### [ 2.0.1 and 2.0.2 ]

다음 표에는 이 구성 요소의 버전 2.0.1 및 2.0.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.4.0 | 소프트 | 

------
#### [ 2.0.0 ]

다음 표에는 이 구성 요소의 버전 2.0.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.2.0 <2.3.0 | 소프트 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="shadow-manager-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

------
#### [ 2.3.x ]

`strategy`  <a name="shadow-manager-component-configuration-strategy"></a>
(선택 사항)이 구성 요소가 AWS IoT Core 와 코어 디바이스 간에 섀도우를 동기화하는 데 사용하는 전략입니다.  
이 객체에는 다음 정보가 포함됩니다.    
`type`  
(선택 사항) 이 구성 요소가 AWS IoT Core 와 코어 디바이스 간에 섀도를 동기화하는 데 사용하는 전략의 유형. 다음 옵션 중 하나를 선택합니다.  
+ `realTime` - 섀도우 업데이트가 발생할 AWS IoT Core 때마다 섀도우를와 동기화합니다.
+ `periodic` - `delay` 구성 파라미터로 지정한 AWS IoT Core 정기적인 간격으로 섀도우를와 동기화합니다.
기본값: `realTime`  
`delay`  
(선택 사항) `periodic` 동기화 전략을 지정하는 경우 이 구성 요소가 섀도를 AWS IoT Core와 동기화하는 간격(초).  
이 파라미터는 `periodic` 동기화 전략을 지정하는 경우에 필요합니다.

`synchronize`  <a name="shadow-manager-component-configuration-synchronize"></a>
<a name="shadow-manager-component-configuration-strategy-description"></a>(선택 사항) 섀도가 AWS 클라우드와 동기화되는 방법을 결정하는 동기화 설정.  
섀도를 AWS 클라우드와 동기화하려면 이 속성으로 구성 업데이트를 생성해야 합니다.
이 객체에는 다음 정보가 포함됩니다.    
`coreThing`  <a name="shadow-manager-component-configuration-synchronize-core-thing"></a>
(선택 사항) 동기화할 코어 디바이스 섀도. 이 객체에는 다음 정보가 포함됩니다.    
`classic`  
(선택 사항) 기본적으로 섀도 관리자는 코어 디바이스에 대한 클래식 섀도의 로컬 상태를 AWS 클라우드와 동기화합니다. 클래식 디바이스 섀도를 동기화하지 않으려면 이를 `false`로 설정합니다.  
기본값: `true`  
`namedShadows`  
(선택 사항) 동기화할 이름이 지정된 코어 디바이스 섀도의 목록. 섀도의 정확한 이름을 지정해야 합니다.  
 AWS IoT Greengrass 서비스는 `AWSManagedGreengrassV2Deployment`명명된 섀도우를 사용하여 개별 코어 디바이스를 대상으로 하는 배포를 관리합니다. 이 명명된 섀도우는 AWS IoT Greengrass 서비스에서 사용하도록 예약되어 있습니다. 이 이름이 지정된 섀도를 업데이트하거나 삭제하지 마세요.  
`shadowDocumentsMap`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents-map"></a>
(선택 사항) 동기화할 추가 디바이스 섀도. 이 구성 파라미터를 사용하면 섀도 문서를 더 간편하게 지정할 수 있습니다. 이 파라미터를 `shadowDocuments` 객체 대신 사용하는 것이 좋습니다.  
`shadowDocumentsMap` 객체를 지정하는 경우 `shadowDocuments` 객체를 지정해서는 안 됩니다.
각 객체에는 다음 정보가 포함되어 있습니다.    
*`thingName`*  
이 섀도 구성의 *thingName*에 대한 섀도 구성.    
`classic`  
(선택 사항) 클래식 디바이스 섀도를 `thingName` 디바이스와 동기화하지 않으려면 이를 `false`로 설정합니다.  
`namedShadows`  
동기화하려는 이름이 지정된 섀도의 목록. 섀도의 정확한 이름을 지정해야 합니다.  
`shadowDocuments`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents"></a>
(선택 사항) 동기화할 추가 디바이스 섀도의 목록. `shadowDocumentsMap` 파라미터를 대신 사용하는 것이 좋습니다.  
`shadowDocuments` 객체를 지정하는 경우 `shadowDocumentsMap` 객체를 지정해서는 안 됩니다.
이 목록의 각 객체에는 다음 정보가 포함되어 있습니다.    
`thingName`  
섀도를 동기화할 디바이스의 사물 이름.  
`classic`  
(선택 사항) 클래식 디바이스 섀도를 `thingName` 디바이스와 동기화하지 않으려면 이를 `false`로 설정합니다.  
기본값: `true`  
`namedShadows`  
(선택 사항) 동기화하려는 이름이 지정된 디바이스 섀도의 목록. 섀도의 정확한 이름을 지정해야 합니다.  
`direction`  
(선택 사항) 로컬 섀도 서비스와 AWS 클라우드간에 섀도를 동기화하는 방향. AWS 클라우드에 대한 대역폭 및 연결을 줄이도록 이 옵션을 구성할 수 있습니다. 다음 옵션 중 하나를 선택합니다.  
+ `betweenDeviceAndCloud` - 로컬 섀도 서비스와 AWS 클라우드간에 섀도를 동기화합니다.
+ `deviceToCloud` - 로컬 섀도우 서비스에서 로 섀도우 업데이트를 보내고에서 섀도우 업데이트를 AWS 클라우드무시합니다 AWS 클라우드.
+ `cloudToDevice` - AWS 클라우드에서 섀도 업데이트를 수신하고 섀도 업데이트를 로컬 섀도 서비스에서 AWS 클라우드로 전송하지 않습니다.
기본값: `BETWEEN_DEVICE_AND_CLOUD`

`rateLimits`  <a name="shadow-manager-component-configuration-rate-limits"></a>
(선택 사항) 섀도 서비스 요청의 속도 제한을 결정하는 설정.  
이 객체에는 다음 정보가 포함됩니다.    
`maxOutboundSyncUpdatesPerSecond`  
(선택 사항) 디바이스가 전송하는 초당 최대 동기화 요청 수.  
기본값: 초당 100개 요청  
`maxTotalLocalRequestsRate`  
(선택 사항) 코어 디바이스로 전송되는 초당 최대 로컬 IPC 요청 수.  
기본값: 초당 200개 요청  
`maxLocalRequestsPerSecondPerThing`  
(선택 사항) 연결된 각 IoT 사물에 대해 전송되는 초당 최대 로컬 IPC 요청 수.  
기본값: 각 사물에 대해 초당 20개 요청
이러한 속도 제한 파라미터는 로컬 섀도 서비스에 대한 초당 최대 요청 수를 정의합니다. AWS IoT 디바이스 섀도우 서비스에 대한 초당 최대 요청 수는에 따라 다릅니다 AWS 리전. 자세한 내용은 *Amazon Web Services 일반 참조*의 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits)에 대한 제한을 참조하세요.

`shadowDocumentSizeLimitBytes`  <a name="shadow-manager-component-configuration-shadow-document-size-limit-bytes"></a>
(선택 사항) 로컬 섀도에 대한 각 JSON 상태 문서의 최대 허용 크기.  
이 값을 늘리면 클라우드 섀도에 대한 JSON 상태 문서의 리소스 제한도 늘려야 합니다. 자세한 내용은 *Amazon Web Services 일반 참조*의 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits)에 대한 제한을 참조하세요.  
기본값: 8,192바이트  
최대: 30,720바이트

**Example 예: 구성 병합 업데이트**  
다음 예제에서는 섀도 관리자 구성 요소에 사용 가능한 모든 구성 파라미터가 포함된 샘플 구성 병합 업데이트를 보여줍니다.  

```
{
   "strategy":{
      "type":"periodic",
      "delay":300
   },
   "synchronize":{
      "shadowDocumentsMap":{
         "MyDevice1":{
            "classic":false,
            "namedShadows":[
               "MyShadowA",
               "MyShadowB"
            ]
         },
         "MyDevice2":{
            "classic":true,
            "namedShadows":[]
         }
      },
      "direction":"betweenDeviceAndCloud"
   },
   "rateLimits":{
      "maxOutboundSyncUpdatesPerSecond":100,
      "maxTotalLocalRequestsRate":200,
      "maxLocalRequestsPerSecondPerThing":20
   },
   "shadowDocumentSizeLimitBytes":8192
}
```

------
#### [ 2.2.x ]

`strategy`  <a name="shadow-manager-component-configuration-strategy"></a>
(선택 사항)이 구성 요소가 AWS IoT Core 와 코어 디바이스 간에 섀도우를 동기화하는 데 사용하는 전략입니다.  
이 객체에는 다음 정보가 포함됩니다.    
`type`  
(선택 사항) 이 구성 요소가 AWS IoT Core 와 코어 디바이스 간에 섀도를 동기화하는 데 사용하는 전략의 유형. 다음 옵션 중 하나를 선택합니다.  
+ `realTime` - 섀도우 업데이트가 발생할 AWS IoT Core 때마다 섀도우를와 동기화합니다.
+ `periodic` - `delay` 구성 파라미터로 지정한 AWS IoT Core 정기적인 간격으로 섀도우를와 동기화합니다.
기본값: `realTime`  
`delay`  
(선택 사항) `periodic` 동기화 전략을 지정하는 경우 이 구성 요소가 섀도를 AWS IoT Core와 동기화하는 간격(초).  
이 파라미터는 `periodic` 동기화 전략을 지정하는 경우에 필요합니다.

`synchronize`  <a name="shadow-manager-component-configuration-synchronize"></a>
<a name="shadow-manager-component-configuration-strategy-description"></a>(선택 사항) 섀도가 AWS 클라우드와 동기화되는 방법을 결정하는 동기화 설정.  
섀도를 AWS 클라우드와 동기화하려면 이 속성으로 구성 업데이트를 생성해야 합니다.
이 객체에는 다음 정보가 포함됩니다.    
`coreThing`  <a name="shadow-manager-component-configuration-synchronize-core-thing"></a>
(선택 사항) 동기화할 코어 디바이스 섀도. 이 객체에는 다음 정보가 포함됩니다.    
`classic`  
(선택 사항) 기본적으로 섀도 관리자는 코어 디바이스에 대한 클래식 섀도의 로컬 상태를 AWS 클라우드와 동기화합니다. 클래식 디바이스 섀도를 동기화하지 않으려면 이를 `false`로 설정합니다.  
기본값: `true`  
`namedShadows`  
(선택 사항) 동기화할 이름이 지정된 코어 디바이스 섀도의 목록. 섀도의 정확한 이름을 지정해야 합니다.  
 AWS IoT Greengrass 서비스는 `AWSManagedGreengrassV2Deployment`명명된 섀도우를 사용하여 개별 코어 디바이스를 대상으로 하는 배포를 관리합니다. 이 명명된 섀도우는 AWS IoT Greengrass 서비스에서 사용하도록 예약되어 있습니다. 이 이름이 지정된 섀도를 업데이트하거나 삭제하지 마세요.  
`shadowDocumentsMap`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents-map"></a>
(선택 사항) 동기화할 추가 디바이스 섀도. 이 구성 파라미터를 사용하면 섀도 문서를 더 간편하게 지정할 수 있습니다. 이 파라미터를 `shadowDocuments` 객체 대신 사용하는 것이 좋습니다.  
`shadowDocumentsMap` 객체를 지정하는 경우 `shadowDocuments` 객체를 지정해서는 안 됩니다.
각 객체에는 다음 정보가 포함되어 있습니다.    
*`thingName`*  
이 섀도 구성의 *thingName*에 대한 섀도 구성.    
`classic`  
(선택 사항) 클래식 디바이스 섀도를 `thingName` 디바이스와 동기화하지 않으려면 이를 `false`로 설정합니다.  
`namedShadows`  
동기화하려는 이름이 지정된 섀도의 목록. 섀도의 정확한 이름을 지정해야 합니다.  
`shadowDocuments`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents"></a>
(선택 사항) 동기화할 추가 디바이스 섀도의 목록. `shadowDocumentsMap` 파라미터를 대신 사용하는 것이 좋습니다.  
`shadowDocuments` 객체를 지정하는 경우 `shadowDocumentsMap` 객체를 지정해서는 안 됩니다.
이 목록의 각 객체에는 다음 정보가 포함되어 있습니다.    
`thingName`  
섀도를 동기화할 디바이스의 사물 이름.  
`classic`  
(선택 사항) 클래식 디바이스 섀도를 `thingName` 디바이스와 동기화하지 않으려면 이를 `false`로 설정합니다.  
기본값: `true`  
`namedShadows`  
(선택 사항) 동기화하려는 이름이 지정된 디바이스 섀도의 목록. 섀도의 정확한 이름을 지정해야 합니다.  
`direction`  
(선택 사항) 로컬 섀도 서비스와 AWS 클라우드간에 섀도를 동기화하는 방향. AWS 클라우드에 대한 대역폭 및 연결을 줄이도록 이 옵션을 구성할 수 있습니다. 다음 옵션 중 하나를 선택합니다.  
+ `betweenDeviceAndCloud` - 로컬 섀도 서비스와 AWS 클라우드간에 섀도를 동기화합니다.
+ `deviceToCloud` - 로컬 섀도우 서비스에서 로 섀도우 업데이트를 보내고에서 섀도우 업데이트를 AWS 클라우드무시합니다 AWS 클라우드.
+ `cloudToDevice` - AWS 클라우드에서 섀도 업데이트를 수신하고 섀도 업데이트를 로컬 섀도 서비스에서 AWS 클라우드로 전송하지 않습니다.
기본값: `BETWEEN_DEVICE_AND_CLOUD`

`rateLimits`  <a name="shadow-manager-component-configuration-rate-limits"></a>
(선택 사항) 섀도 서비스 요청의 속도 제한을 결정하는 설정.  
이 객체에는 다음 정보가 포함됩니다.    
`maxOutboundSyncUpdatesPerSecond`  
(선택 사항) 디바이스가 전송하는 초당 최대 동기화 요청 수.  
기본값: 초당 100개 요청  
`maxTotalLocalRequestsRate`  
(선택 사항) 코어 디바이스로 전송되는 초당 최대 로컬 IPC 요청 수.  
기본값: 초당 200개 요청  
`maxLocalRequestsPerSecondPerThing`  
(선택 사항) 연결된 각 IoT 사물에 대해 전송되는 초당 최대 로컬 IPC 요청 수.  
기본값: 각 사물에 대해 초당 20개 요청
이러한 속도 제한 파라미터는 로컬 섀도 서비스에 대한 초당 최대 요청 수를 정의합니다. AWS IoT 디바이스 섀도우 서비스에 대한 초당 최대 요청 수는에 따라 다릅니다 AWS 리전. 자세한 내용은 *Amazon Web Services 일반 참조*의 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits)에 대한 제한을 참조하세요.

`shadowDocumentSizeLimitBytes`  <a name="shadow-manager-component-configuration-shadow-document-size-limit-bytes"></a>
(선택 사항) 로컬 섀도에 대한 각 JSON 상태 문서의 최대 허용 크기.  
이 값을 늘리면 클라우드 섀도에 대한 JSON 상태 문서의 리소스 제한도 늘려야 합니다. 자세한 내용은 *Amazon Web Services 일반 참조*의 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits)에 대한 제한을 참조하세요.  
기본값: 8,192바이트  
최대: 30,720바이트

**Example 예: 구성 병합 업데이트**  
다음 예제에서는 섀도 관리자 구성 요소에 사용 가능한 모든 구성 파라미터가 포함된 샘플 구성 병합 업데이트를 보여줍니다.  

```
{
   "strategy":{
      "type":"periodic",
      "delay":300
   },
   "synchronize":{
      "shadowDocumentsMap":{
         "MyDevice1":{
            "classic":false,
            "namedShadows":[
               "MyShadowA",
               "MyShadowB"
            ]
         },
         "MyDevice2":{
            "classic":true,
            "namedShadows":[]
         }
      },
      "direction":"betweenDeviceAndCloud"
   },
   "rateLimits":{
      "maxOutboundSyncUpdatesPerSecond":100,
      "maxTotalLocalRequestsRate":200,
      "maxLocalRequestsPerSecondPerThing":20
   },
   "shadowDocumentSizeLimitBytes":8192
}
```

------
#### [ 2.1.x ]

`strategy`  <a name="shadow-manager-component-configuration-strategy"></a>
(선택 사항)이 구성 요소가 AWS IoT Core 와 코어 디바이스 간에 섀도우를 동기화하는 데 사용하는 전략입니다.  
이 객체에는 다음 정보가 포함됩니다.    
`type`  
(선택 사항) 이 구성 요소가 AWS IoT Core 와 코어 디바이스 간에 섀도를 동기화하는 데 사용하는 전략의 유형. 다음 옵션 중 하나를 선택합니다.  
+ `realTime` - 섀도우 업데이트가 발생할 AWS IoT Core 때마다 섀도우를와 동기화합니다.
+ `periodic` - `delay` 구성 파라미터로 지정한 AWS IoT Core 정기적인 간격으로 섀도우를와 동기화합니다.
기본값: `realTime`  
`delay`  
(선택 사항) `periodic` 동기화 전략을 지정하는 경우 이 구성 요소가 섀도를 AWS IoT Core와 동기화하는 간격(초).  
이 파라미터는 `periodic` 동기화 전략을 지정하는 경우에 필요합니다.

`synchronize`  <a name="shadow-manager-component-configuration-synchronize"></a>
<a name="shadow-manager-component-configuration-strategy-description"></a>(선택 사항) 섀도가 AWS 클라우드와 동기화되는 방법을 결정하는 동기화 설정.  
섀도를 AWS 클라우드와 동기화하려면 이 속성으로 구성 업데이트를 생성해야 합니다.
이 객체에는 다음 정보가 포함됩니다.    
`coreThing`  <a name="shadow-manager-component-configuration-synchronize-core-thing"></a>
(선택 사항) 동기화할 코어 디바이스 섀도. 이 객체에는 다음 정보가 포함됩니다.    
`classic`  
(선택 사항) 기본적으로 섀도 관리자는 코어 디바이스에 대한 클래식 섀도의 로컬 상태를 AWS 클라우드와 동기화합니다. 클래식 디바이스 섀도를 동기화하지 않으려면 이를 `false`로 설정합니다.  
기본값: `true`  
`namedShadows`  
(선택 사항) 동기화할 이름이 지정된 코어 디바이스 섀도의 목록. 섀도의 정확한 이름을 지정해야 합니다.  
 AWS IoT Greengrass 서비스는 `AWSManagedGreengrassV2Deployment`명명된 섀도우를 사용하여 개별 코어 디바이스를 대상으로 하는 배포를 관리합니다. 이 명명된 섀도우는 AWS IoT Greengrass 서비스에서 사용하도록 예약되어 있습니다. 이 이름이 지정된 섀도를 업데이트하거나 삭제하지 마세요.  
`shadowDocumentsMap`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents-map"></a>
(선택 사항) 동기화할 추가 디바이스 섀도. 이 구성 파라미터를 사용하면 섀도 문서를 더 간편하게 지정할 수 있습니다. 이 파라미터를 `shadowDocuments` 객체 대신 사용하는 것이 좋습니다.  
`shadowDocumentsMap` 객체를 지정하는 경우 `shadowDocuments` 객체를 지정해서는 안 됩니다.
각 객체에는 다음 정보가 포함되어 있습니다.    
*`thingName`*  
이 섀도 구성의 *thingName*에 대한 섀도 구성.    
`classic`  
(선택 사항) 클래식 디바이스 섀도를 `thingName` 디바이스와 동기화하지 않으려면 이를 `false`로 설정합니다.  
`namedShadows`  
동기화하려는 이름이 지정된 섀도의 목록. 섀도의 정확한 이름을 지정해야 합니다.  
`shadowDocuments`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents"></a>
(선택 사항) 동기화할 추가 디바이스 섀도의 목록. `shadowDocumentsMap` 파라미터를 대신 사용하는 것이 좋습니다.  
`shadowDocuments` 객체를 지정하는 경우 `shadowDocumentsMap` 객체를 지정해서는 안 됩니다.
이 목록의 각 객체에는 다음 정보가 포함되어 있습니다.    
`thingName`  
섀도를 동기화할 디바이스의 사물 이름.  
`classic`  
(선택 사항) 클래식 디바이스 섀도를 `thingName` 디바이스와 동기화하지 않으려면 이를 `false`로 설정합니다.  
기본값: `true`  
`namedShadows`  
(선택 사항) 동기화하려는 이름이 지정된 디바이스 섀도의 목록. 섀도의 정확한 이름을 지정해야 합니다.

`rateLimits`  <a name="shadow-manager-component-configuration-rate-limits"></a>
(선택 사항) 섀도 서비스 요청의 속도 제한을 결정하는 설정.  
이 객체에는 다음 정보가 포함됩니다.    
`maxOutboundSyncUpdatesPerSecond`  
(선택 사항) 디바이스가 전송하는 초당 최대 동기화 요청 수.  
기본값: 초당 100개 요청  
`maxTotalLocalRequestsRate`  
(선택 사항) 코어 디바이스로 전송되는 초당 최대 로컬 IPC 요청 수.  
기본값: 초당 200개 요청  
`maxLocalRequestsPerSecondPerThing`  
(선택 사항) 연결된 각 IoT 사물에 대해 전송되는 초당 최대 로컬 IPC 요청 수.  
기본값: 각 사물에 대해 초당 20개 요청
이러한 속도 제한 파라미터는 로컬 섀도 서비스에 대한 초당 최대 요청 수를 정의합니다. AWS IoT 디바이스 섀도우 서비스에 대한 초당 최대 요청 수는에 따라 다릅니다 AWS 리전. 자세한 내용은 *Amazon Web Services 일반 참조*의 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits)에 대한 제한을 참조하세요.

`shadowDocumentSizeLimitBytes`  <a name="shadow-manager-component-configuration-shadow-document-size-limit-bytes"></a>
(선택 사항) 로컬 섀도에 대한 각 JSON 상태 문서의 최대 허용 크기.  
이 값을 늘리면 클라우드 섀도에 대한 JSON 상태 문서의 리소스 제한도 늘려야 합니다. 자세한 내용은 *Amazon Web Services 일반 참조*의 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits)에 대한 제한을 참조하세요.  
기본값: 8,192바이트  
최대: 30,720바이트

**Example 예: 구성 병합 업데이트**  
다음 예제에서는 섀도 관리자 구성 요소에 사용 가능한 모든 구성 파라미터가 포함된 샘플 구성 병합 업데이트를 보여줍니다.  

```
{
   "strategy":{
      "type":"periodic",
      "delay":300
   },
   "synchronize":{
      "shadowDocumentsMap":{
         "MyDevice1":{
            "classic":false,
            "namedShadows":[
               "MyShadowA",
               "MyShadowB"
            ]
         },
         "MyDevice2":{
            "classic":true,
            "namedShadows":[]
         }
      },
      "direction":"betweenDeviceAndCloud"
   },
   "rateLimits":{
      "maxOutboundSyncUpdatesPerSecond":100,
      "maxTotalLocalRequestsRate":200,
      "maxLocalRequestsPerSecondPerThing":20
   },
   "shadowDocumentSizeLimitBytes":8192
}
```

------
#### [ 2.0.x ]

`synchronize`  <a name="shadow-manager-component-configuration-synchronize"></a>
<a name="shadow-manager-component-configuration-strategy-description"></a>(선택 사항) 섀도가 AWS 클라우드와 동기화되는 방법을 결정하는 동기화 설정.  
섀도를 AWS 클라우드와 동기화하려면 이 속성으로 구성 업데이트를 생성해야 합니다.
이 객체에는 다음 정보가 포함됩니다.    
`coreThing`  <a name="shadow-manager-component-configuration-synchronize-core-thing"></a>
(선택 사항) 동기화할 코어 디바이스 섀도. 이 객체에는 다음 정보가 포함됩니다.    
`classic`  
(선택 사항) 기본적으로 섀도 관리자는 코어 디바이스에 대한 클래식 섀도의 로컬 상태를 AWS 클라우드와 동기화합니다. 클래식 디바이스 섀도를 동기화하지 않으려면 이를 `false`로 설정합니다.  
기본값: `true`  
`namedShadows`  
(선택 사항) 동기화할 이름이 지정된 코어 디바이스 섀도의 목록. 섀도의 정확한 이름을 지정해야 합니다.  
 AWS IoT Greengrass 서비스는 `AWSManagedGreengrassV2Deployment`명명된 섀도우를 사용하여 개별 코어 디바이스를 대상으로 하는 배포를 관리합니다. 이 명명된 섀도우는 AWS IoT Greengrass 서비스에서 사용하도록 예약되어 있습니다. 이 이름이 지정된 섀도를 업데이트하거나 삭제하지 마세요.  
`shadowDocumentsMap`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents-map"></a>
(선택 사항) 동기화할 추가 디바이스 섀도. 이 구성 파라미터를 사용하면 섀도 문서를 더 간편하게 지정할 수 있습니다. 이 파라미터를 `shadowDocuments` 객체 대신 사용하는 것이 좋습니다.  
`shadowDocumentsMap` 객체를 지정하는 경우 `shadowDocuments` 객체를 지정해서는 안 됩니다.
각 객체에는 다음 정보가 포함되어 있습니다.    
*`thingName`*  
이 섀도 구성의 *thingName*에 대한 섀도 구성.    
`classic`  
(선택 사항) 클래식 디바이스 섀도를 `thingName` 디바이스와 동기화하지 않으려면 이를 `false`로 설정합니다.  
`namedShadows`  
동기화하려는 이름이 지정된 섀도의 목록. 섀도의 정확한 이름을 지정해야 합니다.  
`shadowDocuments`  <a name="shadow-manager-component-configuration-synchronize-shadow-documents"></a>
(선택 사항) 동기화할 추가 디바이스 섀도의 목록. `shadowDocumentsMap` 파라미터를 대신 사용하는 것이 좋습니다.  
`shadowDocuments` 객체를 지정하는 경우 `shadowDocumentsMap` 객체를 지정해서는 안 됩니다.
이 목록의 각 객체에는 다음 정보가 포함되어 있습니다.    
`thingName`  
섀도를 동기화할 디바이스의 사물 이름.  
`classic`  
(선택 사항) 클래식 디바이스 섀도를 `thingName` 디바이스와 동기화하지 않으려면 이를 `false`로 설정합니다.  
기본값: `true`  
`namedShadows`  
(선택 사항) 동기화하려는 이름이 지정된 디바이스 섀도의 목록. 섀도의 정확한 이름을 지정해야 합니다.

`rateLimits`  <a name="shadow-manager-component-configuration-rate-limits"></a>
(선택 사항) 섀도 서비스 요청의 속도 제한을 결정하는 설정.  
이 객체에는 다음 정보가 포함됩니다.    
`maxOutboundSyncUpdatesPerSecond`  
(선택 사항) 디바이스가 전송하는 초당 최대 동기화 요청 수.  
기본값: 초당 100개 요청  
`maxTotalLocalRequestsRate`  
(선택 사항) 코어 디바이스로 전송되는 초당 최대 로컬 IPC 요청 수.  
기본값: 초당 200개 요청  
`maxLocalRequestsPerSecondPerThing`  
(선택 사항) 연결된 각 IoT 사물에 대해 전송되는 초당 최대 로컬 IPC 요청 수.  
기본값: 각 사물에 대해 초당 20개 요청
이러한 속도 제한 파라미터는 로컬 섀도 서비스에 대한 초당 최대 요청 수를 정의합니다. AWS IoT 디바이스 섀도우 서비스에 대한 초당 최대 요청 수는에 따라 다릅니다 AWS 리전. 자세한 내용은 *Amazon Web Services 일반 참조*의 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits)에 대한 제한을 참조하세요.

`shadowDocumentSizeLimitBytes`  <a name="shadow-manager-component-configuration-shadow-document-size-limit-bytes"></a>
(선택 사항) 로컬 섀도에 대한 각 JSON 상태 문서의 최대 허용 크기.  
이 값을 늘리면 클라우드 섀도에 대한 JSON 상태 문서의 리소스 제한도 늘려야 합니다. 자세한 내용은 *Amazon Web Services 일반 참조*의 [AWS IoT Device Shadow Service API](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#device-shadow-limits)에 대한 제한을 참조하세요.  
기본값: 8,192바이트  
최대: 30,720바이트

**Example 예: 구성 병합 업데이트**  
다음 예제에서는 섀도 관리자 구성 요소에 사용 가능한 모든 구성 파라미터가 포함된 샘플 구성 병합 업데이트를 보여줍니다.  

```
{
  "synchronize": {
    "coreThing": {
      "classic": true,
      "namedShadows": [
        "MyCoreShadowA",
        "MyCoreShadowB"
      ]
    },
    "shadowDocuments": [
      {
        "thingName": "MyDevice1",
        "classic": false,
        "namedShadows": [
          "MyShadowA",
          "MyShadowB"
        ]
      },
      {
        "thingName": "MyDevice2",
        "classic": true,
        "namedShadows": []
      }
    ]
  },
  "rateLimits": {       
    "maxOutboundSyncUpdatesPerSecond": 100,
    "maxTotalLocalRequestsRate": 200,
    "maxLocalRequestsPerSecondPerThing": 20
  },
  "shadowDocumentSizeLimitBytes": 8192
}
```

------

## 로컬 로그 파일
<a name="shadow-manager-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="shadow-manager-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  버전  |  변경 사항  | 
| --- | --- | 
|  2.3.13  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.3.12  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.3.11  | Greengrass nucleus 버전 2.15.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.3.10  | Greengrass nucleus 버전 2.14.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.3.9  | Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.3.8  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.3.7  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.3.6  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.3.5  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.3.4  |  <a name="changelog-shadow-manager-2.3.4"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/shadow-manager-component.html)  | 
|  2.3.3  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.3.2  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.3.1  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.3.0  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.2.4  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/shadow-manager-component.html) | 
|  2.2.3  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.2.2  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.2.1  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.2.0  |  <a name="changelog-shadow-manager-2.2.0"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/shadow-manager-component.html)  | 
|  2.1.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/shadow-manager-component.html)  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/shadow-manager-component.html)  | 
|  2.0.6  |  이 버전에는 버그 수정과 개선 사항이 포함되어 있습니다.  | 
|  2.0.5  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/shadow-manager-component.html)  | 
|  2.0.3  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/shadow-manager-component.html)  | 
|  2.0.1  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.0  |  초기 버전입니다.  | 

# Amazon SNS
<a name="sns-component"></a>

Amazon SNS 구성 요소(`aws.greengrass.SNS`)는 Amazon Simple Notification Service(Amazon SNS) 주제에 메시지를 게시합니다. 이 구성 요소를 사용하여 Greengrass 코어 디바이스에서 웹 서버, 이메일 주소, 기타 메시지 구독자에게 이벤트를 전송할 수 있습니다. 자세한 정보는 *Amazon Simple Notification 개발자 안내서*의 [What is Amazon SNS?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)를 참조하십시오.

이 구성 요소를 사용하여 Amazon SNS 주제에 게시하려면 이 구성 요소가 구독하는 주제에 메시지를 게시합니다. 기본적으로 이 구성 요소에서는 `sns/message` [로컬 게시/구독](ipc-publish-subscribe.md) 주제를 구독합니다. 이 구성 요소를 배포할 때 AWS IoT Core MQTT 주제를 포함한 다른 주제를 지정할 수 있습니다.

사용자 지정 구성 요소에서 필터링 또는 형식 지정 논리를 구현하여 다른 소스의 메시지를 이 구성 요소에 게시하기 전에 처리하고 싶을 수 있습니다. 이를 통해 메시지 처리 논리를 단일 구성 요소로 중앙 집중화할 수 있습니다.

**참고**  
이 구성 요소는 Amazon SNS 커넥터 in AWS IoT Greengrass V1과 유사한 기능을 제공합니다. 자세한 내용은 *AWS IoT Greengrass V1 개발자 안내서*의 [Amazon SNS 커넥터](https://docs.aws.amazon.com/greengrass/latest/developerguide/sns-connector.html)를 참조하세요.

**Topics**
+ [버전](#sns-component-versions)
+ [Type](#sns-component-type)
+ [운영 체제](#sns-component-os-support)
+ [요구 사항](#sns-component-requirements)
+ [종속성](#sns-component-dependencies)
+ [구성](#sns-component-configuration)
+ [입력 데이터](#sns-component-input-data)
+ [출력 데이터](#sns-component-output-data)
+ [로컬 로그 파일](#sns-component-log-file)
+ [라이선스](#sns-component-licenses)
+ [Changelog](#sns-component-changelog)

## 버전
<a name="sns-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.1.x
+ 2.0.x

## Type
<a name="sns-component-type"></a>

<a name="public-component-type-lambda"></a>이 <a name="public-component-type-lambda-phrase"></a>구성 요소는 Lambda 구성 요소(`aws.greengrass.lambda`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)에서는 [Lambda 런처 구성 요소](lambda-launcher-component.md)를 사용하여 이 구성 요소의 Lambda 함수를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="sns-component-os-support"></a>

이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.

## 요구 사항
<a name="sns-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
+ <a name="core-device-lambda-function-requirements"></a>Lambda 함수를 실행하려면 코어 디바이스가 요구 사항을 충족해야 합니다. 코어 디바이스에서 컨테이너화된 Lambda 함수를 실행하려면 디바이스가 요구 사항을 충족해야 합니다. 자세한 내용은 [Lambda 함수 요구 사항](setting-up.md#greengrass-v2-lambda-requirements) 단원을 참조하십시오.
+ <a name="public-component-python3-requirement"></a>코어 장치에 설치되고 PATH 환경 변수에 추가된 [Python](https://www.python.org/) 버전 3.7입니다.
+ Amazon SNS 주제. 자세한 설명은 *Amazon Simple Notification Service 개발자 안내서*에서 [Amazon SNS 주제 생성](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html)을 참조하세요.
+ 다음 예제 IAM 정책에 표시된 대로 [Greengrass 디바이스 역할](device-service-role.md)에서는 `sns:Publish` 작업이 허용되어야 합니다.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "sns:Publish"
        ],
        "Effect": "Allow",
        "Resource": [
          "arn:aws:sns:us-east-1:123456789012:topic-name"
        ]
      }
    ]
  }
  ```

------

  이 구성 요소의 입력 메시지 페이로드에서 기본 주제를 동적으로 재정의할 수 있습니다. 애플리케이션에서 이 기능을 사용하는 경우 IAM 정책에 모든 대상 주제가 리소스로 포함되어야 합니다. 리소스에 대한 세부적 또는 조건부 액세스 권한을 부여할 수 있습니다(예: 와일드카드 `*` 이름 지정 스키마를 사용해).
+ <a name="connector-component-legacy-subscription-router-dependency"></a>이 구성 요소의 출력 데이터를 수신하려면 이 구성 요소를 배포할 때 [레거시 구독 라우터 구성 요소](legacy-subscription-router-component.md)(`aws.greengrass.LegacySubscriptionRouter`)에 대한 다음 구성 업데이트를 병합해야 합니다. 이 구성에서는 이 구성 요소가 응답을 게시하는 주제를 지정합니다.

------
#### [ Legacy subscription router v2.1.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-sns": {
        "id": "aws-greengrass-sns",
        "source": "component:aws.greengrass.SNS",
        "subject": "sns/message/status",
        "target": "cloud"
      }
    }
  }
  ```

------
#### [ Legacy subscription router v2.0.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-sns": {
        "id": "aws-greengrass-sns",
        "source": "arn:aws:lambda:region:aws:function:aws-greengrass-sns:version",
        "subject": "sns/message/status",
        "target": "cloud"
      }
    }
  }
  ```<a name="connector-component-legacy-subscription-router-dependency-replace"></a>
  + *region* AWS 리전 을 사용하는 로 바꿉니다.
  + *버전*을 이 구성 요소에서 실행되는 Lambda 함수의 버전으로 바꿉니다. Lambda 함수 버전을 찾으려면 배포하려는 이 구성 요소의 버전에 대한 레시피를 확인해야 합니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서 이 구성 요소의 세부 정보 페이지를 열고 **Lambda 함수** 키-값 페어를 찾습니다. 이 키-값 페어에는 Lambda 함수의 이름과 버전이 포함되어 있습니다.

**중요**  <a name="connector-component-legacy-subscription-router-dependency-note"></a>
이 구성 요소를 배포할 때마다 레거시 구독 라우터의 Lambda 함수 버전을 업데이트해야 합니다. 이를 통해 배포하는 구성 요소 버전에 맞는 올바른 Lambda 함수 버전을 사용할 수 있습니다.

------

  <a name="connector-component-create-deployments"></a>자세한 내용은 [배포 만들기](create-deployments.md) 단원을 참조하십시오.
+ Amazon SNS 구성 요소는 VPC에서 실행할 수 있습니다. 이 구성 요소를 VPC에 배포하려면 다음이 필요합니다.
  + Amazon SNS 구성 요소에는 VPC 엔드포인트가 `com.amazonaws.us-east-1.sns`인 `sns.region.amazonaws.com`에 대한 연결이 있어야 합니다.

### 엔드포인트 및 포트
<a name="sns-component-endpoints"></a>

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에 다음 엔드포인트 및 포트에 대한 아웃바운드 요청도 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.


| 엔드포인트 | 포트 | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `sns.region.amazonaws.com`  | 443 | 예 |  Amazon SNS에 메시지 게시  | 

## 종속성
<a name="sns-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#sns-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.1.10 ]

다음 표에는 이 구성 요소의 버전 2.1.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.16.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.9 ]

다음 표에는 이 구성 요소의 버전 2.1.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.15.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.8 ]

다음 표에는 이 구성 요소의 버전 2.1.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.14.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.7 ]

다음 표에는 이 구성 요소의 버전 2.1.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.13.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.6 ]

다음 표에는 이 구성 요소의 버전 2.1.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.12.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.5 ]

다음 표에는 이 구성 요소의 버전 2.1.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.11.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.4 ]

다음 표에는 이 구성 요소의 버전 2.1.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.10.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.3 ]

다음 표에는 이 구성 요소의 버전 2.1.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.9.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.2 ]

다음 표에는 이 구성 요소의 버전 2.1.2에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.8 - 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.0.8 및 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.7 ]

다음 표에는 이 구성 요소의 버전 2.0.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.6 ]

다음 표에는 이 구성 요소의 버전 2.0.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.5 ]

다음 표에는 이 구성 요소의 버전 2.0.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.4 ]

다음 표에는 이 구성 요소의 버전 2.0.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.3 ]

다음 표에는 이 구성 요소의 버전 2.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.3 <2.1.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | >=1.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | >=1.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=1.0.0  | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="sns-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

**참고**  <a name="connector-component-lambda-parameters"></a>
이 구성 요소의 기본 구성에는 Lambda 함수 파라미터가 포함되어 있습니다. 디바이스에서 다음 파라미터만 사용하여 이 구성 요소를 구성하는 것이 좋습니다.

`lambdaParams`  
이 구성 요소의 Lambda 함수에 대한 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`EnvironmentVariables`  
Lambda 함수의 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`DEFAULT_SNS_ARN`  
이 구성 요소가 메시지를 게시하는 기본 Amazon SNS 주제의 ARN. 입력 메시지 페이로드의 `sns_topic_arn` 속성으로 대상 주제를 재정의할 수 있습니다.

`containerMode`  <a name="connector-component-container-mode-parameter"></a>
(선택 사항) 이 구성 요소에 대한 컨테이너화 모드. 다음 옵션 중 하나를 선택합니다.  <a name="lambda-function-component-container-mode-parameter"></a>
+ `NoContainer` – 구성 요소가 격리된 런타임 환경에서 실행되지 않습니다.
+ `GreengrassContainer` - 구성 요소는 AWS IoT Greengrass 컨테이너 내의 격리된 런타임 환경에서 실행됩니다.
기본값: `GreengrassContainer`

`containerParams`  
<a name="connector-component-container-params-description"></a>(선택 사항) 이 구성 요소에 대한 컨테이너 파라미터를 포함하는 객체입니다. `containerMode`에 `GreengrassContainer`를 지정하면 구성 요소에서 이러한 파라미터를 사용합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`memorySize`  
<a name="connector-component-container-params-memory-size-description"></a>(선택 사항) 구성 요소에 할당되는 메모리 양(킬로바이트)입니다.  
기본값은 512MB(525,312KB)입니다.

`pubsubTopics`  <a name="connector-component-pubsub-topics-parameter"></a>
(선택 사항) 구성 요소에서 메시지를 수신하려고 구독하는 주제를 포함하는 객체입니다. 각 주제와 구성 요소가 AWS IoT Core 또는 로컬 게시/구독 주제의 MQTT 주제를 구독하는지 여부를 지정할 수 있습니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`0` – 문자열 형태의 배열 인덱스입니다.  
다음 정보를 포함하는 객체입니다.    
`type`  
(선택 사항) 이 구성 요소에서 메시지 구독에 사용하는 게시/구독 메시징의 유형입니다. 다음 옵션 중 하나를 선택합니다.  
+ `PUB_SUB` – 로컬 게시/구독 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 섹션을 참조하세요.
+ `IOT_CORE` - AWS IoT Core MQTT 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.
기본값: `PUB_SUB`  
`topic`  
(선택 사항) 구성 요소가 메시지를 수신하기 위해 구독하는 주제입니다. `type`에 `IotCore`를 지정하면 이 주제에서 MQTT 와일드카드(`+` 및 `#`)를 사용할 수 있습니다.

**Example 예: 구성 병합 업데이트(컨테이너 모드)**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic"
    }
  },
  "containerMode": "GreengrassContainer"
}
```

**Example 예: 구성 병합 업데이트(컨테이너 없음 모드)**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic"
    }
  },
  "containerMode": "NoContainer"
}
```

## 입력 데이터
<a name="sns-component-input-data"></a>

이 구성 요소는 다음 주제에 대한 메시지를 수락하고 해당 메시지를 대상 Amazon SNS 주제에 그대로 게시합니다. <a name="connector-component-local-publish"></a>기본적으로 이 구성 요소는 로컬 게시/구독 메시지가 구독됩니다. 사용자 지정 구성 요소에서 이 구성 요소로 메시지를 게시하는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 섹션을 참조하세요.

**기본 주제(로컬 게시/구독):** `sns/message`

<a name="connector-component-input-properties"></a>메시지는 다음 속성을 수락합니다. 입력 메시지는 JSON 형식이어야 합니다.

`request`  
Amazon SNS 주제로 전송할 메시지에 대한 정보.  
유형: 다음 정보를 포함하는 `object`입니다.    
`message`  
문자열 형태의 메시지 콘텐츠.  
JSON 객체를 전송하려면 이를 문자열로 직렬화하고 `message_structure` 속성에 `json`을 지정합니다.  
유형: `string`  
`subject`  
(선택 사항) 메시지의 제목.  
유형: `string`  
제목은 ASCII 텍스트로 최대 100자까지 작성할 수 있습니다. 문자, 숫자 또는 구두점으로 시작해야 합니다. 줄 바꿈이나 제어 문자를 포함할 수 없습니다.  
`sns_topic_arn`  
(선택 사항) 이 구성 요소가 메시지를 게시하는 Amazon SNS 주제의 ARN. 기본 Amazon SNS 주제를 재정의하려면 이 속성을 지정합니다.  
유형: `string`  
`message_structure`  
(선택 사항) 메시지의 구조. `content` 속성에서 문자열로 직렬화하는 JSON 메시지를 전송하려면 `json`을 지정합니다.  
유형: `string`  
유효한 값: `json`

`id`  <a name="connector-component-input-property-id"></a>
요청에 대한 임의의 ID입니다. 이 속성을 사용하여 입력 요청을 출력 응답에 매핑할 수 있습니다. 이 속성을 지정하면 구성 요소는 응답 객체의 `id` 속성을 해당 값으로 설정합니다.  
유형: `string`

**참고**  
메시지 크기는 최대 256KB까지 가능합니다.

**Example 입력 예: 문자열 메시지**  

```
{
  "request": {
    "subject": "Message subject",
    "message": "Message data",
    "sns_topic_arn": "arn:aws:sns:region:account-id:topic2-name"
  },
  "id": "request123"
}
```

**Example 입력 예: JSON 메시지**  

```
{
  "request": {
    "subject": "Message subject",
    "message": "{ \"default\": \"Message data\" }",
    "message_structure": "json"
  },
  "id": "request123"
}
```

## 출력 데이터
<a name="sns-component-output-data"></a>

 <a name="connector-component-output-data"></a>이 구성 요소는 기본적으로 다음 MQTT 주제에 대한 출력 데이터로 응답을 게시합니다. [레거시 구독 라우터 구성 요소](legacy-subscription-router-component.md)의 구성에서 이 주제를 `subject`로 지정해야 합니다. 사용자 지정 구성 요소에서 이 주제에 대한 메시지를 구독하는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.

**기본 주제(AWS IoT Core MQTT):** `sns/message/status`

**Example 출력 예: 성공**  

```
{
  "response": {
    "sns_message_id": "f80a81bc-f44c-56f2-a0f0-d5af6a727c8a",
    "status": "success"
  },
  "id": "request123"
}
```

**Example 출력 예: 실패**  

```
{
  "response" : {
    "error": "InvalidInputException",
    "error_message": "SNS Topic Arn is invalid",
    "status": "fail"
  },
  "id": "request123"
}
```

## 로컬 로그 파일
<a name="sns-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

```
/greengrass/v2/logs/aws.greengrass.SNS.log
```

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. 를 AWS IoT Greengrass 루트 폴더의 경로`/greengrass/v2`로 바꿉니다.

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.SNS.log
  ```

## 라이선스
<a name="sns-component-licenses"></a>

이 구성 요소에는 다음 타사 소프트웨어/라이선스가 포함되어 있습니다.<a name="boto-3-licenses"></a>
+ [AWS SDK for Python (Boto3)](https://pypi.org/project/boto3/)/Apache 라이선스 2.0
+ [botocore](https://pypi.org/project/botocore/)/Apache 라이선스 2.0
+ [dateutil](https://pypi.org/project/python-dateutil/1.4/)/PSF 라이선스
+ [docutils](https://pypi.org/project/docutils/)/BSD 라이선스, GNU 일반 공개 라이선스(GPL), Python Software Foundation 라이선스, 퍼블릭 도메인
+ [jmespath](https://pypi.org/project/jmespath/)/MIT 라이선스
+ [s3transfer](https://pypi.org/project/s3transfer/)/Apache 라이선스 2.0
+ [urllib3](https://pypi.org/project/urllib3/)/MIT 라이선스

<a name="component-core-software-license"></a>이 구성 요소는 [Greengrass 코어 소프트웨어 라이선스 계약](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)에 따라 릴리스됩니다.

## Changelog
<a name="sns-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.1.10  | Greengrass nucleus 버전 2.15.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.9  | Greengrass nucleus 버전 2.14.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.8  | Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.7  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.6  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.5  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.4  | Greengrass nucleus 버전 2.9.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.3  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.2  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.1  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/sns-component.html)  | 
|  2.0.8  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.7  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.6  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.5  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.4  |  Greengrass nucleus 버전 2.1.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.3  |  초기 버전입니다.  | 

# 스트림 관리자
<a name="stream-manager-component"></a>

스트림 관리자 구성 요소(`aws.greengrass.StreamManager`)를 사용하면 Greengrass 코어 디바이스 AWS 클라우드 에서 로 전송할 데이터 스트림을 처리할 수 있습니다.

사용자 지정 구성 요소에서 스트림 관리자를 구성하고 사용하는 방법에 대한 자세한 내용은 [Greengrass 코어 디바이스에서 데이터 스트림 관리](manage-data-streams.md) 섹션을 참조하세요.

**Topics**
+ [버전](#stream-manager-component-versions)
+ [유형](#stream-manager-component-type)
+ [운영 체제](#stream-manager-component-os-support)
+ [요구 사항](#stream-manager-component-requirements)
+ [종속성](#stream-manager-component-dependencies)
+ [구성](#stream-manager-component-configuration)
+ [로컬 로그 파일](#stream-manager-component-log-file)
+ [Changelog](#stream-manager-component-changelog)

## 버전
<a name="stream-manager-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.2.x
+ 2.1.x
+ 2.0.x

**참고**  <a name="stream-manager-upgrade-note"></a>
스트림 관리자를 사용하여 클라우드로 데이터를 내보내는 경우에는 스트림 관리자 구성 요소의 버전 2.0.7을 v2.0.8과 v2.0.11 사이의 버전으로 업그레이드할 수 없습니다. 스트림 관리자를 처음 배포하는 경우 최신 버전의 스트림 관리자 구성 요소를 배포하는 것이 좋습니다.

## 유형
<a name="stream-manager-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="stream-manager-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="stream-manager-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
+ [토큰 교환 역할은](device-service-role.md) 스트림 관리자와 함께 사용하는 AWS 클라우드 대상에 대한 액세스를 허용해야 합니다. 자세한 내용은 다음을 참조하세요.<a name="export-destinations-links"></a>
  + [AWS IoT 분석 채널](stream-export-configurations.md#export-to-iot-analytics)
  + [Amazon Kinesis Data Streams](stream-export-configurations.md#export-to-kinesis)
  + [AWS IoT SiteWise 자산 속성](stream-export-configurations.md#export-to-iot-sitewise)
  + [Amazon S3 객체](stream-export-configurations.md#export-to-s3)
+ 스트림 관리자 구성 요소는 VPC에서 실행할 수 있습니다. 이 구성 요소를 VPC에 배포하려면 다음이 필요합니다.
  + 스트림 관리자 구성 요소는 데이터를 게시하는 AWS 서비스에 연결되어 있어야 합니다.
    + Amazon S3: `com.amazonaws.region.s3`
    + Amazon Kinesis Data Streams: `com.amazonaws.region.kinesis-streams`
    + AWS IoT SiteWise: `com.amazonaws.region.iotsitewise.data`
  + `us-east-1` 리전의 Amazon S3에 데이터를 게시하는 경우 이 구성 요소는 기본적으로 S3 전역 엔드포인트를 사용하려고 시도하지만 이 엔드포인트는 Amazon S3 VPC 인터페이스 엔드포인트를 통해서는 사용할 수 없습니다. 자세한 내용은 [ Amazon S3에 AWS PrivateLink 대한의 제한 및 제한을 참조하세요](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html#privatelink-limitations). 이 문제를 해결하려면 다음 옵션 중에서 선택할 수 있습니다.
    + `JVM_ARGS`에서 `-Daws.s3UseUsEast1RegionalEndpoint=regional`을 설정하여 `us-east-1` 리전의 지역 S3 엔드포인트를 사용하도록 스트림 관리자 구성 요소를 구성합니다.
    + Amazon S3 인터페이스 VPC 엔드포인트 대신 Amazon S3 게이트웨이 VPC 엔드포인트를 생성합니다. S3 게이트웨이 엔드포인트는 S3 전역 엔드포인트에 대한 액세스를 지원합니다. 자세한 내용은 [게이트웨이 엔드포인트 생성](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html#create-gateway-endpoint-s3)을 참조하세요.

### 엔드포인트 및 포트
<a name="stream-manager-component-endpoints"></a>

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에 다음 엔드포인트 및 포트에 대한 아웃바운드 요청도 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.


| 엔드포인트 | Port | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `iotanalytics.region.amazonaws.com`  | 443 | 아니요 |  데이터를에 게시하는 경우 필요합니다 AWS IoT 분석.  | 
|  `kinesis.region.amazonaws.com`  | 443 | 아니요 |  Firehose에 데이터를 게시하는 경우 필요합니다.  | 
|  `data.iotsitewise.region.amazonaws.com`  | 443 | 아니요 |  데이터를에 게시하는 경우 필요합니다 AWS IoT SiteWise.  | 
|  `*.s3.amazonaws.com`  | 443 | 아니요 |  S3 버킷에 데이터를 게시하는 경우 필요합니다. `*`를 데이터를 게시하는 각 버킷의 이름으로 바꿀 수 있습니다.  | 

## 종속성
<a name="stream-manager-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#stream-manager-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.1.3 – 2.2.1 ]

다음 표에는이 구성 요소의 버전 2.1.3\$12.2.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <3.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) |  >=0.0.0  | 하드 | 

------
#### [ 2.1.11 – 2.1.12 ]

다음 표에는 이 구성 요소의 버전 2.1.11\$12.1.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.13.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) |  >=0.0.0  | 하드 | 

------
#### [ 2.1.9 – 2.1.10 ]

다음 표에는 이 구성 요소의 버전 2.1.9\$12.1.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.12.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) |  >=0.0.0  | 하드 | 

------
#### [ 2.1.5 – 2.1.8 ]

다음 표에는 이 구성 요소의 버전 2.1.5\$12.1.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.11.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) |  >=0.0.0  | 하드 | 

------
#### [ 2.1.2 – 2.1.4 ]

다음 표에는 이 구성 요소의 버전 2.1.2\$12.1.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.10.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) |  >=0.0.0  | 하드 | 

------
#### [ 2.1.1 ]

다음 표에는 이 구성 요소의 버전 2.1.1에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.9.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) |  >=0.0.0  | 하드 | 

------
#### [ 2.1.0 ]

다음 표에는 이 구성 요소의 버전 2.1.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.8.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) |  >=0.0.0  | 하드 | 

------
#### [ 2.0.15 ]

다음 표에는 이 구성 요소의 버전 2.0.15에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.7.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) |  >=0.0.0  | 하드 | 

------
#### [ 2.0.13 and 2.0.14 ]

다음 표에는 이 구성 요소의 버전 2.0.13 및 2.0.14에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.6.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) |  >=0.0.0  | 하드 | 

------
#### [ 2.0.11 and 2.0.12 ]

다음 표에는 이 구성 요소의 버전 2.0.11 및 2.0.12에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.5.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) |  >=0.0.0  | 하드 | 

------
#### [ 2.0.10 ]

다음 표에는 이 구성 요소의 버전 2.0.10에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.4.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) |  >=0.0.0  | 하드 | 

------
#### [ 2.0.9 ]

다음 표에는 이 구성 요소의 버전 2.0.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.3.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) |  >=0.0.0  | 하드 | 

------
#### [ 2.0.8 ]

다음 표에는 이 구성 요소의 버전 2.0.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.0 <2.2.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) |  >=0.0.0  | 하드 | 

------
#### [ 2.0.7 ]

다음 표에는 이 구성 요소의 버전 2.0.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) |  >=2.0.3 <2.1.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) |  >=0.0.0  | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="stream-manager-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

`STREAM_MANAGER_STORE_ROOT_DIR`  
(선택 사항) 스트림을 저장하는 데 사용되는 로컬 디렉터리의 절대 경로. 이 값은 슬래시로 시작해야 합니다(예: `/data`).  
<a name="stream-manager-store-root-dir-parameter-folder-requirements"></a>기존 폴더를 지정해야 하며 [스트림 관리자 구성 요소를 실행하는 시스템 사용자](configure-greengrass-core-v2.md#configure-component-user)에게 이 폴더를 읽고 쓸 권한이 있어야 합니다. 예를 들어 다음 명령을 실행하여 스트림 관리자 루트 폴더로 지정하는 폴더(`/var/greengrass/streams`)를 생성하고 구성할 수 있습니다. 이러한 명령을 사용하면 기본 시스템 사용자(`ggc_user`)가 이 폴더를 읽고 쓸 수 있습니다.  

```
sudo mkdir /var/greengrass/streams
sudo chown ggc_user /var/greengrass/streams
sudo chmod 700 /var/greengrass/streams
```
기본값: `/greengrass/v2/work/aws.greengrass.StreamManager`

`STREAM_MANAGER_SERVER_PORT`  
(선택 사항) 스트림 관리자와 통신하는 데 사용하는 로컬 포트 번호.  
임의의 사용 가능한 포트를 사용하도록 `0`을 지정할 수 있습니다.  
기본값: `8088`

`STREAM_MANAGER_AUTHENTICATE_CLIENT`  
(선택 사항) 클라이언트가 스트림 관리자와 상호 작용하기 전에 의무적으로 인증하도록 할 수 있습니다. 스트림 관리자 SDK는 클라이언트와 스트림 관리자 간의 상호 작용을 제어합니다. 이 파라미터는 스트림 관리자 SDK를 직접 호출하여 스트림 작업을 수행할 수 있는 클라이언트를 결정합니다. 자세한 내용은 [스트림 관리자 클라이언트 인증](manage-data-streams.md#stream-manager-security-client-authentication)을 참조하세요.  
`true`를 지정하는 경우 스트림 관리자 SDK는 Greengrass 구성 요소만 클라이언트로 허용합니다.  
`false`를 지정하는 경우 스트림 관리자 SDK는 코어 디바이스의 모든 프로세스를 클라이언트로 허용합니다.  
기본값: `true`

`STREAM_MANAGER_EXPORTER_MAX_BANDWIDTH`  
(선택 사항) 스트림 관리자가 데이터를 내보내는 데 사용할 수 있는 평균 최대 대역폭(초당 킬로비트).  
기본값: 제한 없음

`STREAM_MANAGER_EXPORTER_THREAD_POOL_SIZE`  
(선택 사항) 스트림 관리자가 데이터를 내보내는 데 사용할 수 있는 최대 활성 스레드 수.  
최적의 크기는 하드웨어, 스트림 볼륨 및 계획된 내보내기 스트림 수에 따라 다릅니다. 내보내기 속도가 느린 경우 이 설정을 조정하여 하드웨어 및 비즈니스 사례에 가장 적합한 크기를 찾을 수 있습니다. 코어 장치 하드웨어의 CPU 및 메모리는 제한적인 요소입니다. 시작을 위해 이 값을 장치의 프로세서 코어 수와 동일하게 설정해 볼 수 있습니다.  
하드웨어가 지원할 수 있는 크기 보다 크게 설정하지 않도록 주의하세요. 각 스트림은 하드웨어 리소스를 사용하므로 제한된 디바이스에서는 내보내기 스트림 수를 제한하세요.  
기본값: 스레드 5개

`STREAM_MANAGER_EXPORTER_S3_DESTINATION_MULTIPART_UPLOAD_MIN_PART_SIZE_BYTES`  
(선택 사항) Amazon S3에 대한 멀티파트 업로드의 최소 부분 크기(바이트). 스트림 관리자는 이 설정과 입력 파일의 크기를 사용하여 멀티파트 PUT 요청에서 데이터를 일괄 처리하는 방법을 결정합니다.  
스트림 관리자는 스트림 `sizeThresholdForMultipartUploadBytes` 속성을 사용하여 Amazon S3로 단일 또는 멀티파트 업로드로 내보낼지 여부를 결정합니다. AWS IoT Greengrass 구성 요소는 Amazon S3로 내보내는 스트림을 생성할 때 이 임계값을 설정할 수 있습니다.
기본값: `5242880`(5MB) 이는 또한 최소값입니다.

`LOG_LEVEL`  
(선택 사항) 구성 요소의 로깅 수준. 여기에 수준 순서대로 나열된 다음 로그 수준 중에서 선택합니다.  
+ `TRACE`
+ `DEBUG`
+ `INFO`
+ `WARN`
+ `ERROR`
기본값: `INFO`

`JVM_ARGS`  
(선택 사항) 시작 시 스트림 관리자에게 전달할 사용자 지정 Java 가상 머신 인수. 여러 인수는 공백으로 구분합니다.  
JVM에서 사용하는 기본 설정을 재정의해야 하는 경우에만 이 파라미터를 사용합니다. 예를 들어 많은 수의 스트림을 내보낼 계획이 있다면 기본 힙 크기를 늘려야 할 수 있습니다.

`startupTimeoutSeconds`  
(선택 사항) 구성 요소가 시작되는 최대 시간(초)입니다. 이 제한 시간이 초과되면 구성 요소의 상태가 `ERRORED`으로 변경됩니다.  
기본값: `120`

**Example 예: 구성 병합 업데이트**  
다음 예제 구성은 기본 포트가 아닌 포트를 사용하도록 지정합니다.  

```
{
  "STREAM_MANAGER_SERVER_PORT": "18088"
}
```

## 로컬 로그 파일
<a name="stream-manager-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/aws.greengrass.StreamManager.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\aws.greengrass.StreamManager.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.StreamManager.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.StreamManager.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="stream-manager-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.2.1  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/stream-manager-component.html) | 
|  2.2.0  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/stream-manager-component.html) | 
|  2.1.13  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/stream-manager-component.html) | 
|  2.1.12  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/stream-manager-component.html) | 
|  2.1.11  | Greengrass nucleus 버전 2.12.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.10  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.9  | Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.8  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.7  |  <a name="changelog-stream-manager-2.1.7"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.6  |  <a name="changelog-stream-manager-2.1.6"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.5  | Greengrass nucleus 버전 2.10.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.1.1  | Greengrass nucleus 버전 2.8.0 릴리스용으로 업데이트된 버전입니다. | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.0.15  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.14  |  이 버전에는 버그 수정과 개선 사항이 포함되어 있습니다.  | 
|  2.0.13  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
| 2.0.12 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/stream-manager-component.html)  | 
|  2.0.11  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.10  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.9  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.8  |  Greengrass nucleus 버전 2.1.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.7  |  초기 버전입니다.  | 

# 시스템 로그 전달자
<a name="system-log-forwarder-component"></a>

시스템 로그 전달자(`aws.greengrass.SystemLogForwarder`)는 활성 시스템 로그를 CloudWatch HTTPS API를 사용해 Amazon CloudWatch로 직접 업로드합니다.

**중요**  
이 구성 요소는 런타임 중에 생성된 systemd-journald 로그만 전달합니다. systemd-journald 로그에 대한 자세한 내용은 [systemd-journald](https://www.freedesktop.org/software/systemd/man/latest/systemd-journald.service.html) 및 [journalctl](https://www.freedesktop.org/software/systemd/man/latest/journalctl.html#)을 참조하세요.

**참고**  
이 구성 요소는 CloudWatch 로그 그룹과 스트림을 생성하고 관리할 수 있는 특정 권한이 필요합니다.

**Topics**
+ [버전](#system-log-forwarder-component-versions)
+ [Type](#system-log-forwarder-component-type)
+ [운영 체제](#system-log-forwarder-component-os-support)
+ [요구 사항](#system-log-forwarder-component-requirements)
+ [엔드포인트 및 포트](#system-log-forwarder-component-endpoints)
+ [종속성](#system-log-forwarder-component-dependencies)
+ [구성](#system-log-forwarder-component-configuration)
+ [Changelog](#system-log-forwarder-component-changelog)

## 버전
<a name="system-log-forwarder-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.1.x
+ 2.0.x

## Type
<a name="system-log-forwarder-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="system-log-forwarder-component-os-support"></a>

이 구성 요소는 systemd 기반 Linux 시스템에 설치해야 합니다.

## 요구 사항
<a name="system-log-forwarder-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.

이 구성 요소는 CloudWatch에서 로그 및 스트림 그룹을 생성할 수 있는 액세스 권한과 PutLogEvents HTTP 호출을 수행할 수 있는 권한이 필요합니다. 최소한, Greengrass 디바이스의 역할 별칭에 다음 정책 권한을 추가해야 합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
    {
      "Effect": "Allow",
      "Action": ["logs:CreateLogGroup"],
      "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:greengrass/systemLogs:*"
    },
    {
      "Effect": "Allow",
      "Action": ["logs:CreateLogStream", "logs:PutLogEvents"],
      "Resource": "arn:aws:logs:us-east-1:111122223333:log-group:greengrass/systemLogs:log-stream:${credentials-iot:ThingName}"
    }
  ]
}
```

------

**참고**  
자세한 내용은 시스템 로그 전달자 [GitHub](https://github.com/aws-greengrass/aws-greengrass-system-log-forwarder) 페이지를 참조하세요.

## 엔드포인트 및 포트
<a name="system-log-forwarder-component-endpoints"></a>

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에 다음 엔드포인트 및 포트에 대한 아웃바운드 요청도 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.


| 엔드포인트 | 포트 | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `logs.region.amazonaws.com`  | 443 | 아니요 |  CloudWatch Logs에 로그를 쓰는 경우 필요합니다.  | 

## 종속성
<a name="system-log-forwarder-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#system-log-forwarder-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 2.1.x ]

다음 표에는이 구성 요소의 버전 2.1.x에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=2.0.0 | 하드 | 
| [Greengrass nucleus lite](greengrass-nucleus-lite-component.md) | >=2.3.0 | 소프트 | 

------
#### [ 2.0.x ]

다음 표에는 이 구성 요소의 버전 2.0.x에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=2.0.0 | 하드 | 

------

## 구성
<a name="system-log-forwarder-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

------
#### [ 2.0.x-2.1.x ]

`maxUploadIntervalSec`  
시스템 로그 전달자가 로그를 업로드하려고 시도하는 최대 주기입니다. 로그 전달자는 메모리가 가득 찼을 때도 로그를 업로드하므로, 구성된 최대 주기보다 더 자주 업로드될 수 있습니다.

`maxRetriesCount`  
시스템 로그 전달자가 일시적인 HTTP 오류 발생 시 재시도하는 횟수입니다.

`bufferCapacity`  
메모리 내 로그 저장용 링 버퍼의 크기입니다.

`logGroup`  
CloudWatch에서의 로그 경로입니다.

`logStream`  
CloudWatch logStream입니다.

`filters`  
코어 디바이스에 대한 필터 구성 맵입니다.    
`services`  
시스템 로그 전달자가 로그 업로드 여부를 결정할 때 참조하는 서비스 이름 필터 목록입니다. 로그는 생성된 서비스가 이 목록의 필터 중 하나와 일치할 경우에만 업로드됩니다. 이 목록의 필터는 서비스 이름과 정확히 일치하는 문자열이거나, 뒤에 \$1가 붙어 접두사가 일치하면 되는 문자열일 수 있습니다.  
기본값: `[ggl.*]`  
로그는 생성된 서비스가 이 목록의 필터 중 하나와 일치할 경우에만 업로드됩니다.
\$1 값을 사용하면 사용 가능한 모든 서비스를 포함합니다.

**Example 구성 예제:**  
아래 예시는 Greengrass nucleus lite에 포함된 모든 서비스의 로그를 필터링하는 방법을 보여줍니다.  

```
{
    "maxUploadIntervalSec": 300,
    "maxRetriesCount": 3,
    "bufferCapacity": 1048576,
    "logGroup": "greengrass/systemLogs",
    "logStream": "deviceName",
    "filters": {
        "services": ["ggl.*"]
    }
}
```

------

## Changelog
<a name="system-log-forwarder-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/system-log-forwarder-component.html)  | 
|  2.0.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/system-log-forwarder-component.html)  | 
|  2.0.0  |  초기 버전입니다.  | 

# Systems Manager Agent
<a name="systems-manager-agent-component"></a>

 AWS Systems Manager 에이전트 구성 요소(`aws.greengrass.SystemsManagerAgent`)는 Systems Manager 에이전트를 설치하므로 Systems Manager를 사용하여 코어 디바이스를 관리할 수 있습니다. Systems Manager는 Amazon EC2 인스턴스 AWS, 온프레미스 서버 및 가상 머신(VMs), 엣지 디바이스를 포함하여 인프라를 보고 제어하는 데 사용할 수 있는 AWS 서비스입니다. Systems Manager를 사용하여 운영 데이터를 보고, 운영 태스크를 자동화하고, 보안 및 규정 준수를 유지 관리할 수 있습니다. 자세한 내용은 *AWS Systems Manager 사용 설명서*의 Systems Manager 에이전트[란 무엇입니까 AWS Systems Manager?](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) 및 정보를 참조하세요. [https://docs.aws.amazon.com/systems-manager/latest/userguide/prereqs-ssm-agent.html](https://docs.aws.amazon.com/systems-manager/latest/userguide/prereqs-ssm-agent.html) 

<a name="about-systems-manager-capabilities"></a>Systems Manager 도구 및 기능을 *기능*이라고 합니다. Greengrass 코어 디바이스는 모든 Systems Manager 기능을 지원합니다. 이러한 기능과 Systems Manager를 사용하여 코어 디바이스를 관리하는 방법에 대한 자세한 내용은 *AWS Systems Manager 사용 설명서*의 [Systems Manager 기능](https://docs.aws.amazon.com/systems-manager/latest/userguide/features.html)을 참조하세요.

**Topics**
+ [버전](#systems-manager-agent-component-versions)
+ [유형](#systems-manager-agent-component-type)
+ [운영 체제](#systems-manager-agent-component-os-support)
+ [요구 사항](#systems-manager-agent-component-requirements)
+ [종속성](#systems-manager-agent-component-dependencies)
+ [구성](#systems-manager-agent-component-configuration)
+ [로컬 로그 파일](#systems-manager-agent-component-log-file)
+ [다음 사항도 참조하세요.](#systems-manager-agent-component-see-also)
+ [Changelog](#systems-manager-agent-component-changelog)

## 버전
<a name="systems-manager-agent-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 1.3.x
+ 1.2.x
+ 1.1.x
+ 1.0.x

## 유형
<a name="systems-manager-agent-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="systems-manager-agent-component-os-support"></a>

이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.

## 요구 사항
<a name="systems-manager-agent-component-requirements"></a>

이 구성 요소에는 다음과 같은 요구 사항이 있습니다.
+ 64비트 Linux 플랫폼에서 실행되는 Greengrass 코어 디바이스: Armv8(AArch64) 또는 x86\$164.
+ Systems Manager가 수임할 수 있는 AWS Identity and Access Management (IAM) 서비스 역할이 있어야 합니다. 이 역할은 [AmazonSSMManagedInstanceCore](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore) 관리형 정책 또는 동등한 권한을 정의하는 사용자 지정 정책을 포함해야 합니다. 자세한 내용은 *AWS Systems Manager 사용 설명서*의 [엣지 디바이스에 대한 IAM 서비스 역할 생성](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up-edge-devices.html#systems-manager-setting-up-edge-devices-service-role)을 참조하세요.

  이 구성 요소를 배포할 때 `SSMRegistrationRole` 구성 파라미터에 이 역할의 이름을 지정해야 합니다.
+ [Greengrass 디바이스 역할](device-service-role.md)은 `ssm:AddTagsToResource` 및 `ssm:RegisterManagedInstance` 작업을 허용해야 합니다. 디바이스 역할은 이전 요구 사항을 충족하는 IAM 서비스 역할에 대한 `iam:PassRole` 작업도 허용해야 합니다. 다음 예제 IAM 정책은 이러한 권한을 부여합니다.

  ```
  {
    "Version": "2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": [
          "iam:PassRole"
        ],
        "Effect": "Allow",
        "Resource": [
          "arn:aws:iam::account-id:role/SSMServiceRole"
        ]
      },
      {
        "Action": [
          "ssm:AddTagsToResource",
          "ssm:RegisterManagedInstance"
        ],
        "Effect": "Allow",
        "Resource": "*"
      }
    ]
  }
  ```

### 엔드포인트 및 포트
<a name="systems-manager-agent-component-endpoints"></a>

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에 다음 엔드포인트 및 포트에 대한 아웃바운드 요청도 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.


| 엔드포인트 | Port | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `ec2messages.region.amazonaws.com`  | 443 | 예 |   AWS 클라우드에서 Systems Manager 서비스와 통신합니다.  | 
|  `ssm.region.amazonaws.com`  | 443 | 예 |  코어 디바이스를 Systems Manager 관리형 노드로 등록합니다.  | 
|  `ssmmessages.region.amazonaws.com`  | 443 | 예 |   AWS 클라우드에서 Systems Manager의 기능인 Session Manager와 통신합니다.  | 

자세한 내용은 *AWS Systems Manager 사용 설명서*의 [참조: ec2messages, ssmmessages 및 기타 API 호출](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up-messageAPIs.html)을 참조하세요.

## 종속성
<a name="systems-manager-agent-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#systems-manager-agent-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

다음 표에는이 구성 요소의 버전 1.0.0\$11.3.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [토큰 교환 서비스](token-exchange-service-component.md) |  >=2.0.0 <3.0.0 | 하드 | 

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="systems-manager-agent-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

`SSMRegistrationRole`  
Systems Manager가 수임할 수 있고 [AmazonSSMManagedInstanceCore](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore) 관리형 정책 또는 동등한 권한을 정의하는 사용자 지정 정책을 포함하는 IAM 서비스 역할. 자세한 내용은 *AWS Systems Manager 사용 설명서*의 [엣지 디바이스에 대한 IAM 서비스 역할 생성](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up-edge-devices-service-role.html)을 참조하세요.

`SSMOverrideExistingRegistration`  
(선택 사항) 코어 디바이스가 하이브리드 활성화로 등록된 Systems Manager Agent를 이미 실행하는 경우 디바이스의 기존 Systems Manager Agent 등록을 재정의할 수 있습니다. 이 구성 요소가 제공하는 Systems Manager Agent를 사용하여 코어 디바이스를 관리형 노드로 등록하려면 이 옵션을 `true`로 설정합니다.  
이 옵션은 하이브리드 활성화로 등록된 디바이스에만 적용됩니다. 코어 디바이스가 Systems Manager Agent가 설치되어 있고 인스턴스 프로파일 역할이 구성된 Amazon EC2 인스턴스에서 실행되는 경우 Amazon EC2 인스턴스의 기존 관리형 노드 ID는 `i-`로 시작합니다. Systems Manager Agent 구성 요소를 설치하면 Systems Manager Agent는 ID가 `i-` 대신 `mi-`로 시작하는 새 관리형 노드를 등록합니다. 그런 다음 ID가 `mi-`로 시작하는 관리형 노드를 사용하여 Systems Manager로 코어 디바이스를 관리할 수 있습니다.
기본값: `false`

`SSMResourceTags`  
(선택 사항) 이 구성 요소가 코어 디바이스에 대해 생성하는 Systems Manager 관리형 노드에 추가할 태그. 이러한 태그를 사용하여 Systems Manager로 코어 디바이스 그룹을 관리할 수 있습니다. 예를 들어 지정한 태그가 있는 모든 디바이스에서 명령을 실행할 수 있습니다.  
각 태그가 `Key` 및 `Value`를 사용하는 객체인 목록을 지정합니다. 예를 들어 `SSMResourceTags`에 대한 다음 값은 코어 디바이스의 관리형 노드에서 **Owner** 태그를 **richard-roe**로 설정하도록 이 구성 요소에 지시합니다.  

```
[
  {
    "Key": "Owner",
    "Value": "richard-roe"
  }
]
```
관리형 노드가 이미 존재하고 `SSMOverrideExistingRegistration`이 `false`인 경우 이 구성 요소는 해당 태그를 무시합니다.

**Example 예: 구성 병합 업데이트**  
다음 예제 구성은 코어 디바이스가 Systems Manager에 등록하고 통신할 수 있도록 `SSMServiceRole`이라는 이름의 서비스 역할을 사용하도록 지정합니다.  

```
{
  "SSMRegistrationRole": "SSMServiceRole",
  "SSMOverrideExistingRegistration": false,
  "SSMResourceTags": [
    {
      "Key": "Owner",
      "Value": "richard-roe"
    },
    {
      "Key": "Team",
      "Value": "solar"
    }
  ]
}
```

## 로컬 로그 파일
<a name="systems-manager-agent-component-log-file"></a>

Systems Manager Agent 소프트웨어는 Greengrass 루트 폴더 외부의 폴더에 로그를 씁니다. 자세한 내용은 *AWS Systems Manager 사용 설명서*의 [Viewing Systems Manager Agent logs](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-agent-logs.html)를 참조하세요.

Systems Manager Agent 구성 요소는 쉘 스크립트를 사용하여 Systems Manager Agent를 설치, 시작, 중지합니다. 다음 로그 파일에서 이러한 스크립트의 출력을 찾을 수 있습니다.

```
/greengrass/v2/logs/aws.greengrass.SystemsManagerAgent.log
```

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. 를 AWS IoT Greengrass 루트 폴더의 경로`/greengrass/v2`로 바꿉니다.

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.SystemsManagerAgent.log
  ```

## 다음 사항도 참조하세요.
<a name="systems-manager-agent-component-see-also"></a>
+ [AWS Systems Manager를 사용하여 Greengrass 코어 디바이스 관리](manage-with-systems-manager.md)
+ *AWS Systems Manager 사용 설명서*의 [AWS Systems Manager란 무엇입니까?](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)
+ *AWS Systems Manager 사용 설명서*의 [Systems Manager Agent 정보](https://docs.aws.amazon.com/systems-manager/latest/userguide/prereqs-ssm-agent.html)

## Changelog
<a name="systems-manager-agent-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  1.3.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/systems-manager-agent-component.html)  | 
|  1.2.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/systems-manager-agent-component.html)  | 
|  1.2.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/systems-manager-agent-component.html)  | 
|  1.1.0  |  이 버전에는 버그 수정과 개선 사항이 포함되어 있습니다.  | 
|  1.0.0  |  초기 버전입니다.  | 

# 토큰 교환 서비스
<a name="token-exchange-service-component"></a>

토큰 교환 서비스 구성 요소(`aws.greengrass.TokenExchangeService`)는 사용자 지정 구성 요소의 AWS 서비스와 상호 작용하는 데 사용할 수 있는 자격 증명을 제공합니다 AWS .

토큰 교환 서비스는 로컬 서버로 실행됩니다. 이 로컬 서버는 [Greengrass 코어 핵 구성](greengrass-nucleus-component.md) 요소에서 구성하는 AWS IoT 역할 별칭을 사용하여 AWS IoT 자격 증명 공급자에 연결합니다. 구성 요소는 두 가지 환경 변수(`AWS_CONTAINER_CREDENTIALS_FULL_URI` 및 `AWS_CONTAINER_AUTHORIZATION_TOKEN`)를 제공합니다. `AWS_CONTAINER_CREDENTIALS_FULL_URI`는 이 로컬 서버에 대한 URI를 정의합니다. 구성 요소가 AWS SDK 클라이언트를 생성하면 클라이언트는이 URI 환경 변수를 인식하고의 토큰`AWS_CONTAINER_AUTHORIZATION_TOKEN`을 사용하여 토큰 교환 서비스에 연결하고 AWS 자격 증명을 검색합니다. 이렇게 하면 Greengrass 코어 디바이스가 AWS 서비스 작업을 직접 호출할 수 있습니다. 사용자 지정 구성 요소에서 이 구성 요소를 사용하는 방법에 대한 자세한 내용은 [AWS 서비스와 상호 작용](interact-with-aws-services.md) 섹션을 참조하세요.

**중요**  <a name="token-exchange-service-aws-sdk-requirement"></a>
이러한 방식으로 AWS 자격 증명을 획득하는 지원이 2016년 7월 13일에 AWS SDKs에 추가되었습니다. 구성 요소는 해당 날짜 또는 그 이후에 생성된 AWS SDK 버전을 사용해야 합니다. 자세한 내용은 *Amazon Elastic Container Service 개발자 안내서*의 [지원되는 AWS SDK 사용을](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#task-iam-roles-minimum-sdk) 참조하세요.

**참고**  
 AWS 기본 자격 증명 체인을 사용하는 구성 요소는 다른 자격 증명 소스가 있는 경우 이를 검색하고 사용할 수 있습니다. Amazon Elastic Container Service(Amazon ECS) 컨테이너 보안 인증 `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` 정보가 보다 우선합니다. 즉`AWS_CONTAINER_CREDENTIALS_FULL_URI`, Amazon Elastic Container Service(Amazon ECS) 내에서는 토큰 교환 서비스 보안 인증 정보가 작동하지 않을 수 있습니다. 자세한 내용은 [표준화된 자격 증명 공급자](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html)를 참조하세요.

**Topics**
+ [버전](#token-exchange-service-component-versions)
+ [Type](#token-exchange-service-component-type)
+ [운영 체제](#token-exchange-service-component-os-support)
+ [종속성](#token-exchange-service-component-dependencies)
+ [구성](#token-exchange-service-component-configuration)
+ [로컬 로그 파일](#token-exchange-service-component-log-file)
+ [Changelog](#token-exchange-service-component-changelog)

## 버전
<a name="token-exchange-service-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 2.0.x

## Type
<a name="token-exchange-service-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="token-exchange-service-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 종속성
<a name="token-exchange-service-component-dependencies"></a>

이 구성 요소에는 종속성이 없습니다.

## 구성
<a name="token-exchange-service-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

`port`  
토큰 교환 서비스 연결에 사용할 포트입니다. 포트 구성 변경 후 토큰 교환 서비스가 재시작됩니다.

`credentialRetryInSec`  
토큰 교환 서비스에서 자격 증명 요청 오류가 발생할 때 재시도 간격을 초 단위로 지정합니다.    
`clientError`  
클라이언트 오류(4xx HTTP 상태 코드)에 대한 초 단위의 재시도 간격입니다.  
기본값: `120`  
유효한 값: `10` \$1 `42900`  
`serverError`  
서버 오류(5xx HTTP 상태 코드)에 대한 초 단위의 재시도 간격입니다.  
기본값: `60`  
유효한 값: `10` \$1 `42900`  
`unknownError`  
알 수 없는 오류(연결 오류 및 4xx 및 5xx 범위를 벗어난 HTTP 상태 코드)에 대한 초 단위의 재시도 간격입니다.  
기본값: `300`  
유효한 값: `10` \$1 `42900`

**Example 예: 구성 병합 업데이트**  

```
{
   "port": 2020,
   "credentialRetryInSec": {
    "clientError": 30,
    "serverError": 45,
    "unknownError": 60
   }
}
```

## 로컬 로그 파일
<a name="token-exchange-service-component-log-file"></a>

이 구성 요소는 [Greengrass nucleus](greengrass-nucleus-component.md) 구성요소와 동일한 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="token-exchange-service-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.0.3  |  초기 버전입니다.  | 

# IoT SiteWise OPC UA 수집기
<a name="iotsitewise-opcua-collector-component"></a>

IoT SiteWise OPC UA 수집기 구성 요소(`aws.iot.SiteWiseEdgeCollectorOpcua`)를 사용하면 AWS IoT SiteWise 게이트웨이가 로컬 OPC UA 서버에서 데이터를 수집할 수 있습니다.

이 구성 요소를 사용하면 AWS IoT SiteWise 게이트웨이가 여러 OPC UA 서버에 연결할 수 있습니다. AWS IoT SiteWise 게이트웨이에 대한 자세한 내용은 *AWS IoT SiteWise 사용 설명서*[의 엣지 AWS IoT SiteWise 에서 사용을](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/gateways-ggv2.html) 참조하세요.

**Topics**
+ [버전](#iotsitewise-opcua-collector-component-versions)
+ [유형](#iotsitewise-opcua-collector-component-type)
+ [운영 체제](#iotsitewise-opcua-collector-component-os-support)
+ [요구 사항](#iotsitewise-opcua-collector-component-requirements)
+ [종속성](#iotsitewise-opcua-collector-component-dependencies)
+ [구성](#iotsitewise-opcua-collector-component-configuration)
+ [입력 데이터](#iotsitewise-opcua-collector-component-input-data)
+ [출력 데이터](#iotsitewise-opcua-collector-component-output-data)
+ [로컬 로그 파일](#iotsitewise-opcua-collector-component-log-file)
+ [라이선스](#iotsitewise-opcua-collector-component-licenses)
+ [Changelog](#iotsitewise-opcua-collector-component-changelog)
+ [다음 사항도 참조하세요.](#iotsitewise-opcua-collector-component-see-also)

## 버전
<a name="iotsitewise-opcua-collector-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 3.1.x
+ 3.0.x
+ 2.6.x
+ 2.5.x
+ 2.4.x
+ 2.3.x
+ 2.2.x
+ 2.1.x
+ 2.0.x

## 유형
<a name="iotsitewise-opcua-collector-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="iotsitewise-opcua-collector-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="iotsitewise-opcua-collector-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.
+ Greengrass 코어 디바이스가 다음 플랫폼 중 하나에서 실행되어야 합니다.
  + OS: Ubuntu 20.04 이상

    아키텍처: x86\$164(AMD64) 또는 ARMv8(Aarch64)
  + 운영체제: Red Hat Enterprise Linux (RHEL) 8

    아키텍처: x86\$164(AMD64) 또는 ARMv8(Aarch64)
  + OS: Amazon Linux 2

    아키텍처: x86\$164(AMD64) 또는 ARMv8(Aarch64)
  + OS: Debian 11

    아키텍처: x86\$164(AMD64) 또는 ARMv8(Aarch64)
  + OS: Windows Server 2019 이상

    아키텍처: x86\$164(AMD64)
+ Greengrass 코어 디바이스에서 OPC UA 서버에 대한 아웃바운드 네트워크 연결을 허용해야 합니다.

## 종속성
<a name="iotsitewise-opcua-collector-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#iotsitewise-opcua-collector-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

다음 표에는 이 구성 요소의 모든 버전에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.3.0 <3.0.0 | 하드 | 
| [스트림 관리자](stream-manager-component.md) | >2.0.10<3.0.0 | 하드 | 
| [보안 암호 관리자](secret-manager-component.md) | >=2.0.8 <3.0.0 | 하드 | 

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="iotsitewise-opcua-collector-component-configuration"></a>

이 구성 요소에는 구성 파라미터가 없습니다.

 AWS IoT SiteWise 콘솔 또는 API를 사용하여 IoT SiteWise OPC UA 수집기 구성 요소를 구성할 수 있습니다. 자세한 내용은 *AWS IoT SiteWise 사용 설명서*의 [4단계: 데이터 소스 추가 - 선택 사항](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-gateway-ggv2.html#add-data-sources-console)을 참조하세요.

## 입력 데이터
<a name="iotsitewise-opcua-collector-component-input-data"></a>

이 구성 요소는 다음 형식의 데이터만 허용하며, 다른 모든 데이터는 무시되고 삭제됩니다. 아래 표에서는 OPC UA 데이터 유형과 이에 해당하는 SiteWise 데이터 유형을 매핑합니다.


|  **SiteWise 데이터 유형**  |  **OPC UA 데이터 유형**  |  **설명**  | 
| --- | --- | --- | 
|  `STRING`  |  `String` `Guid` `XmlElement`  |  최대 길이가 1,024바이트인 문자열입니다.  | 
|  `INTEGER`  |  `SByte` `Byte` `Int16` `UInt16` `Int32` `UInt32`\$1 `Int64`\$1  |  범위가 `-2,147,483,648 to 2,147,483,647`인 서명된 32비트 정수입니다.  | 
|  `DOUBLE`  |  `UInt32`\$1 `Int64`\$1 `Float` `Double`  |  `–10^100 to 10^100`의 범위 및 `IEEE 754`의 배정밀도를 갖는 부동 소수점 숫자입니다.  | 
|  `BOOLEAN`  |  `Boolean`  |  `true` 또는 `false`  | 

\$1 OPC UA 데이터 유형 `UInt32` 및 `Int64`의 경우 해당하는 SiteWise 데이터 유형은 SiteWise가 값을 나타낼 수 있는 `INTEGER`이고, 그렇지 않으면 `DOUBLE`입니다.

## 출력 데이터
<a name="iotsitewise-opcua-collector-component-output-data"></a>



이 구성 요소는 AWS IoT Greengrass 스트림 관리자에 `BatchPutAssetPropertyValue` 메시지를 씁니다. 자세한 내용은 *AWS IoT SiteWise API 참조*의 [BatchPutAssetPropertyValue](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_BatchPutAssetPropertyValue.html)를 참조하세요.

## 로컬 로그 파일
<a name="iotsitewise-opcua-collector-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/aws.iot.SiteWiseEdgeCollectorOpcua.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\aws.iot.SiteWiseEdgeCollectorOpcua.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/aws.iot.SiteWiseEdgeCollectorOpcua.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.iot.SiteWiseEdgeCollectorOpcua.log -Tail 10 -Wait
  ```

------

## 라이선스
<a name="iotsitewise-opcua-collector-component-licenses"></a>

<a name="component-core-software-license"></a>이 구성 요소는 [Greengrass 코어 소프트웨어 라이선스 계약](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)에 따라 릴리스됩니다.

## Changelog
<a name="iotsitewise-opcua-collector-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
| 3.1.0 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
| 3.0.3 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
| 3.0.2 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
| 3.0.1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
| 3.0.0 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
| 2.6.0 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
| 2.5.1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
| 2.5.0 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
|  2.4.2  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html) | 
|  2.4.1  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html) | 
|  2.4.0  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
|  2.3.0  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html) | 
|  2.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
|  2.1.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
|  2.1.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)  | 
|  2.0.3  |  버그 수정 및 개선 사항  | 
|  2.0.2  |  엣지와의 자산 우선 순위 동기화에 대한 버그 수정 및 개선 사항  | 
|  2.0.1  |  초기 버전입니다.  | 

## 다음 사항도 참조하세요.
<a name="iotsitewise-opcua-collector-component-see-also"></a>
+ *AWS IoT SiteWise 사용 설명서*의 [란 무엇입니까 AWS IoT SiteWise?](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html) 

# IoT SiteWise OPC UA 데이터 소스 시뮬레이터
<a name="iotsitewise-opcua-data-source-simulator-component"></a>

IoT SiteWise OPC UA 데이터 소스 시뮬레이터 구성 요소(`aws.iot.SiteWiseEdgeOpcuaDataSourceSimulator`)는 샘플 데이터를 생성하는 로컬 OPC UA 서버를 시작합니다. 이 OPC UA 서버를 사용하여 AWS IoT SiteWise 게이트웨이의 [IoT SiteWise OPC UA 수집기 구성](iotsitewise-opcua-collector-component.md) 요소에서 읽은 데이터 소스를 시뮬레이션합니다. 그런 다음이 샘플 데이터를 사용하여 AWS IoT SiteWise 기능을 탐색할 수 있습니다. AWS IoT SiteWise 게이트웨이에 대한 자세한 내용은 *AWS IoT SiteWise 사용 설명서*[의 엣지 AWS IoT SiteWise 에서 사용을](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/gateways-ggv2.html) 참조하세요.

**Topics**
+ [버전](#iotsitewise-opcua-data-source-simulator-component-versions)
+ [유형](#iotsitewise-opcua-data-source-simulator-component-type)
+ [운영 체제](#iotsitewise-opcua-data-source-simulator-component-os-support)
+ [요구 사항](#iotsitewise-opcua-data-source-simulator-component-requirements)
+ [종속성](#iotsitewise-opcua-data-source-simulator-component-dependencies)
+ [구성](#iotsitewise-opcua-data-source-simulator-component-configuration)
+ [로컬 로그 파일](#iotsitewise-opcua-data-source-simulator-component-log-file)
+ [Changelog](#iotsitewise-opcua-data-source-simulator-component-changelog)
+ [다음 사항도 참조하세요.](#iotsitewise-opcua-data-source-simulator-component-see-also)

## 버전
<a name="iotsitewise-opcua-data-source-simulator-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 1.0.x

## 유형
<a name="iotsitewise-opcua-data-source-simulator-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="iotsitewise-opcua-data-source-simulator-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="iotsitewise-opcua-data-source-simulator-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.
+ Greengrass 코어 디바이스가 로컬 호스트에서 포트 4840을 사용할 수 있어야 합니다. 이 구성 요소의 로컬 OPC UA 서버는 이 포트에서 실행됩니다.

## 종속성
<a name="iotsitewise-opcua-data-source-simulator-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#iotsitewise-opcua-data-source-simulator-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

다음 표에는 이 구성 요소의 모든 버전에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.3.0 <3.0.0 | 하드 | 

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="iotsitewise-opcua-data-source-simulator-component-configuration"></a>

이 구성 요소에는 구성 파라미터가 없습니다.

## 로컬 로그 파일
<a name="iotsitewise-opcua-data-source-simulator-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/aws.iot.SiteWiseEdgeOpcuaDataSourceSimulator.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\aws.iot.SiteWiseEdgeOpcuaDataSourceSimulator.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/aws.iot.SiteWiseEdgeOpcuaDataSourceSimulator.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.iot.SiteWiseEdgeOpcuaDataSourceSimulator.log -Tail 10 -Wait
  ```

------

## Changelog
<a name="iotsitewise-opcua-data-source-simulator-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  1.0.0  |  초기 버전입니다. Windows Server 2016 이상에 대한 지원을 추가합니다.  | 

## 다음 사항도 참조하세요.
<a name="iotsitewise-opcua-data-source-simulator-component-see-also"></a>
+ *AWS IoT SiteWise 사용 설명서*의 [란 무엇입니까 AWS IoT SiteWise?](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html) 

# IoT SiteWise 게시자
<a name="iotsitewise-publisher-component"></a>

IoT SiteWise 게시자 구성 요소(`aws.iot.SiteWiseEdgePublisher`)를 사용하면 AWS IoT SiteWise 게이트웨이가 엣지에서 로 데이터를 내보낼 수 있습니다 AWS 클라우드.

 AWS IoT SiteWise 게이트웨이에 대한 자세한 내용은 *AWS IoT SiteWise 사용 설명서*[의 엣지 AWS IoT SiteWise 에서 사용을](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/gateways-ggv2.html) 참조하세요.

**Topics**
+ [버전](#iotsitewise-publisher-component-versions)
+ [Type](#iotsitewise-publisher-component-type)
+ [운영 체제](#iotsitewise-publisher-component-os-support)
+ [요구 사항](#iotsitewise-publisher-component-requirements)
+ [종속성](#iotsitewise-publisher-component-dependencies)
+ [구성](#iotsitewise-publisher-component-configuration)
+ [입력 데이터](#iotsitewise-publisher-component-input-data)
+ [로컬 로그 파일](#iotsitewise-publisher-component-log-file)
+ [문제 해결 및 디버깅](#iotsitewise-publisher-component-debug)
+ [라이선스](#iotsitewise-publisher-component-licenses)
+ [Changelog](#iotsitewise-publisher-component-changelog)
+ [다음 사항도 참조하세요.](#iotsitewise-publisher-component-see-also)

## 버전
<a name="iotsitewise-publisher-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 4.1.x
+ 4.0.x
+ 3.2.x
+ 3.1.x
+ 3.0.x
+ 2.4.x
+ 2.3.x
+ 2.2.x
+ 2.1.x
+ 2.0.x

## Type
<a name="iotsitewise-publisher-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="iotsitewise-publisher-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="iotsitewise-publisher-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.
+ Greengrass 코어 디바이스가 다음 플랫폼 중 하나에서 실행되어야 합니다.
  + OS: Ubuntu 18.04 이상

    아키텍처: x86\$164(AMD64) 또는 ARMv8(Aarch64)
  + 운영체제: Red Hat Enterprise Linux (RHEL) 8

    아키텍처: x86\$164(AMD64) 또는 ARMv8(Aarch64)
  + OS: Amazon Linux 2

    아키텍처: x86\$164(AMD64) 또는 ARMv8(Aarch64)
  + OS: Debian 11

    아키텍처: x86\$164(AMD64) 또는 ARMv8(Aarch64)
  + OS: Windows Server 2019 이상

    아키텍처: x86\$164(AMD64)
+ Greengrass 코어 디바이스를 인터넷에 연결해야 합니다.
+ Greengrass 코어 디바이스에 `iotsitewise:BatchPutAssetPropertyValue` 작업을 수행할 권한이 있어야 합니다. 자세한 내용은 [코어 디바이스가 AWS 서비스와 상호 작용하도록 권한 부여](https://docs.aws.amazon.com/greengrass/v2/developerguide/device-service-role.html)를 참조하세요.  
**Example 권한 정책**  

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "iotsitewise:BatchPutAssetPropertyValue",
              "Resource": "*"
          }
      ]
  }
  ```

------

### 엔드포인트 및 포트
<a name="iotsitewise-publisher-component-endpoints"></a>

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에 다음 엔드포인트 및 포트에 대한 아웃바운드 요청도 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.


| 엔드포인트 | 포트 | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `data.iotsitewise.region.amazonaws.com`  | 443 | 예 |  데이터를에 게시합니다 AWS IoT SiteWise.  | 

## 종속성
<a name="iotsitewise-publisher-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#iotsitewise-publisher-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

다음 표에는 이 구성 요소의 버전 2.0.x\$12.2.x에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.3.0<3.0.0 | 하드 | 
| [스트림 관리자](stream-manager-component.md) | >=2.0.10<3.0.0 | 하드 | 

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="iotsitewise-publisher-component-configuration"></a>

이 구성 요소에는 구성 파라미터가 없습니다.

 AWS IoT SiteWise 콘솔 또는 API를 사용하여 IoT SiteWise 게시자 구성 요소를 구성할 수 있습니다. 자세한 내용은 *AWS IoT SiteWise 사용 설명서*의 [3단계: 게시자 구성 - 선택 사항](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-gateway-ggv2.html#configure-publisher)을 참조하세요.

## 입력 데이터
<a name="iotsitewise-publisher-component-input-data"></a>



이 구성 요소는 AWS IoT Greengrass 스트림 관리자에서 `PutAssetPropertyValueEntry` 메시지를 읽습니다. 자세한 내용은 *AWS IoT SiteWise API 참조*에서 [PutAssetPropertyValueEntry](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_PutAssetPropertyValueEntry.html)를 참조하세요.

## 로컬 로그 파일
<a name="iotsitewise-publisher-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/aws.iot.SiteWiseEdgePublisher.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\aws.iot.SiteWiseEdgePublisher.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/aws.iot.SiteWiseEdgePublisher.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.iot.SiteWiseEdgePublisher.log -Tail 10 -Wait
  ```

------

## 문제 해결 및 디버깅
<a name="iotsitewise-publisher-component-debug"></a>

이 구성 요소에는 고객이 문제를 식별하고 해결하는 데 도움이 되는 새로운 이벤트 로그가 포함되어 있습니다. 로그 파일은 로컬 로그 파일과 별개이며 다음 위치에 있습니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

```
/greengrass/v2/work/aws.iot.SiteWiseEdgePublisher/logs/IotSiteWisePublisherEvents.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\work\aws.iot.SiteWiseEdgePublisher\logs\IotSiteWisePublisherEvents.log
```

------

이 로그에는 자세한 정보와 문제 해결 지침이 들어 있습니다. 문제 해결 정보는 진단 및 문제 해결 방법 설명과 함께 제공되며, 추가 정보에 대한 링크가 제공되는 경우도 있습니다. 진단 정보에는 다음 사항이 포함됩니다.
+ 심각도 수준
+ 타임스탬프
+ 추가 이벤트별 정보

**Example 로그 예**  

```
accountBeingThrottled:
  Summary: Data upload speed slowed due to quota limits
  Level: WARN
  Timestamp: '2023-06-09T21:30:24.654Z'
  Description: The IoT SiteWise Publisher is limited to the "Rate of data points ingested"
    quota for a customers account. See the associated documentation and associated
    metric for the number of requests that were limited for more information. Note
    that this may be temporary and not require any change, although if the issue continues
    you may need to request an increase for the mentioned quota.
  FurtherInformation:
  - https://docs.aws.amazon.com/iot-sitewise/latest/userguide/quotas.html
  - https://docs.aws.amazon.com/iot-sitewise/latest/userguide/troubleshooting-gateway.html#gateway-issue-data-streams
  AssociatedMetrics:
  - Name: TotalErrorCount
    Description: The total number of errors of this type that occurred.
    Value: 327724.0
  AssociatedData:
  - Name: AggregatePropertyAliases
    Description: The aggregated property aliases of the throttled data.
    FileLocation: /greengrass/v2/work/aws.iot.SiteWiseEdgePublisher/./logs/data/AggregatePropertyAliases_1686346224654.log
```

## 라이선스
<a name="iotsitewise-publisher-component-licenses"></a>

<a name="component-core-software-license"></a>이 구성 요소는 [Greengrass 코어 소프트웨어 라이선스 계약](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)에 따라 릴리스됩니다.

## Changelog
<a name="iotsitewise-publisher-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
| 4.1.4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
| 4.1.3 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
| 4.1.2 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
| 4.1.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
| 4.1.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  4.0.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  4.0.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  4.0.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  4.0.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  3.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  3.1.4  |   버전 3.1.4는 2025년 2월 20일에 중단되었습니다. 이 버전의 개선 사항은 이 구성 요소의 이후 버전에서 사용할 수 있습니다.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  3.1.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  3.1.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  3.1.1  |   버전 3.1.1은 2024년 3월 12일에 중단되었습니다. 이 버전의 개선 사항은 이 구성 요소의 이후 버전에서 사용할 수 있습니다.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  3.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  3.0.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.4.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.4.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.3.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.3.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.3.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.2.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.2.1  |   이 버전은 HTTP 프록시 구성을 지원하지 않습니다. 버전 2.2.2 이상에서 이 기능에 대한 지원이 다시 도입됩니다.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.2.0  |   이 버전은 HTTP 프록시 구성을 지원하지 않습니다. 버전 2.2.2 이상에서 이 기능에 대한 지원이 다시 도입됩니다.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.1.4  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.1.3  |   이 버전은 미국 동부(오하이오), 캐나다(중부) 및 AWS GovCloud(미국 동부) 리전을 제외하고 더 이상 사용할 수 없습니다. 이 구성 요소 버전을 실행하려면 Java 버전 11 이상이 필요합니다. 이 버전의 개선 사항은 이 구성 요소의 이후 버전에서 사용할 수 있습니다.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.1.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.1.1  |  버그 수정 및 개선 사항  | 
|  2.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-publisher-component.html)  | 
|  2.0.2  |  버그 수정 및 개선 사항  | 
|  2.0.1  |  초기 버전입니다.  | 

## 다음 사항도 참조하세요.
<a name="iotsitewise-publisher-component-see-also"></a>
+ *AWS IoT SiteWise 사용 설명서*의 [란 무엇입니까 AWS IoT SiteWise?](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html) 

# IoT SiteWise 프로세서
<a name="iotsitewise-processor-component"></a>

IoT SiteWise 프로세서 구성 요소(`aws.iot.SiteWiseEdgeProcessor`)를 사용하면 AWS IoT SiteWise Classic 스트림, V2 게이트웨이가 엣지에서 데이터를 처리할 수 있습니다.

이 구성 요소를 사용하면 AWS IoT SiteWise 게이트웨이가 자산 모델과 자산을 사용하여 게이트웨이 디바이스의 데이터를 처리할 수 있습니다. AWS IoT SiteWise 게이트웨이에 대한 자세한 내용은 *AWS IoT SiteWise 사용 설명서*[의 엣지 AWS IoT SiteWise 에서 사용을](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/gateways-ggv2.html) 참조하세요.

**참고**  
데이터 처리 팩(DPP) 기능은 2025년 11월 7일부터 신규 고객에게 더 이상 공개되지 않습니다. DPP를 사용하려면 해당 날짜 이전에 가입하세요. 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세한 내용은 *AWS IoT SiteWise 사용 설명서*의 [데이터 처리 팩 가용성 변경](https://docs.aws.amazon.com/iot-sitewise/latest/appguide/iotsitewise-dpp-availability-change.html)을 참조하세요.

**Topics**
+ [버전](#iotsitewise-processor-component-versions)
+ [Type](#iotsitewise-processor-component-type)
+ [운영 체제](#iotsitewise-processor-component-os-support)
+ [요구 사항](#iotsitewise-processor-component-requirements)
+ [종속성](#iotsitewise-processor-component-dependencies)
+ [구성](#iotsitewise-processor-component-configuration)
+ [로컬 로그 파일](#iotsitewise-processor-component-log-file)
+ [라이선스](#iotsitewise-processor-component-licenses)
+ [Changelog](#iotsitewise-processor-component-changelog)
+ [다음 사항도 참조하세요.](#iotsitewise-processor-component-see-also)

## 버전
<a name="iotsitewise-processor-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 3.5.x
+ 3.4.x
+ 3.3.x
+ 3.2.x
+ 3.1.x
+ 3.0.x
+ 2.2.x
+ 2.1.x
+ 2.0.x

## Type
<a name="iotsitewise-processor-component-type"></a>

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="iotsitewise-processor-component-os-support"></a>

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

## 요구 사항
<a name="iotsitewise-processor-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.
+ Greengrass 코어 디바이스가 다음 플랫폼 중 하나에서 실행되어야 합니다.
  + OS: Ubuntu 20.04 이상

    아키텍처: x86\$164(AMD64)
  + 운영체제: Red Hat Enterprise Linux (RHEL) 8

    아키텍처: x86\$164(AMD64)
  + OS: Amazon Linux 2

    아키텍처: x86\$164(AMD64)
  + OS: Windows Server 2019 이상

    아키텍처: x86\$164(AMD64)
  + OS: Debian 11(Bullseye) 이상

    아키텍처: x86\$164(AMD64)
+ Greengrass 코어 디바이스가 포트 443에서 인바운드 트래픽을 허용해야 합니다.
+ Greengrass 코어 디바이스가 포트 443과 8883에서 아웃바운드 트래픽을 허용해야 합니다.
+ 다음 포트는 AWS IoT SiteWise 80, 443, 3001, 4569, 4572, 8000, 8081, 8082, 8084, 8085, 8086, 8445, 9000, 9500, 11080 및 50010에서 사용하도록 예약되어 있습니다. 예약된 포트를 트래픽용으로 사용하면 연결이 종료될 수 있습니다.
**참고**  
포트 8087은 이 구성 요소의 버전 2.0.15 이상에만 필요합니다.
+ [Greengrass 디바이스 역할에](https://docs.aws.amazon.com/greengrass/v2/developerguide/device-service-role.html)는 AWS IoT Greengrass V2 디바이스에서 AWS IoT SiteWise 게이트웨이를 사용할 수 있는 권한이 있어야 합니다. 자세한 내용은 *AWS IoT SiteWise 사용 설명서*의 [요구 사항](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-gateway-ggv2.html#gateway-requirements)을 참조하세요.

### 엔드포인트 및 포트
<a name="iotsitewise-processor-component-endpoints"></a>

이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에 다음 엔드포인트 및 포트에 대한 아웃바운드 요청도 수행할 수 있어야 합니다. 자세한 내용은 [프록시 또는 방화벽을 통해 디바이스 트래픽 허용](allow-device-traffic.md) 단원을 참조하십시오.


| 엔드포인트 | 포트 | 필수 | 설명 | 
| --- | --- | --- | --- | 
|  `model.iotsitewise.region.amazonaws.com`  | 443 | 예 |   AWS IoT SiteWise 자산 및 자산 모델에 대한 정보를 가져옵니다.  | 
|  `edge.iotsitewise.region.amazonaws.com`  | 443 | 예 |  코어 디바이스의 AWS IoT SiteWise 게이트웨이 구성에 대한 정보를 가져옵니다.  | 
|  `ecr.region.amazonaws.com`  | 443 | 예 |  Amazon AWS IoT SiteWise Elastic Container Registry에서 Edge 게이트웨이 Docker 이미지를 다운로드합니다.  | 
|  `iot.region.amazonaws.com`  | 443 | 예 |   AWS 계정에 대한 디바이스 엔드포인트를 가져옵니다.  | 
|  `sts.region.amazonaws.com`  | 443 | 예 |  의 ID를 가져옵니다 AWS 계정.  | 
|  `monitor.iotsitewise.region.amazonaws.com`  | 443 | 아니요 |  코어 디바이스의 AWS IoT SiteWise Monitor 포털에 액세스하는 경우 필요합니다.  | 

## 종속성
<a name="iotsitewise-processor-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#iotsitewise-processor-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

다음 표에는 이 구성 요소의 버전 2.0.x\$12.1.x에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=2.0.3 <3.0.0 | 하드 | 
| [스트림 관리자](stream-manager-component.md) | >=2.0.10 <3.0.0 | 하드 | 
| [Greengrass CLI](greengrass-cli-component.md) | >=2.3.0 <3.0.0 | 하드 | 

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="iotsitewise-processor-component-configuration"></a>

이 구성 요소에는 구성 파라미터가 없습니다.

## 로컬 로그 파일
<a name="iotsitewise-processor-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/aws.iot.SiteWiseEdgeProcessor.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\aws.iot.SiteWiseEdgeProcessor.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/aws.iot.SiteWiseEdgeProcessor.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.iot.SiteWiseEdgeProcessor.log -Tail 10 -Wait
  ```

------

## 라이선스
<a name="iotsitewise-processor-component-licenses"></a>

이 구성 요소에는 다음 타사 소프트웨어/라이선스가 포함되어 있습니다.

### 타사 라이선스
<a name="w2ab1c24b8d120c25b5b1b1"></a>
+ Apache-2.0
+ MIT
+ BSD-2-Clause
+ BSD-3-Clause
+ CDDL-1.0
+ CDDL-1.1
+ ISC
+ ZLIB
+ GPL-3.0-with-GCC-exception
+ 퍼블릭 도메인
+ Python-2.0
+ Unicode-DFS-2015
+ BSD-1-Clause
+ OpenSSL
+ EPL-1.0
+ EPL-2.0
+ GPL-2.0-with-classpath-exception
+ MPL-2.0
+ CC0-1.0
+ JSON

<a name="component-core-software-license"></a>이 구성 요소는 [Greengrass 코어 소프트웨어 라이선스 계약](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)에 따라 릴리스됩니다.

## Changelog
<a name="iotsitewise-processor-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
| 3.5.1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 3.4.0 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 3.3.1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 3.3.0 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html) | 
|  3.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  3.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  3.1.3  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  3.1.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  3.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  3.0.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.2.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.37 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.35 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.34 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.33 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.32 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.31 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.29 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.28 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.24 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
| 2.1.23 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.1.21  |   2.0.x에서 2.1.x로 업그레이드하면 로컬 데이터가 손실됩니다.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.0.16  |  이 버전에는 버그 수정과 개선 사항이 포함되어 있습니다.  | 
|  2.0.15  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.0.14  |  이 버전에는 버그 수정과 개선 사항이 포함되어 있습니다.  | 
|  2.0.13  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.0.9  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.0.7  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.0.6  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.0.5  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/iotsitewise-processor-component.html)  | 
|  2.0.2  |  초기 버전입니다.  | 

## 다음 사항도 참조하세요.
<a name="iotsitewise-processor-component-see-also"></a>
+ *AWS IoT SiteWise 사용 설명서*의 [란 무엇입니까 AWS IoT SiteWise?](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html) 