클라이언트 애플리케이션 구성 요소 생성 - Amazon Lookout for Vision

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

클라이언트 애플리케이션 구성 요소 생성

gRPC 스텁을 생성하고 클라이언트 애플리케이션 코드를 준비했으면 클라이언트 애플리케이션 구성 요소를 생성할 수 있습니다. 생성한 구성 요소는 AWS IoT Greengrass V2와 함께 AWS IoT Greengrass Version 2 코어 디바이스에 배포하는 데 사용하는 사용자 지정 구성 요소입니다. 생성한 레시피는 사용자 지정 구성 요소를 설명합니다. 레시피에는 배포해야 하는 모든 종속성이 포함되어 있습니다. 이 경우 Amazon Lookout for Vision 모델 패키징에서 생성할 모델 구성요소를 지정합니다. 이러한 구성 요소 레시피에 대한 자세한 내용은 AWS IoT Greengrass Version 2구성 요소 레시피 참조를 참조하십시오.

이 항목의 절차는 레시피 파일에서 클라이언트 응용프로그램 구성 요소를 작성하고 이를 AWS IoT Greengrass V2 사용자 구성 요소로 게시하는 방법을 보여줍니다. AWS IoT Greengrass V2 콘솔 또는 AWS SDK를 사용하여 구성 요소를 게시할 수 있습니다.

사용자 지정 구성 요소를 만드는 방법에 대한 자세한 내용은 AWS IoT Greengrass V2설명서의 다음을 참조하십시오.

클라이언트 애플리케이션 구성 요소를 게시하기 위한 IAM 권한

클라이언트 애플리케이션 구성 요소를 만들고 게시하려면 다음과 같은 IAM 권한이 필요합니다.

  • greengrass:CreateComponentVersion

  • greengrass:DescribeComponent

  • s3:PutObject

레시피 생성

이 절차에서는 간단한 클라이언트 애플리케이션 구성 요소의 레시피를 생성합니다. lookoutvision_edge_agent_example.py의 코드는 디바이스에 배포된 모델을 나열하며, 구성 요소를 코어 디바이스에 배포한 후 자동으로 실행됩니다. 출력을 보려면 구성 요소를 배포한 후 구성 요소 로그를 확인하십시오. 자세한 내용은 디바이스에 구성 요소 배포 섹션을 참조하세요. 준비가 되면 이 절차를 사용하여 비즈니스 로직을 구현하는 코드의 레시피를 만드십시오.

레시피는 JSON 또는 YAML 형식 파일로 생성합니다. 또한 Amazon S3 버킷에 클라이언트 애플리케이션 코드를 업로드합니다.

클라이언트 애플리케이션 구성 요소 레시피를 만들려면
  1. 아직 하지 않았다면 gRPC 스텁 파일을 만듭니다. 자세한 내용은 gRPC 설정 섹션을 참조하세요.

  2. 다음 코드를 lookoutvision_edge_agent_example.py이라는 파일에 저장합니다.

    import grpc from edge_agent_pb2_grpc import EdgeAgentStub import edge_agent_pb2 as pb2 # Creating stub. with grpc.insecure_channel("unix:///tmp/aws.iot.lookoutvision.EdgeAgent.sock") as channel: stub = EdgeAgentStub(channel) # Add additional code that works with Edge Agent in this block to prevent resources leakage models_list_response = stub.ListModels( pb2.ListModelsRequest() ) for model in models_list_response.models: print(f"Model Details {model}")
  3. Amazon S3 버킷을 생성 (또는 기존 버킷 사용)하여 클라이언트 애플리케이션 구성 요소의 소스 파일을 저장합니다. 버킷은 사용자 AWS 계정 내에 있어야 하며, AWS IoT Greengrass Version 2을 사용하는 AWS 지역과 동일한 지역 및 Amazon Lookout for Vision에 있어야 합니다.

  4. 이전 단계에서 생성한 Amazon S3 버킷에 lookoutvision_edge_agent_example.py, edge_agent_pb2_grpc.py and edge_agent_pb2.py을 업로드합니다. 각 파일의 Amazon S3 경로를 기록합니다. gRPC 설정에서 edge_agent_pb2_grpc.pyedge_agent_pb2.py를 생성합니다.

  5. 편집기에서 다음과 같은 JSON 또는 YAML 레시피 파일을 생성합니다.

    • model_component은 모델 구성 요소의 이름으로 생성합니다. 자세한 내용은 구성 요소 설정 섹션을 참조하세요.

    • URI 항목을 lookoutvision_edge_agent_example.pyedge_agent_pb2_grpc.py, 및 edge_agent_pb2.py의 S3 경로로 변경합니다.

    JSON
    { "RecipeFormatVersion": "2020-01-25", "ComponentName": "com.lookoutvision.EdgeAgentPythonExample", "ComponentVersion": "1.0.0", "ComponentType": "aws.greengrass.generic", "ComponentDescription": "Lookout for Vision Edge Agent Sample Application", "ComponentPublisher": "Sample App Publisher", "ComponentDependencies": { "model_component": { "VersionRequirement": ">=1.0.0", "DependencyType": "HARD" } }, "Manifests": [ { "Platform": { "os": "linux" }, "Lifecycle": { "install": "pip3 install grpcio grpcio-tools protobuf Pillow", "run": { "script": "python3 {artifacts:path}/lookoutvision_edge_agent_example.py" } }, "Artifacts": [ { "Uri": "S3 path to lookoutvision_edge_agent_example.py" }, { "Uri": "S3 path to edge_agent_pb2_grpc.py" }, { "Uri": "S3 path to edge_agent_pb2.py" } ] } ], "Lifecycle": {} }
    YAML
    --- RecipeFormatVersion: 2020-01-25 ComponentName: com.lookoutvison.EdgeAgentPythonExample ComponentVersion: 1.0.0 ComponentDescription: Lookout for Vision Edge Agent Sample Application ComponentPublisher: Sample App Publisher ComponentDependencies: model_component: VersionRequirement: '>=1.0.0' DependencyType: HARD Manifests: - Platform: os: linux Lifecycle: install: |- pip3 install grpcio pip3 install grpcio-tools pip3 install protobuf pip3 install Pillow run: script: |- python3 {artifacts:path}/lookout_vision_agent_example.py Artifacts: - URI: S3 path to lookoutvision_edge_agent_example.py - URI: S3 path to edge_agent_pb2_grpc.py - URI: S3 path to edge_agent_pb2.py
  6. JSON 또는 YAML 파일을 컴퓨터에 저장합니다.

  7. 다음 중 하나를 수행하여 클라이언트 애플리케이션 구성 요소를 생성합니다.

클라이언트 애플리케이션 구성 요소 게시 (콘솔)

AWS IoT Greengrass V2 콘솔을 사용하여 클라이언트 애플리케이션 구성 요소를 게시할 수 있습니다.

클라이언트 애플리케이션 구성 요소를 게시하려면
  1. 아직 만들지 않았다면 레시피 생성을 수행하여 클라이언트 애플리케이션 구성 요소 레시피를 만듭니다.

  2. AWS IoT Greengrass 콘솔(https://console.aws.amazon.com/iot/)을 엽니다.

  3. 왼쪽 탐색 창의 Greengrass 에서 구성 요소를 선택합니다.

  4. 내 구성 요소에서 구성 요소 생성을 선택합니다.

  5. JSON 형식 레시피를 사용하려면 구성 요소 생성 페이지에서 레시피를 JSON으로 입력을 선택합니다. YAML 형식 레시피를 사용하려면 레시피를 YAML로 입력을 선택합니다.

  6. 레시피에서 기존 레시피를 레시피 생성에서 만든 JSON 또는 YAML 레시피로 대체합니다.

  7. 구성 요소 생성을 선택합니다.

  8. 다음으로 클라이언트 애플리케이션 구성 요소를 배포합니다.

클라이언트 애플리케이션 구성 요소 (SDK) 게시

CreateComponentVersion API를 사용하여 클라이언트 애플리케이션 구성 요소를 게시할 수 있습니다.

클라이언트 애플리케이션 구성 요소 (SDK) 를 게시하려면
  1. 아직 만들지 않았다면 레시피 생성을 수행하여 클라이언트 애플리케이션 구성 요소 레시피를 만듭니다.

  2. 명령 프롬프트에서 다음 명령을 입력하여 클라이언트 애플리케이션 구성 요소를 생성합니다. 레시피 생성에서 생성한 레시피 파일의 이름으로 recipe-file을 바꿉니다.

    aws greengrassv2 create-component-version --inline-recipe fileb://recipe-file

    응답의 구성 요소의 ARN을 기록합니다. 이 정보는 다음 단계에서 필요합니다.

  3. 다음 명령을 사용하여 클라이언트 애플리케이션 구성 요소 상태를 가져옵니다. component-arn을 이전 단계에서 기록한 정책 ARN으로 바꾸세요. componentState의 값이 DEPLOYABLE이면 클라이언트 응용 프로그램 구성 요소가 준비된 것입니다.

    aws greengrassv2 describe-component --arn component-arn
  4. 다음으로 클라이언트 애플리케이션 구성 요소를 배포합니다.