코어 디바이스에 배포할 구성 요소를 게시하세요. - AWS IoT Greengrass

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

코어 디바이스에 배포할 구성 요소를 게시하세요.

구성 요소 버전을 빌드하거나 완성한 후 AWS IoT Greengrass 서비스에 게시할 수 있습니다. 그런 다음 Greengrass 코어 디바이스에 배포할 수 있습니다.

그린그래스 개발 키트 CLI (GDK CLI) 를 사용하여 구성 요소를 개발하고 구축하는 경우, GDK CLI를 사용하여 구성 요소를 게시할 수 있습니다. AWS 클라우드그렇지 않으면 내장된 셸 명령과 를 사용하여 구성 요소를 게시하십시오. AWS CLI

를 AWS CloudFormation 사용하여 템플릿에서 구성 요소 및 기타 AWS 리소스를 만들 수도 있습니다. 자세한 내용은 What is AWS CloudFormation? 를 참조하십시오. 그리고 AWS::GreengrassV2::ComponentVersionAWS CloudFormation사용자 안내서에서

구성 요소 게시 (GDK CLI)

이 섹션의 지침에 따라 GDK CLI를 사용하여 구성 요소를 게시하십시오. GDK CLI는 빌드 아티팩트를 S3 버킷에 업로드하고, 레시피의 아티팩트 URI를 업데이트하고, 레시피에서 구성 요소를 생성합니다. GDK CLI 구성 파일에서 사용할 S3 버킷과 지역을 지정합니다.

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

중요

코어 디바이스 역할은 기본적으로 S3 버킷에 대한 액세스를 허용하지 않습니다. 이 S3 버킷을 처음 사용하는 경우, 코어 디바이스가 이 S3 버킷에서 구성 요소 아티팩트를 검색할 수 있도록 역할에 권한을 추가해야 합니다. 자세한 정보는 구성 요소 아티팩트의 S3 버킷에 대한 액세스 허용을 참조하세요.

그린그래스 컴포넌트 (GDK CLI) 를 게시하려면
  1. 명령 프롬프트 또는 터미널에서 구성 요소 폴더를 엽니다.

  2. 아직 빌드하지 않았다면 Greengrass 컴포넌트를 빌드하세요. 구성 요소 빌드 명령은 구성 요소 폴더의 greengrass-build 폴더에 레시피와 아티팩트를 생성합니다. 다음 명령을 실행합니다.

    gdk component build
  3. 구성 요소를 에 AWS 클라우드게시합니다. 구성 요소 게시 명령은 구성 요소의 아티팩트를 Amazon S3에 업로드하고 각 아티팩트의 URI로 구성 요소의 레시피를 업데이트합니다. 그런 다음 서비스에 구성 요소를 생성합니다. AWS IoT Greengrass

    참고

    AWS IoT Greengrass 구성 요소를 만들 때 각 아티팩트의 다이제스트를 계산합니다. 즉, 구성 요소를 생성한 후에는 S3 버킷의 아티팩트 파일을 수정할 수 없습니다. 이렇게 하면 파일 다이제스트가 일치하지 않아 이 구성 요소를 포함하는 배포가 실패합니다. 아티팩트 파일을 수정하는 경우 구성 요소의 새 버전을 만들어야 합니다.

    GDK CLI 구성 파일에서 구성 요소 버전을 지정하는 NEXT_PATCH 경우 GDK CLI는 서비스에 아직 없는 다음 패치 버전을 사용합니다. AWS IoT Greengrass

    다음 명령을 실행합니다.

    gdk component publish

    출력은 GDK CLI에서 생성한 구성 요소의 버전을 알려줍니다.

    구성 요소를 게시한 후 구성 요소를 코어 장치에 배포할 수 있습니다. 자세한 정보는 디바이스에 AWS IoT Greengrass 구성 요소 배포을 참조하세요.

구성 요소 게시 (셸 명령)

셸 명령과 AWS Command Line Interface (AWS CLI) 를 사용하여 구성 요소를 게시하려면 다음 절차를 따르십시오. 구성 요소를 게시할 때 다음 작업을 수행합니다.

  1. 구성 요소 아티팩트를 S3 버킷에 게시합니다.

  2. 각 아티팩트의 Amazon S3 URI를 구성 요소 레시피에 추가합니다.

  3. 구성 요소 AWS IoT Greengrass 레시피에서 구성 요소 버전을 생성합니다.

참고

업로드하는 각 구성 요소 버전은 고유해야 합니다. 구성 요소 버전을 업로드한 후에는 편집할 수 없으므로 올바른 구성 요소 버전을 업로드해야 합니다.

다음 단계에 따라 개발 컴퓨터 또는 Greengrass 코어 디바이스에서 구성 요소를 게시할 수 있습니다.

구성 요소를 게시하려면 (셸 명령)
  1. 구성 요소가 AWS IoT Greengrass 서비스에 있는 버전을 사용하는 경우 구성 요소의 버전을 변경해야 합니다. 텍스트 편집기에서 레시피를 열고 버전을 증가시킨 다음 파일을 저장합니다. 구성 요소의 변경 사항을 반영하는 새 버전을 선택합니다.

    참고

    AWS IoT Greengrass 구성 요소에 시맨틱 버전을 사용합니다. 시맨틱 버전은 메이저.마이너.패치 번호 시스템을 따릅니다. 예를 들어 버전은 구성 1.0.0 요소의 첫 번째 주요 릴리스를 나타냅니다. 자세한 내용은 시맨틱 버전 사양을 참조하십시오.

  2. 구성 요소에 아티팩트가 있는 경우 다음을 수행하십시오.

    1. 구성 요소의 아티팩트를 의 S3 버킷에 게시하십시오. AWS 계정

      작은 정보

      S3 버킷의 아티팩트 경로에 구성 요소 이름과 버전을 포함하는 것이 좋습니다. 이 이름 지정 체계를 사용하면 이전 버전의 구성 요소가 사용하는 아티팩트를 유지 관리할 수 있으므로 이전 구성 요소 버전을 계속 지원할 수 있습니다.

      다음 명령을 실행하여 S3 버킷에 아티팩트 파일을 게시합니다. DOC-EXAMPLE-BUCKET을 버킷 이름으로 바꾸고 아티팩트/com.example을 대체하십시오. HelloWorld/1.0.0/artifact.py를 아티팩트 파일의 경로로 입력합니다.

      aws s3 cp artifacts/com.example.HelloWorld/1.0.0/artifact.py s3://DOC-EXAMPLE-BUCKET/artifacts/com.example.HelloWorld/1.0.0/artifact.py
      중요

      코어 디바이스 역할은 기본적으로 S3 버킷에 대한 액세스를 허용하지 않습니다. 이 S3 버킷을 처음 사용하는 경우, 코어 디바이스가 이 S3 버킷에서 구성 요소 아티팩트를 검색할 수 있도록 역할에 권한을 추가해야 합니다. 자세한 정보는 구성 요소 아티팩트의 S3 버킷에 대한 액세스 허용을 참조하세요.

    2. 이름이 지정된 Artifacts 목록이 없는 경우 구성 요소 레시피에 해당 목록을 추가하십시오. Artifacts목록은 각 매니페스트에 나타나며, 지원되는 각 플랫폼의 구성 요소 요구 사항 (또는 모든 플랫폼에 대한 구성 요소의 기본 요구 사항) 을 정의합니다.

    3. 각 아티팩트를 아티팩트 목록에 추가하거나 기존 아티팩트의 URI를 업데이트하십시오. Amazon S3 URI는 버킷 이름과 버킷 내 아티팩트 객체 경로로 구성됩니다. 아티팩트의 Amazon S3 URI는 다음 예제와 비슷해야 합니다.

      s3://DOC-EXAMPLE-BUCKET/artifacts/com.example.HelloWorld/1.0.0/artifact.py

    이 단계를 완료하면 레시피에 다음과 같은 Artifacts 목록이 표시되어야 합니다.

    JSON
    { ... "Manifests": [ { "Lifecycle": { ... }, "Artifacts": [ { "URI": "s3://DOC-EXAMPLE-BUCKET/artifacts/MyGreengrassComponent/1.0.0/artifact.py", "Unarchive": "NONE" } ] } ] }
    참고

    ZIP 아티팩트 "Unarchive": "ZIP" 옵션을 추가하여 구성 요소가 배포될 때 아티팩트의 압축을 풀도록 AWS IoT Greengrass Core 소프트웨어를 구성할 수 있습니다.

    YAML
    ... Manifests: - Lifecycle: ... Artifacts: - URI: s3://DOC-EXAMPLE-BUCKET/artifacts/MyGreengrassComponent/1.0.0/artifact.py Unarchive: NONE
    참고

    Unarchive: ZIP 옵션을 사용하여 구성 요소를 배포할 때 ZIP 아티팩트의 압축을 풀도록 AWS IoT Greengrass Core 소프트웨어를 구성할 수 있습니다. 구성 요소에서 ZIP 아티팩트를 사용하는 방법에 대한 자세한 내용은 Artifacts:DecompressedPath 레시피 변수를 참조하십시오.

    레시피에 대한 자세한 내용은 AWS IoT Greengrass 컴포넌트 레시피 참조 단원을 참조하세요.

  3. AWS IoT Greengrass 콘솔을 사용하여 레시피 파일에서 컴포넌트를 생성할 수 있습니다.

    다음 명령을 실행하여 레시피 파일에서 컴포넌트를 생성합니다. 이 명령은 구성 요소를 만든 다음 해당 구성 요소를 사용자의 AWS 계정개인 AWS IoT Greengrass 구성 요소로 게시합니다. Path/to/RecipeFile을 레시피 파일의 경로로 바꾸십시오.

    aws greengrassv2 create-component-version --inline-recipe fileb://path/to/recipeFile

    arn응답에서 를 복사하여 다음 단계에서 구성 요소의 상태를 확인합니다.

    참고

    AWS IoT Greengrass 구성 요소를 만들 때 각 아티팩트의 다이제스트를 계산합니다. 즉, 구성 요소를 생성한 후에는 S3 버킷의 아티팩트 파일을 수정할 수 없습니다. 이렇게 하면 파일 다이제스트가 일치하지 않아 이 구성 요소를 포함하는 배포가 실패합니다. 아티팩트 파일을 수정하는 경우 구성 요소의 새 버전을 만들어야 합니다.

  4. AWS IoT Greengrass 서비스의 각 구성 요소에는 상태가 있습니다. 다음 명령을 실행하여 이 절차에서 게시한 구성 요소 버전의 상태를 확인합니다. com.example을 대체하십시오. HelloWorld쿼리할 구성 요소 버전으로 1.0.0을 입력합니다. 를 이전 단계의 arn ARN으로 교체합니다.

    aws greengrassv2 describe-component --arn "arn:aws:greengrass:region:account-id:components:com.example.HelloWorld:versions:1.0.0"

    이 작업은 구성 요소의 메타데이터가 포함된 응답을 반환합니다. 메타데이터에는 구성 요소 상태 및 오류 (해당하는 경우) 가 포함된 status 개체가 포함됩니다.

    구성 요소 상태가 DEPLOYABLE 이면 구성 요소를 장치에 배포할 수 있습니다. 자세한 내용은 디바이스에 AWS IoT Greengrass 구성 요소 배포을(를) 참조하세요.