記錄模擬 - AWS RoboMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

記錄模擬

若要從模擬工作擷取輸出檔案和其他成品,您可以設定自訂上傳。您可以為機器人應用程式和模擬應用程式配置自訂上傳。設定自訂上傳時,您指定的檔案會從模擬任務上傳到您提供的 Amazon S3 模擬輸出位置。當您要檢閱或分析在模擬執行期間產生的應用程式輸出或重複使用人工因素時,此功能非常有用。

您必須先為模擬任務提供 Amazon S3 輸出目的地,才能設定自訂上傳。 AWS RoboMaker使用您指定的名稱將相符檔案上傳至資料夾。當所有模擬工作工具都關閉或上傳相符檔案,然後在產生後移除時,即可上傳相符檔案。

預設上傳設定會自動新增至您的自訂上傳設定,除非您將其關閉。預設上傳設定會上傳 ROS 和涼亭預設記錄輸出。這保持了與過去的模擬工作輸出配置的兼容性。上傳了 ROS 和涼亭默認日誌記錄輸出。在主控台中設定模擬工作時,您可以關閉預設的上傳組態。您也可以將其關閉,方法是在CreateSimulationJob APIfalseuseDefaultUploadConfigurations將其設定為。

您的模擬應用程式會被外加到單一 128gb 分割區上,而且您可以對該分割區的寫入權限。

新增自訂上傳組態

若要建立自訂上傳組態,您需要指定名稱前置詞來指定檔案在 Amazon S3 中的上傳位置、指定要上傳檔案的 Unix glob 路徑,以及指定檔案上傳時間的上傳行為

名稱

名稱是指定如何在 Amazon S3 中上傳檔案的前置詞。它會附加至模擬輸出位置,以確定最終路徑。

例如,如果您的模擬輸出位置是,s3://my-bucket且您的上傳規劃名稱為robot-test,則您的檔案會上傳到s3://my-bucket/<simid>/<runid>/robot-test

Path

路徑指定要上傳的檔案。接受標準 Unix 全域匹配規則,但需遵守以下條件:

  • 路徑必須以/home/robomaker/或開頭/var/log

  • 路徑不得包含反向路徑運算式 (/..)。

  • 不遵循符號連結。

  • 您可以在路徑中用**超級星號。例如,指定 /var/log/**.log 以收集 /var/log 樹狀目錄中的所有 .log 檔案。

    您也可以使用標準星號作為標準萬用字元。例如,/var/log/system.log* 符合檔案 (如 /var/log 中的 system.log_1111system.log_2222 等等)。

上傳行為

您可以選取下列其中一個上載行為:

  • 一旦模擬工作進入終止狀態,上傳 on terminate (UPLOAD_ON_TERMINATE) 就會上傳與路徑相符的所有檔案。 AWS RoboMaker嘗試上傳記錄檔最多 60 分鐘。

    AWS RoboMaker在模擬中執行的所有工具停止之前,才會開始上傳檔案。

  • 使用 auto remove (UPLOAD_ROLLING_AUTO_REMOVE) 上傳滾動會在生成時上傳與路徑匹配的所有文件。您會每 5 秒檢查一次路徑。上傳檔案時,會刪除來源檔案。刪除檔案後,如果使用相同名稱產生新檔案,則會取代先前上傳的檔案。 AWS RoboMaker在模擬中執行的所有應用程式停止後,對檔案執行最終檢查。

    使用自動刪除上傳滾動對於上傳滾動日誌非常有用。將輸出寫入或流式傳輸到路徑 glob 未覆蓋的「活動」文件。完成寫入活動文件後,將文件滾動到路徑 glob 覆蓋的位置,以進行上傳和刪除。

    此設定可協助您節省模擬工作中的空間。您也可在模擬任務終止之前存取檔案。

模擬工作分割區大小為 128gb。如果您的模擬工作因任何原因而結束,請AWS RoboMaker嘗試上傳自訂上傳規劃中指定的所有檔案。

AWS RoboMaker 建立的環境變數

AWS RoboMaker定義下列模擬工作環境變數。

  • AWS_ROBOMAKER_SIMULATION_JOB_ID

  • AWS_ROBOMAKER_SIMULATION_JOB_ARN

  • AWS_ROBOMAKER_SIMULATION_RUN_ID

您可以從您的應用程式或從命令列取得這些變數。例如,要在 Python 中獲取當前模擬任務亞馬遜資源名稱(ARN),請使用os.environ.get("AWS_ROBOMAKER_SIMULATION_JOB_ARN")

如果您為模擬任務指定了 Amazon 簡單儲存服務輸出值區,則可以使用環境變數尋找輸出路徑。 AWS RoboMaker將輸出寫入s3://bucket-name/AWS_ROBOMAKER_SIMULATION_JOB_ID/AWS_ROBOMAKER_SIMULATION_RUN_ID。使用此選項可透過程式碼或命令列管理 Amazon S3 中的物件。

AWS RoboMaker也會處理在中設定的特定環境變數,CreateSimulationJobRequest以允許機器人和模擬應用程式容器彼此通訊。如需詳細資訊,請參閱 ROS 容器常見問