pipelines/components/aws/sagemaker/simulation_job
Leonard O' Sullivan 4aa11c3c7f
feat(components) Adds RoboMaker and SageMaker RLEstimator components (#4813)
* Adds RoboMaker and SageMaker RLEstimator components

* Genericise samples

* Genericise samples

* Adds better logging and updates shim component in samples

* Adds fixes for PR comments. Updates tests accordingly

* Adds docker image reference for integration tests. Allows for setting job_name for RLEstimator training jobs

* Separate RM and SM execution roles

* Remove README reference to VPC config items

* Adds more reliable integration test for RoboMaker Simulation Job

* Simplifies integration tests

* Reverted test container entrypoints

* Update black formatting

* Update components for redbackthomson repo

* Prefix RLEstimator job name

* Add RoboMakerFullAccess to generated roles

* Update version to official 1.1.0

* Formatting int test file

* Add PassRole IAM permission to OIDC

* Adds ROBOMAKER_EXECUTION_ROLE_ARN to build vars

Co-authored-by: Nicholas Thomson <nithomso@amazon.com>
2020-12-11 13:27:27 -08:00
..
src feat(components) Adds RoboMaker and SageMaker RLEstimator components (#4813) 2020-12-11 13:27:27 -08:00
README.md feat(components) Adds RoboMaker and SageMaker RLEstimator components (#4813) 2020-12-11 13:27:27 -08:00
component.yaml feat(components) Adds RoboMaker and SageMaker RLEstimator components (#4813) 2020-12-11 13:27:27 -08:00

README.md

RoboMaker Simulation Job Kubeflow Pipelines component

Summary

Component to run a RoboMaker Simulation Job from a Kubeflow Pipelines workflow. https://docs.aws.amazon.com/robomaker/latest/dg/API_CreateSimulationJob.html

Intended Use

For running your simulation workloads using AWS RoboMaker.

Runtime Arguments

Argument Description Optional Data type Accepted values Default
region The region where the cluster launches No String
endpoint_url The endpoint URL for the private link VPC endpoint Yes String
assume_role The ARN of an IAM role to assume when connecting to SageMaker Yes String
app_name The name of the simulation application. Must be unique within the same AWS account and AWS region Yes String SimulationApplication-[datetime]-[random id]
role The Amazon Resource Name (ARN) that Amazon RoboMaker assumes to perform tasks on your behalf No String
output_bucket The bucket to place outputs from the simulation job No String
output_path The S3 key where outputs from the simulation job are placed No String
max_run Timeout in seconds for simulation job (default: 8 * 60 * 60) No String
failure_behavior The failure behavior the simulation job (Continue Fail) Yes String
sim_app_arn The application ARN for the simulation application Yes String
sim_app_version The application version for the simulation application Yes String
sim_app_launch_config The launch configuration for the simulation application Yes String
sim_app_world_config A list of world configurations Yes List of Dicts []
robot_app_arn The application ARN for the robot application Yes String
robot_app_version The application version for the robot application Yes String
robot_app_launch_config The launch configuration for the robot application Yes Dict {}
data_sources Specify data sources to mount read-only files from S3 into your simulation Yes List of Dicts []
vpc_security_group_ids A comma-delimited list of security group IDs, in the form sg-xxxxxxxx Yes String
vpc_subnets A comma-delimited list of subnet IDs in the VPC to which you want to connect your simulation job Yes String
use_public_ip A boolean indicating whether to assign a public IP address Yes Bool False
sim_unit_limit The simulation unit limit Yes String
record_ros_topics A boolean indicating whether to record all ROS topics (Used for logging) Yes Bool False
tags Key-value pairs to categorize AWS resources Yes Dict {}

Notes:

  • This component can be ran in a pipeline with the Create Simulation App and Delete Simulation App components or as a standalone.
  • One of sim_app_arn or robot_app_arn and any related inputs must be provided.
  • The format for the sim_app_launch_config field is:
{
    "packageName": "string",
    "launchFile": "string",
    "environmentVariables": {
        "string": "string",
    },
    "streamUI": "bool",
}
{
    "world": "string"
}
{
    "packageName": "string",
    "launchFile": "string",
    "environmentVariables": {
        "string": "string",
    },
    "streamUI": "bool",
}

Output

The output of the simulation job is sent to the location configured via output_artifacts

Example code

Example of creating a Sim app, then a Sim job and finally deleting the Sim app : robomaker_simulation_job_app

Resources