구성 요소 - AWS IoT Greengrass

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

구성 요소

AWS IoT Greengrass개발 키트 component 명령줄 인터페이스 (GDK CLI) 의 명령을 사용하여 사용자 지정 Greengrass 구성 요소를 생성, 빌드 및 게시할 수 있습니다.

init

구성 요소 템플릿 또는 커뮤니티 구성 요소에서 Greengrass 구성 요소 폴더를 초기화합니다.

GDK CLI는 Greengrass 소프트웨어 카탈로그에서 커뮤니티 구성 요소를 검색하고 의 구성 요소 템플릿 저장소에서 AWS IoT Greengrass 구성 요소 템플릿을 검색합니다. GitHub

참고

GDK CLI v1.0.0을 사용하는 경우 빈 폴더에서 이 명령을 실행해야 합니다. GDK CLI는 템플릿 또는 커뮤니티 구성 요소를 현재 폴더에 다운로드합니다.

GDK CLI v1.1.0 이상을 사용하는 경우 인수를 지정하여 GDK --name CLI가 템플릿 또는 커뮤니티 구성 요소를 다운로드하는 폴더를 지정할 수 있습니다. 이 인수를 사용하는 경우 존재하지 않는 폴더를 지정하십시오. GDK CLI는 폴더를 자동으로 생성합니다. 이 인수를 지정하지 않으면 GDK CLI는 비어 있어야 하는 현재 폴더를 사용합니다.

구성 요소가 zip 빌드 시스템을 사용하는 경우 GDK CLI는 구성 요소 폴더의 특정 파일을 구성 요소 폴더와 동일한 이름의 zip 파일로 압축합니다. 예를 들어 구성 요소 폴더 이름이 인 경우 GDK CLI는 HelloWorld 라는 zip 파일을 생성합니다. HelloWorld.zip 구성 요소 레시피에서 zip 아티팩트 이름은 구성 요소 폴더의 이름과 일치해야 합니다. Windows 디바이스에서 GDK CLI 버전 1.0.0을 사용하는 경우 구성 요소 폴더 및 zip 파일 이름에는 소문자만 포함되어야 합니다.

zip 빌드 시스템을 사용하는 템플릿 또는 커뮤니티 구성 요소를 템플릿 또는 구성 요소와 다른 이름의 폴더로 초기화하는 경우 구성 요소 레시피에서 zip 아티팩트 이름을 변경해야 합니다. zip 파일 이름이 구성 요소 폴더의 이름과 일치하도록 ArtifactsLifecycle 정의를 업데이트하십시오. 다음 예제에서는 ArtifactsLifecycle 정의의 zip 파일 이름을 강조 표시합니다.

JSON
{ ... "Manifests": [ { "Platform": { "os": "all" }, "Artifacts": [ { "URI": "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/HelloWorld.zip", "Unarchive": "ZIP" } ], "Lifecycle": { "run": "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}" } } ] }
YAML
--- ... Manifests: - Platform: os: all Artifacts: - URI: "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/HelloWorld.zip" Unarchive: ZIP Lifecycle: run: "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}"
시놉시스
$ gdk component init [--language] [--template] [--repository] [--name]
인수 (구성 요소 템플릿에서 초기화)
  • -l, --language — 지정한 템플릿에 사용할 프로그래밍 언어입니다.

    --repository또는 --language 및 중 하나를 지정해야 --template 합니다.

  • -t, --template — 로컬 구성 요소 프로젝트에 사용할 구성 요소 템플릿입니다. 사용 가능한 템플릿을 보려면 list 명령을 사용합니다.

    --repository또는 --language 및 중 하나를 지정해야 --template 합니다.

  • -n, --name — (선택 사항) GDK CLI가 구성 요소를 초기화하는 로컬 폴더의 이름입니다. 존재하지 않는 폴더를 지정하십시오. GDK CLI는 폴더를 자동으로 생성합니다.

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

인수 (커뮤니티 구성 요소에서 초기화)
  • -r, --repository — 로컬 폴더로 체크아웃할 커뮤니티 구성 요소입니다. 사용 가능한 커뮤니티 구성 요소를 보려면 list 명령을 사용합니다.

    --repository또는 --language 및 중 하나를 지정해야 --template 합니다.

  • -n, --name — (선택 사항) GDK CLI가 구성 요소를 초기화하는 로컬 폴더의 이름입니다. 존재하지 않는 폴더를 지정하십시오. GDK CLI는 폴더를 자동으로 생성합니다.

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

출력

다음 예제는 이 명령을 실행하여 Python Hello World 템플릿에서 구성 요소 폴더를 초기화할 때 생성되는 출력을 보여줍니다.

$ gdk component init -l python -t HelloWorld [2021-11-29 12:51:40] INFO - Initializing the project directory with a python component template - 'HelloWorld'. [2021-11-29 12:51:40] INFO - Fetching the component template 'HelloWorld-python' from Greengrass Software Catalog.

다음 예제는 이 명령을 실행하여 커뮤니티 구성 요소에서 구성 요소 폴더를 초기화할 때 생성되는 출력을 보여줍니다.

$ gdk component init -r aws-greengrass-labs-database-influxdb [2022-01-24 15:44:33] INFO - Initializing the project directory with a component from repository catalog - 'aws-greengrass-labs-database-influxdb'. [2022-01-24 15:44:33] INFO - Fetching the component repository 'aws-greengrass-labs-database-influxdb' from Greengrass Software Catalog.

build

구성 요소 소스를 레시피와 아티팩트로 빌드하여 서비스에 게시할 수 있습니다. AWS IoT Greengrass GDK CLI는 GDK CLI 구성 파일에 지정된 빌드 시스템을 실행합니다. gdk-config.json 파일이 있는 동일한 폴더에서 이 명령을 실행해야 합니다. gdk-config.json

이 명령을 실행하면 GDK CLI가 구성 요소 폴더의 폴더에 레시피와 아티팩트를 생성합니다. greengrass-build GDK CLI는 레시피를 폴더에 greengrass-build/recipes 저장하고 아티팩트를 폴더에 저장합니다. greengrass-build/artifacts/componentName/componentVersion

GDK CLI v1.1.0 이상을 사용하는 경우 구성 요소 레시피는 S3 버킷에는 있지만 로컬 구성 요소 빌드 폴더에는 없는 아티팩트를 지정할 수 있습니다. 이 기능을 사용하면 기계 학습 모델과 같이 아티팩트가 큰 구성 요소를 개발할 때 대역폭 사용량을 줄일 수 있습니다.

구성 요소를 빌드한 후 다음 중 하나를 수행하여 Greengrass 코어 기기에서 테스트할 수 있습니다.

  • AWS IoT GreengrassCore 소프트웨어를 실행하는 장치가 아닌 다른 장치에서 개발하는 경우 구성 요소를 게시하여 Greengrass 코어 장치에 배포해야 합니다. 구성 요소를 AWS IoT Greengrass 서비스에 게시하고 Greengrass 코어 장치에 배포합니다. 자세한 내용은 publish 명령 및 배포 만들기 을 참조하십시오.

  • AWS IoT GreengrassCore 소프트웨어를 실행하는 동일한 장치에서 개발하는 경우 구성 요소를 AWS IoT Greengrass 서비스에 게시하여 배포하거나 로컬 배포를 만들어 구성 요소를 설치하고 실행할 수 있습니다. 로컬 배포를 생성하려면 Greengrass CLI를 사용하십시오. 자세한 내용은 그린그래스 커맨드 라인 인터페이스로컬 배포를 통한 테스트 AWS IoT Greengrass 구성 요소 섹션을 참조하세요. 로컬 배포를 생성할 때 레시피 폴더와 아티팩트 greengrass-build/recipes greengrass-build/artifacts 폴더로 지정하십시오.

시놉시스
$ gdk component build
인수

None

출력

다음 예제는 이 명령을 실행할 때 생성되는 출력을 보여줍니다.

$ gdk component build [2021-11-29 13:18:49] INFO - Getting project configuration from gdk-config.json [2021-11-29 13:18:49] INFO - Found component recipe file 'recipe.yaml' in the project directory. [2021-11-29 13:18:49] INFO - Building the component 'com.example.PythonHelloWorld' with the given project configuration. [2021-11-29 13:18:49] INFO - Using 'zip' build system to build the component. [2021-11-29 13:18:49] WARNING - This component is identified as using 'zip' build system. If this is incorrect, please exit and specify custom build command in the 'gdk-config.json'. [2021-11-29 13:18:49] INFO - Zipping source code files of the component. [2021-11-29 13:18:49] INFO - Copying over the build artifacts to the greengrass component artifacts build folder. [2021-11-29 13:18:49] INFO - Updating artifact URIs in the recipe. [2021-11-29 13:18:49] INFO - Creating component recipe in 'C:\Users\MyUser\Documents\greengrass-components\python\HelloWorld\greengrass-build\recipes'.

publish

이 구성 요소를 AWS IoT Greengrass 서비스에 게시합니다. 이 명령은 빌드 아티팩트를 S3 버킷에 업로드하고, 레시피의 아티팩트 URI를 업데이트하고, 레시피에서 새 버전의 구성 요소를 생성합니다. GDK CLI는 GDK CLI 구성 파일에 지정된 S3 AWS 버킷과 지역을 사용합니다. gdk-config.json 파일이 있는 동일한 폴더에서 이 명령을 실행해야 합니다. gdk-config.json

GDK CLI v1.1.0 이상을 사용하는 경우 인수를 지정하여 GDK CLI가 구성 요소의 아티팩트를 업로드하는 S3 버킷을 지정할 --bucket 수 있습니다. 이 인수를 지정하지 않으면 GDK bucket-region-accountId CLI는 이름이 인 S3 버킷에 업로드됩니다. 여기서 버킷과 지역은 지정된 gdk-config.json 값이고 accountID는 ID입니다. AWS 계정 버킷이 없는 경우 GDK CLI에서 버킷을 생성합니다.

GDK CLI v1.2.0 이상을 사용하는 경우 매개변수를 사용하여 GDK CLI 구성 AWS 리전 파일에 지정된 내용을 재정의할 수 있습니다. --region 매개변수를 사용하여 추가 옵션을 지정할 수도 있습니다. --options 사용 가능한 옵션 목록은 을 참조하십시오그린그래스 개발 키트 CLI 구성 파일.

이 명령을 실행하면 GDK CLI가 레시피에 지정한 버전으로 구성요소를 게시합니다. 지정하는 NEXT_PATCH 경우 GDK CLI는 아직 존재하지 않는 다음 패치 버전을 사용합니다. 시맨틱 버전은 메이저를 사용합니다. 마이너. 패치 넘버링 시스템. 자세한 내용은 시맨틱 버전 사양을 참조하십시오.

참고

GDK CLI v1.1.0 이상을 사용하는 경우 이 명령을 실행하면 GDK CLI에서 구성 요소가 빌드되었는지 확인합니다. 구성 요소가 빌드되지 않은 경우 GDK CLI는 구성 요소를 게시하기 전에 구성 요소를 빌드합니다.

시놉시스
$ gdk component publish [--bucket] [--region] [--options]
인수
  • -b, --bucket — (선택 사항) GDK CLI가 구성 요소 아티팩트를 게시하는 S3 버킷의 이름을 지정합니다.

    이 인수를 지정하지 않으면 GDK bucket-region-accountId CLI는 이름이 인 S3 버킷에 업로드됩니다. 여기서 버킷과 지역은 지정된 gdk-config.json 값이고 accountID는 ID입니다. AWS 계정 버킷이 없는 경우 GDK CLI에서 버킷을 생성합니다.

    버킷이 없는 경우 GDK CLI에서 버킷을 생성합니다.

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

  • -r, --region — (선택 사항) 구성 요소 생성 시 대상 이름을 지정합니다. AWS 리전 이 인수는 GDK CLI 컨피그레이션의 지역 이름을 대체합니다.

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

  • -o, --options (선택 사항) 구성 요소를 게시하기 위한 옵션 목록을 지정합니다. 인수는 유효한 JSON 문자열이거나 게시 옵션이 포함된 JSON 파일의 파일 경로여야 합니다. 이 인수는 GDK CLI 컨피그레이션의 옵션을 재정의합니다.

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

출력

다음 예제는 이 명령을 실행할 때 생성되는 출력을 보여줍니다.

$ gdk component publish [2021-11-29 13:45:29] INFO - Getting project configuration from gdk-config.json [2021-11-29 13:45:29] INFO - Found component recipe file 'recipe.yaml' in the project directory. [2021-11-29 13:45:29] INFO - Found credentials in shared credentials file: ~/.aws/credentials [2021-11-29 13:45:30] INFO - Publishing the component 'com.example.PythonHelloWorld' with the given project configuration. [2021-11-29 13:45:30] INFO - No private version of the component 'com.example.PythonHelloWorld' exist in the account. Using '1.0.0' as the next version to create. [2021-11-29 13:45:30] INFO - Uploading the component built artifacts to s3 bucket. [2021-11-29 13:45:30] INFO - Uploading component artifacts to S3 bucket: {bucket}. If this is your first time using this bucket, add the 's3:GetObject' permission to each core device's token exchange role to allow it to download the component artifacts. For more information, see https://docs.aws.amazon.com/greengrass/v2/developerguide/device-service-role.html. [2021-11-29 13:45:30] INFO - Not creating an artifacts bucket as it already exists. [2021-11-29 13:45:30] INFO - Updating the component recipe com.example.PythonHelloWorld-1.0.0. [2021-11-29 13:45:30] INFO - Creating a new greengrass component com.example.PythonHelloWorld-1.0.0 [2021-11-29 13:45:30] INFO - Created private version '1.0.0' of the component in the account.'com.example.PythonHelloWorld'.

list

사용 가능한 구성 요소 템플릿 및 커뮤니티 구성 요소 목록을 검색하십시오.

GDK CLI는 Greengrass 소프트웨어 카탈로그에서 커뮤니티 구성 요소를 검색하고 의 구성 요소 템플릿 저장소에서 AWS IoT Greengrass 구성 요소 템플릿을 검색합니다. GitHub

이 명령의 출력을 init 명령에 전달하여 템플릿 및 커뮤니티 구성 요소에서 구성 요소 리포지토리를 초기화할 수 있습니다.

시놉시스
$ gdk component list [--template] [--repository]
인수
  • -t, --template — (선택 사항) 사용 가능한 구성 요소 템플릿을 나열하려면 이 인수를 지정합니다. 이 명령은 각 템플릿의 이름과 언어를 형식으로 name-language 출력합니다. 예를 들어HelloWorld-python, 에서 템플릿 이름은 HelloWorld 이고 언어는 입니다python.

  • -r, --repository — (선택 사항) 사용 가능한 커뮤니티 구성 요소 저장소를 나열하려면 이 인수를 지정합니다.

출력

다음 예제는 이 명령을 실행할 때 생성되는 출력을 보여줍니다.

$ gdk component list --template [2021-11-29 12:29:04] INFO - Listing all the available component templates from Greengrass Software Catalog. [2021-11-29 12:29:04] INFO - Found '2' component templates to display. 1. HelloWorld-python 2. HelloWorld-java