サンプルアプリケーション、スクリプト、テンプレート - AWS Panorama

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

サンプルアプリケーション、スクリプト、テンプレート

このガイドの GitHub リポジトリには、AWS Panorama デバイス用のサンプルアプリケーション、スクリプト、およびテンプレートが用意されています。これらのサンプルを使ってベストプラクティスを学び、開発ワークフローを自動化します。

サンプルアプリケーション

サンプルアプリケーションでは、AWS Panorama 機能の使用方法や一般的なコンピュータービジョンタスクを示しています。これらのサンプルアプリケーションには、セットアップとデプロイを自動化するスクリプトとテンプレートが含まれています。最小限の設定で、コマンドラインからアプリケーションのデプロイと更新を実行できます。

  • aws-panorama-sample — 分類モデルを使用した基本的なコンピュータービジョン。AWS SDK for Python (Boto) を使用して、CloudWatch へのメトリクスのアップロード、前処理メソッドと推論メソッドのインストゥルメント、ロギングの設定を行います。

  • debug-server — デバイスのインバウンドポートを開き、トラフィックをアプリケーションコードコンテナに転送します。マルチスレッドを使用して、アプリケーションコード、HTTP サーバー、HTTP クライアントを同時に実行します。

  • custom-model — コードからモデルをエクスポートし、SageMaker Neo でコンパイルして AWS Panorama アプライアンスとの互換性をテストします。Python 開発環境、Docker コンテナ、または Amazon EC2 インスタンスでローカルに構築します。特定の TensorFlow または Python バージョン用に、すべての組み込みアプリケーションモデルを Keras にエクスポートしてコンパイルします。

その他のサンプルアプリケーションについては、aws-panorama-samples リポジトリもご覧ください。

ユーティリティスクリプト

util-scripts ディレクトリ内のスクリプトは、AWS Panorama リソースを管理したり、開発ワークフローを自動化したりします。

  • provision-device.sh — デバイスをプロビジョニングします。

  • check-updates.sh — アプライアンスのソフトウェアアップデートを確認して適用します。

  • reboot-device.sh — デバイスを再起動します。

  • register-camera.sh — カメラを登録します。

  • deregister-camera.sh — カメラノードを削除します。

  • view-logs.sh — アプリケーションインスタンスのログを表示します。

  • pause-camera.sh — カメラストリームを一時停止または再開します。

  • push.sh — アプリケーションを構築、アップロード、デプロイします。

  • rename-package.sh — ノードパッケージの名前を変更します。ディレクトリ名、設定ファイル、アプリケーションマニフェストを更新します。

  • samplify.sh — アカウント ID をサンプルアカウント ID に置き換え、バックアップ設定を復元してローカル設定を削除します。

  • update-model-config.sh — 記述子ファイルを更新した後に、モデルをアプリケーションに再度追加します。

  • cleanup-patches.sh — 古いパッチバージョンの登録を解除し、そのマニフェストを Amazon S3 から削除します。

使用方法の詳細については、「README」を参照してください。

AWS CloudFormation テンプレート

cloudformation-templates ディレクトリ内の AWS CloudFormation テンプレートを使用して、AWS Panorama アプリケーション用のリソースを作成します。

  • alarm-application.yml — アプリケーションのエラーをモニタリングするアラームを作成します。アプリケーションインスタンスでエラーが発生したり、5 分間実行が停止したりすると、アラームは通知メールを送信します。

  • alarm-device.yml — デバイスの接続をモニタリングするアラームを作成します。デバイスがメトリクスの送信を 5 分間停止すると、アラームは通知メールを送信します。

  • application-role.yml — アプリケーションロールを作成します。ロールには CloudWatch にメトリクスを送信する権限が含まれます。アプリケーションが使用する他の API オペレーションの権限をポリシーステートメントに追加します。

  • vpc-appliance.yml — AWS Panorama アプライアンスのプライベートサブネットサービスアクセスを含む VPC を作成します。アプライアンスを VPC に接続するには、AWS Direct Connect または AWS Site-to-Site VPN を使用します。

  • vpc-endpoint.yml — プライベートサブネットサービスが AWS Panorama サービスにアクセスできる VPC を作成します。VPC 内のリソースはインターネットに接続することなく、AWS Panorama に接続して AWS Panorama リソースのモニタリングと管理ができます。

このディレクトリの create-stack.sh スクリプトは AWS CloudFormation スタックを作成します。引数の数は可変です。最初の引数はテンプレートの名前で、残りの引数はテンプレートのパラメーターのオーバーライドです。

例えば、以下のコマンドはアプリケーションロールを作成します。

$ ./create-stack.sh application-role

その他のサンプルとツール

aws-panorama-samples リポジトリには、さらに多くのサンプルアプリケーションと便利なツールがあります。

  • アプリケーション — さまざまなモデルアーキテクチャとユースケースに対応するサンプルアプリケーション。

  • カメラストリームの検証 — カメラストリームを検証します。

  • PanoJupyter — AWS Panorama アプライアンスで JupyterLab を実行します。

  • サイドローディング — アプリケーションコンテナを構築またはデプロイせずにアプリケーションコードを更新します。

AWS コミュニティでは、AWS Panorama のためのツールやガイダンスも開発しています。GitHub で次のオープンソースプロジェクトをチェックしてください。

  • cookiecutter-panorama — AWS Panorama アプリケーション用のクッキーカッターテンプレート。

  • バックパック — ランタイム環境の詳細、プロファイリング、その他のビデオ出力オプションにアクセスするための Python モジュール。