シミュレーションのロギング - AWS RoboMaker

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

シミュレーションのロギング

シミュレーションジョブから出力ファイルやその他のアーティファクトをキャプチャする場合は、カスタムアップロードを設定できます。ロボットアプリケーションとシミュレーションアプリケーションのカスタムアップロードを設定できます。カスタムアップロードを設定すると、指定したファイルが、シミュレーションジョブから、指定した Amazon S3 シミュレーション出力場所にアップロードされます。これは、シミュレーションの実行中に生成されたアプリケーション出力のレビューや分析を行う場合や、アーティファクトを再利用する場合に便利です。

カスタムアップロードを設定する前に、シミュレーションジョブの Amazon S3 出力先を指定する必要があります。AWS RoboMaker は、一致するファイルを指定した名前のフォルダにアップロードします。一致するファイルは、すべてのシミュレーションジョブツールが終了したときにアップロードされるか、または、生成されたときにアップロードされ、その後に削除されます。

デフォルトのアップロード設定は、オフにしない限り、カスタムアップロード設定に自動的に追加されます。デフォルトのアップロード設定では、ROS と Gazebo のデフォルトのログ出力がアップロードされます。これにより、ROS と Gazebo のデフォルトのログ出力がアップロードされた過去のシミュレーションジョブ出力設定との互換性が維持されます。コンソールでシミュレーションジョブを設定するときに、デフォルトのアップロード設定をオフにすることができます。CreateSimulationJob API で useDefaultUploadConfigurationsfalse に設定することでデフォルトのアップロード設定をオフにすることもできます。

シミュレーションアプリケーションは、単一の 128 GB パーティションに拡張され、そのパーティションに書き込みアクセスできるようになります。

カスタムアップロード設定の追加

カスタムアップロード設定を作成するには、Amazon S3 でのファイルのアップロード先を指定する名前プレフィックス、アップロードするファイルを指定する Unix グロブパス、およびファイルがアップロードされるタイミングを指定するアップロード動作を指定する必要があります。

名前

名前とは、Amazon S3 でのファイルのアップロード方法を指定するプレフィックスです。最終パスを決定するために、シミュレーション出力場所に追加されます。

例えば、シミュレーション出力場所が s3://my-bucket であり、アップロード設定の名前が robot-test である場合、ファイルは s3://my-bucket/<simid>/<runid>/robot-test にアップロードされます。

[Path] (パス)

パスは、アップロードされるファイルを指定するものです。スタンダード Unix glob 一致ルールは、次の条件に従って受け入れられます。

  • パスは /home/robomaker/ または /var/log から始めてください。

  • パスには逆パス式 (/..) を含めないでください。

  • シンボリックリンクは追跡されません。

  • パスの中で **スーパーアスタリスクとして使用できます。例えば、/var/log/**.log と指定すると .log ディレクトリツリー内のすべての /var/log ファイルが収集されます。

    また、標準のアスタリスクを標準のワイルドカードとして使用することもできます。例えば、/var/log/system.log* は、system.log_1111system.log_2222/var/log などのファイルに一致します。

アップロード動作

次のいずれかのアップロード動作を選択できます。

  • 終了時にアップロード (UPLOAD_ON_TERMINATE) は、シミュレーションジョブが終了状態になると、パスと一致するすべてのファイルをアップロードします。AWS RoboMaker は最大60分間ログのアップロードを試みます。

    シミュレーションで実行されているすべてのツールが停止するまで、AWS RoboMaker によってファイルのアップロードが開始されることはありません。

  • 自動削除でローリングをアップロード(UPLOAD_ROLLING_AUTO_REMOVE) は、パスに一致するすべてのファイルを生成時にアップロードします。パスは 5 秒ごとにチェックされます。ファイルがアップロードされると、ソースファイルは削除されます。ファイルが削除されると、同じ名前で新規ファイルが作成された場合はこれが以前アップロードされたファイルに置き換わります。AWS RoboMaker は、シミュレーションで実行されているすべてのアプリケーションが停止した後で、最終チェックを行います。

    自動削除によるアップロードローリングは、ローリングログをアップロードする際に役立ちます。パス glob でカバーされない「アクティブ」ファイルに出力を書き込むか、ストリームします。アクティブファイルへの書き込みが終わったら、パス glob がカバーする場所にファイルをロールします。その後、そのファイルはアップロードされて削除されます。

    この設定は、シミュレーションジョブのスペースの節約に役立ちます。また、シミュレーションジョブが終了する前にファイルにアクセスする場合にも役立ちます。

シミュレーションジョブのパーティションサイズは 128 GB です。何らかの理由でシミュレーションジョブが終了した場合、AWS RoboMaker により、カスタムアップロード設定で指定されたすべてのファイルのアップロードが試行されます。

AWS RoboMaker によって作成された環境変数

AWS RoboMaker は、以下のシミュレーションジョブの環境変数を定義します。

  • AWS_ROBOMAKER_SIMULATION_JOB_ID

  • AWS_ROBOMAKER_SIMULATION_JOB_ARN

  • AWS_ROBOMAKER_SIMULATION_RUN_ID

これらの変数は、アプリケーションまたはコマンドラインから取得できます。例えば、Python で現在のシミュレーションジョブ Amazon リソースネーム (ARN) を取得するには、os.environ.get("AWS_ROBOMAKER_SIMULATION_JOB_ARN") を使用します。

シミュレーションジョブの Amazon Simple Storage Service 出力バケットを指定した場合、環境変数を使用して出力パスを見つけることができます。AWS RoboMaker は出力を s3://bucket-name/AWS_ROBOMAKER_SIMULATION_JOB_ID/AWS_ROBOMAKER_SIMULATION_RUN_ID に書き込みます。この出力を使用して、コードまたはコマンドラインから Amazon S3 でオブジェクトを管理できます。

AWS RoboMaker も、CreateSimulationJobRequest にセットアップされた特定の環境変数を扱い、ロボットとシミュレーションアプリケーションコンテナの相互通信を実現します。詳細については、「ROS コンテナに関するよくある質問」を参照してください。