クライアントアプリケーションコンポーネントの作成 - Amazon Lookout for Vision

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

クライアントアプリケーションコンポーネントの作成

gRPC スタブを生成し、クライアントアプリケーションコードの準備ができたら、クライアントアプリケーションコンポーネントを作成できます。作成するコンポーネントは、AWS IoT Greengrass Version 2AWS IoT Greengrass V2コアデバイスにデプロイするカスタムコンポーネントです。作成するレシピには、カスタムコンポーネントが記述されます。レシピには、デプロイが必要な依存関係もすべて含まれています。この場合、で作成するモデルコンポーネントを指定しますAmazon Lookout for Vision モデルのパッケージング。コンポーネントレシピの詳細については、「AWS IoT Greengrass Version 2コンポーネント recipe のリファレンス」を参照してください。

このトピックの手順では、レシピファイルからクライアントアプリケーションコンポーネントを作成し、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アカウント内で、Amazon Lookout for VisionAWSAWS IoT Greengrass Version 2 を使用しているのと同じリージョンにある必要があります。

  4. 前の手順で作成した Amazon S3lookoutvision_edge_agent_example.py バケットにアップロードします。edge_agent_pb2_grpc.py and edge_agent_pb2.py各ファイルの Amazon S3 パスをメモしておきます。edge_agent_pb2_grpc.pyedge_agent_pb2.py作成してgRPC のセットアップ.

  5. エディターで、次の JSON または YAML レシピファイルを作成します。

    • model_componentモデルコンポーネントの名前に変更します。詳細については、「コンポーネント設定」を参照してください。

    • URI エントリを、、およびの S3edge_agent_pb2.py パスに変更します。lookoutvision_edge_agent_example.pyedge_agent_pb2_grpc.py

    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. https://console.aws.amazon.com/iot/AWS IoT Greengrass でコンソールを開きます

  3. 左側のナビゲーションペインの Greengrass で、「コンポーネント」を選択します。

  4. [マイコンポーネント] で [コンポーネントを作成] を選択します。

  5. JSON 形式のレシピを使用する場合は、「コンポーネントの作成」ページで「レシピを JSON 形式で入力」を選択します。YAML 形式のレシピを使用する場合は、「レシピを YAML として入力」を選択します。

  6. レシピ」で、既存のレシピを、で作成した JSON または YAMLレシピの作成 レシピに置き換えます。

  7. [Create component] (コンポーネントの作成) を選択します。

  8. 次に、クライアントアプリケーションコンポーネントをデプロイします

クライアントアプリケーションコンポーネント (SDK) の公開

CreateComponentVersionAPI を使用してクライアントアプリケーションコンポーネントを公開できます。

クライアントアプリケーションコンポーネント (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. 次に、クライアントアプリケーションコンポーネントをデプロイします