

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

# AWS IoT Greengrass 개발 키트 명령줄 인터페이스
<a name="greengrass-development-kit-cli"></a>

AWS IoT Greengrass 개발 키트 CLI(GDK CLI)는 [사용자 지정 Greengrass 구성 요소](develop-greengrass-components.md)를 개발하는 데 도움이 되는 기능을 제공합니다. GDK CLI를 사용하여 사용자 지정 구성 요소를 생성, 빌드 및 게시할 수 있습니다. GDK CLI를 사용하여 구성 요소 리포지토리를 생성할 때 [Greengrass 소프트웨어 카탈로그](greengrass-software-catalog.md)의 템플릿 또는 커뮤니티 구성 요소에서 시작할 수 있습니다. 이후 파일을 ZIP 아카이브로 패키징하거나, Maven 또는 Gradle 빌드 스크립트를 사용하거나, 사용자 지정 빌드 명령을 실행하는 빌드 시스템을 선택할 수 있습니다. 구성 요소를 생성한 후 GDK CLI를 사용하여 AWS IoT Greengrass 서비스에 게시할 수 있으므로 AWS IoT Greengrass 콘솔 또는 API를 사용하여 Greengrass 코어 디바이스에 구성 요소를 배포할 수 있습니다.

GDK CLI 없이 Greengrass 구성 요소를 개발할 때는 구성 요소의 새 버전을 생성할 때마다 [구성 요소 레시피 파일](component-recipe-reference.md)에서 버전 및 아티팩트 URI를 업데이트해야 합니다. GDK CLI를 사용하면 구성 요소의 새 버전을 게시할 때마다 버전 및 아티팩트 URI가 자동으로 업데이트될 수 있습니다.

GDK CLI는 오픈 소스로 GitHub에서 사용할 수 있습니다. 구성 요소 개발 요구 사항에 맞춰 GDK CLI를 사용자 지정 및 확장할 수 있습니다. GitHub 리포지토리에서 문제를 열고 요청을 가져오는 것이 좋습니다. GDK CLI 소스를 찾을 수 있는 링크: [https://github.com/aws-greengrass/aws-greengrass-gdk-cli](https://github.com/aws-greengrass/aws-greengrass-gdk-cli).

## 사전 조건
<a name="gdk-cli-prerequisites"></a>

Greengrass 개발 키트 CLI를 설치 및 사용하려면 다음이 필요합니다.
+ AWS 계정. 없으면 [설정 AWS 계정](setting-up.md#set-up-aws-account) 단원을 참조하세요.
+ 인터넷에 연결된 Windows, macOS 또는 Unix 계열 개발 컴퓨터.
+ GDK CLI 버전 1.1.0 이상의 경우 [Python](https://www.python.org/downloads/) 3.6 이상이 개발 컴퓨터에 설치되어야 합니다.

  GDK CLI 버전 1.0.0의 경우 [Python](https://www.python.org/downloads/) 3.8 이상이 개발 컴퓨터에 설치되어야 합니다.
+ 개발 컴퓨터에 설치된 [Git](https://git-scm.com/).
+ <a name="development-component-aws-cli-prerequisite"></a>자격 증명을 사용하여 개발 컴퓨터에 AWS Command Line Interface(AWS CLI)가 설치되어 있어야 합니다. 자세한 내용은 *AWS Command Line Interface 사용 설명서*의 [AWS CLI 설치, 업데이트, 제거](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) 및 [AWS CLI 구성](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) 단원을 참조하세요.
**참고**  
Raspberry Pi 또는 다른 32비트 ARM 디바이스를 사용하는 경우 AWS CLI V1을 설치합니다. AWS CLI 32비트 ARM 디바이스에서는 V2를 사용할 수 없습니다. 자세한 내용은 [AWS CLI 버전 1 설치, 업데이트 및 제거](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html) 섹션을 참조하세요.
+ GDK CLI를 사용하여 AWS IoT Greengrass 서비스에 구성 요소를 게시하려면 다음 권한이 있어야 합니다.
  + `s3:CreateBucket`
  + `s3:GetBucketLocation`
  + `s3:PutObject`
  + `greengrass:CreateComponentVersion`
  + `greengrass:ListComponentVersions`
+ GDK CLI를 사용하여 아티팩트가 로컬 파일 시스템이 아닌 S3 버킷에 있는 구성 요소를 빌드하려면 다음 권한이 있어야 합니다.
  + `s3:ListBucket`

  이 기능은 GDK CLI v1.1.0 이상에서 사용할 수 있습니다.

## Changelog
<a name="gdk-cli-changelog"></a>

다음 표에서는 GDK CLI의 각 버전에서 변경된 사항에 대해 설명합니다. 자세한 내용은 GitHub의 [GDK CLI Releases 페이지](https://github.com/aws-greengrass/aws-greengrass-gdk-cli/releases)를 참조하세요.


|  **버전**:   |  **변경 사항**  | 
| --- | --- | 
| 1.6.2 |  **버그 수정 및 개선 사항**<br />   상대 경로로 인해 Windows gradlew.bat이 작동하지 않는 문제를 해결합니다.   로깅, 테스트 및 패키징에 대한 사소한 개선 사항.     | 
| 1.6.1 |  **버그 수정 및 개선 사항**<br />   CLI 인수 구문 분석에 대한 보안 수정 사항이 추가됩니다.   GDK가 최신 GTF(Greengrass Testing Framework) 릴리스 이름을 기본 GTF 버전으로 가져올 수 있습니다.   GDK가 이전 버전의 GTF를 사용하는 고객에게 최신 버전으로 업데이트할 것을 권장할 수 있습니다.     | 
| 1.6.0 |  **새로운 특성**<br />   `component build` 및 `component publish` 명령 도중 Greengrass 레시피 스키마에 대한 레시피 검증 검사가 추가됩니다. 이 업데이트를 통해 개발자는 구성 요소 생성 프로세스 초기에 구성 요소 레시피 내에서 조치를 취할 수 있는 문제를 식별할 수 있습니다.   `test-e2e init` 명령으로 가져올 수 있는 템플릿에 신뢰도 테스트 제품군이 추가됩니다. 이 신뢰도 테스트 제품군에는 기본 구성 요소 테스트 요구 사항에 맞춰 사용하고 확장할 수 있는 8가지 일반 테스트가 포함되어 있습니다.   <br />**버그 수정 및 개선 사항**<br />   `test-e2e` 명령에서 사용하는 기본 GTF(Greengrass Testing Framework) 버전이 1.2.0으로 업데이트됩니다.     | 
| 1.5.0 |  **버그 수정 및 개선 사항**<br /> `build_system`가 `zip`인 경우 `excludes` 빌드 옵션에서 인식하는 패턴이 업데이트됩니다. 이제 이 버전에서 와일드카드 문자를 기반으로 경로 이름과 일치하는 glob 패턴을 인식합니다. 이를 통해 제외할 디렉터리를 사용자 지정할 수 있습니다.   | 
| 1.4.0 |  **새로운 특성**<br />   기존 GDK 구성 파일 내의 필드를 수정하는 대화형 프롬프트를 시작하는 `config` 명령이 새로 추가됩니다.   계속하기 전에 레시피 크기가 Greengrass 요구 사항(16,000바이트 이하) 내에 있는지 확인하기 위해 `gdk component build` 및 `gdk component publish` 명령이 수정됩니다.   <br />**버그 수정 및 개선 사항**<br />   레시피 구문 오류로 인해 빌드 인식이 완료되지 못할 경우 `gdk component build` 명령 출력에 로깅이 추가됩니다.   Open Test Framework의 이름이 Greengrass Testing Framework로 변경되면서 `otf-options` 및 `otf-version`의 이름이 `gtf-options` 및 `gtf-version`으로 변경됩니다.     | 
| 1.3.0 |  **새로운 특성**<br />   Open Test Framework를 사용하여 구성 요소의 종단 간 테스트를 지원하는 `test-e2e` 명령이 새로 추가됩니다.   zip 빌드 시스템에서 구성 가능한 zip 파일 이름을 지원하기 위해 새 구성 옵션인 `zip_name`이 추가됩니다.   GDK 구성 파일의 `region` 속성이 선택 사항으로 설정됩니다.   <br />**버그 수정 및 개선 사항**<br />   `--name` 인수로 GDK 프로젝트를 초기화할 때 지정된 템플릿 또는 리포지토리가 존재하지 않더라도 새 디렉터리가 생성되는 문제를 해결합니다.     | 
| 1.2.3 |  **버그 수정 및 개선 사항**<br />   잘못된 오류 처리로 인해 버킷 생성이 실패하는 문제를 해결합니다.   구성 요소 레시피의 목록 구조가 제거되는 문제를 해결합니다.     | 
| 1.2.2 |  **버그 수정 및 개선 사항**<br />   레시피 키가 더 이상 대/소문자를 구분하지 않습니다.   새 버킷을 생성하기 전에 버킷이 AWS 리전에 있고 사용자가 액세스할 수 있는지 여부를 확인하는 검사가 추가됩니다. 사용자에게 `GetBucketLocation` 권한이 있어야 합니다.   GDK CLI 구성 파일의 `excludes` 키워드 관련 문제를 해결합니다.     | 
| 1.2.1 |  **버그 수정 및 개선 사항**<br />   `gdk-config.json` 파일의 리전 구성 항목에서 캐나다(중부)(`ca-central-1`) AWS 리전이 수락됩니다.   `publish` 명령에 대한 `--region` GDK CLI 인수 문제가 해결됩니다.     | 
| 1.2.0 |  **새로운 특성**<br />   GDK CLI `build` 구성 파일의 구성에 `options` 항목이 추가됩니다. `options`에서 `excludes`가 지원되어 `zip` 빌드 시스템을 사용할 때 zip 아티팩트에서 특정 파일을 제외할 수 있습니다.   Gradle Wrapper를 사용하여 구성 요소를 빌드하는 `gradlew` 빌드 시스템이 추가됩니다.   `gradle` 빌드 옵션에 대해 Kotlin DSL 빌드 파일 지원을 추가합니다.   GDK CLI `publish` 구성 파일의 구성에 `options` 항목이 추가됩니다. Amazon S3에 파일을 업로드할 때 추가 인수를 제공하기 위해 `options`에서 `file_upload_args`가 지원됩니다.    **버그 수정 및 개선 사항**<br />   build 명령을 실행하기 전에 Gradle 빌드가 정리되지 않은 문제를 해결합니다.   build 명령이 실패할 때 빌드가 종료되지 않는 문제를 해결합니다.   `gdk component list` 명령의 출력 형식이 개선됩니다.     | 
| 1.1.0 |  **새로운 특성**<br />   Gradle [빌드 시스템](gdk-cli-configuration-file.md#gdk-cli-configuration-file-build-system)에 대한 지원을 추가합니다.   Windows 디바이스의 Maven [빌드 시스템](gdk-cli-configuration-file.md#gdk-cli-configuration-file-build-system)에 대한 지원을 추가합니다.   [component publish](greengrass-development-kit-cli-component.md#greengrass-development-kit-cli-component-publish) 명령에 `--bucket` 인수가 추가됩니다. 이 인수를 사용하여 GDK CLI가 구성 요소 아티팩트를 업로드하는 정확한 버킷을 지정할 수 있습니다.   [component init](greengrass-development-kit-cli-component.md#greengrass-development-kit-cli-component-init) 명령에 `--name` 인수가 추가됩니다. 이 옵션을 사용하여 GDK CLI가 구성 요소를 초기화하는 폴더를 지정할 수 있습니다.   S3 버킷에는 있지만 로컬 구성 요소 빌드 폴더에는 없는 구성 요소 아티팩트에 대한 지원을 추가합니다. 이 기능을 사용하면 기계 학습 모델과 같은 큰 구성 요소 아티팩트의 대역폭 비용을 줄일 수 있습니다.   <br />**버그 수정 및 개선 사항**<br />   [component publish](greengrass-development-kit-cli-component.md#greengrass-development-kit-cli-component-publish) 명령이 업데이트되어 구성 요소 게시 전에 구성 요소가 빌드되었는지 확인합니다. 구성 요소가 빌드되지 않은 경우 이제 이 명령을 사용하여 [구성 요소가 빌드됩니다](greengrass-development-kit-cli-component.md#greengrass-development-kit-cli-component-build).   ZIP 파일 이름에 대문자가 포함된 경우 zip 빌드 시스템이 Windows 디바이스에 빌드되지 않는 문제를 해결합니다.   로그 메시지 형식이 개선되고 Python 버전 3.8 이하를 실행하는 디바이스에서 기본 로그 수준이 `INFO`로 변경됩니다.   최소 Python 버전 요구 사항이 Python 3.6으로 변경됩니다.     | 
| 1.0.0 | 초기 버전입니다. | 