Creates a simulation job.
Note
After 90 days, simulation jobs expire and will be deleted. They will no longer be accessible.
See also: AWS API Documentation
See ‘aws help’ for descriptions of global parameters.
create-simulation-job
[--client-request-token <value>]
[--output-location <value>]
[--logging-config <value>]
--max-job-duration-in-seconds <value>
--iam-role <value>
[--failure-behavior <value>]
[--robot-applications <value>]
[--simulation-applications <value>]
[--data-sources <value>]
[--tags <value>]
[--vpc-config <value>]
[--compute <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--cli-auto-prompt <value>]
--client-request-token
(string)
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
--output-location
(structure)
Location for output files generated by the simulation job.
s3Bucket -> (string)
The S3 bucket for output.
s3Prefix -> (string)
The S3 folder in the
s3Bucket
where output files will be placed.
Shorthand Syntax:
s3Bucket=string,s3Prefix=string
JSON Syntax:
{
"s3Bucket": "string",
"s3Prefix": "string"
}
--logging-config
(structure)
The logging configuration.
recordAllRosTopics -> (boolean)
A boolean indicating whether to record all ROS topics.
Shorthand Syntax:
recordAllRosTopics=boolean
JSON Syntax:
{
"recordAllRosTopics": true|false
}
--max-job-duration-in-seconds
(long)
The maximum simulation job duration in seconds (up to 14 days or 1,209,600 seconds. When
maxJobDurationInSeconds
is reached, the simulation job will status will transition toCompleted
.
--iam-role
(string)
The IAM role name that allows the simulation instance to call the AWS APIs that are specified in its associated policies on your behalf. This is how credentials are passed in to your simulation job.
--failure-behavior
(string)
The failure behavior the simulation job.
Continue
Restart the simulation job in the same host instance.
Fail
Stop the simulation job and terminate the instance.
Possible values:
Fail
Continue
--robot-applications
(list)
The robot application to use in the simulation job.
(structure)
Application configuration information for a robot.
application -> (string)
The application information for the robot application.
applicationVersion -> (string)
The version of the robot application.
launchConfig -> (structure)
The launch configuration for the robot application.
packageName -> (string)
The package name.
launchFile -> (string)
The launch file name.
environmentVariables -> (map)
The environment variables for the application launch.
key -> (string)
value -> (string)
portForwardingConfig -> (structure)
The port forwarding configuration.
portMappings -> (list)
The port mappings for the configuration.
(structure)
An object representing a port mapping.
jobPort -> (integer)
The port number on the simulation job instance to use as a remote connection point.
applicationPort -> (integer)
The port number on the application.
enableOnPublicIp -> (boolean)
A Boolean indicating whether to enable this port mapping on public IP.
streamUI -> (boolean)
Boolean indicating whether a streaming session will be configured for the application. If
True
, AWS RoboMaker will configure a connection so you can interact with your application as it is running in the simulation. You must configure and luanch the component. It must have a graphical user interface.
JSON Syntax:
[
{
"application": "string",
"applicationVersion": "string",
"launchConfig": {
"packageName": "string",
"launchFile": "string",
"environmentVariables": {"string": "string"
...},
"portForwardingConfig": {
"portMappings": [
{
"jobPort": integer,
"applicationPort": integer,
"enableOnPublicIp": true|false
}
...
]
},
"streamUI": true|false
}
}
...
]
--simulation-applications
(list)
The simulation application to use in the simulation job.
(structure)
Information about a simulation application configuration.
application -> (string)
The application information for the simulation application.
applicationVersion -> (string)
The version of the simulation application.
launchConfig -> (structure)
The launch configuration for the simulation application.
packageName -> (string)
The package name.
launchFile -> (string)
The launch file name.
environmentVariables -> (map)
The environment variables for the application launch.
key -> (string)
value -> (string)
portForwardingConfig -> (structure)
The port forwarding configuration.
portMappings -> (list)
The port mappings for the configuration.
(structure)
An object representing a port mapping.
jobPort -> (integer)
The port number on the simulation job instance to use as a remote connection point.
applicationPort -> (integer)
The port number on the application.
enableOnPublicIp -> (boolean)
A Boolean indicating whether to enable this port mapping on public IP.
streamUI -> (boolean)
Boolean indicating whether a streaming session will be configured for the application. If
True
, AWS RoboMaker will configure a connection so you can interact with your application as it is running in the simulation. You must configure and luanch the component. It must have a graphical user interface.
JSON Syntax:
[
{
"application": "string",
"applicationVersion": "string",
"launchConfig": {
"packageName": "string",
"launchFile": "string",
"environmentVariables": {"string": "string"
...},
"portForwardingConfig": {
"portMappings": [
{
"jobPort": integer,
"applicationPort": integer,
"enableOnPublicIp": true|false
}
...
]
},
"streamUI": true|false
}
}
...
]
--data-sources
(list)
Specify data sources to mount read-only files from S3 into your simulation. These files are available under
/opt/robomaker/datasources/data_source_name
.Note
There is a limit of 100 files and a combined size of 25GB for all
DataSourceConfig
objects.(structure)
Information about a data source.
name -> (string)
The name of the data source.
s3Bucket -> (string)
The S3 bucket where the data files are located.
s3Keys -> (list)
The list of S3 keys identifying the data source files.
(string)
Shorthand Syntax:
name=string,s3Bucket=string,s3Keys=string,string ...
JSON Syntax:
[
{
"name": "string",
"s3Bucket": "string",
"s3Keys": ["string", ...]
}
...
]
--tags
(map)
A map that contains tag keys and tag values that are attached to the simulation job.
key -> (string)
value -> (string)
Shorthand Syntax:
KeyName1=string,KeyName2=string
JSON Syntax:
{"string": "string"
...}
--vpc-config
(structure)
If your simulation job accesses resources in a VPC, you provide this parameter identifying the list of security group IDs and subnet IDs. These must belong to the same VPC. You must provide at least one security group and one subnet ID.
subnets -> (list)
A list of one or more subnet IDs in your VPC.
(string)
securityGroups -> (list)
A list of one or more security groups IDs in your VPC.
(string)
assignPublicIp -> (boolean)
A boolean indicating whether to assign a public IP address.
Shorthand Syntax:
subnets=string,string,securityGroups=string,string,assignPublicIp=boolean
JSON Syntax:
{
"subnets": ["string", ...],
"securityGroups": ["string", ...],
"assignPublicIp": true|false
}
--compute
(structure)
Compute information for the simulation job.
simulationUnitLimit -> (integer)
The simulation unit limit. Your simulation is allocated CPU and memory proportional to the supplied simulation unit limit. A simulation unit is 1 vcpu and 2GB of memory. You are only billed for the SU utilization you consume up to the maximim value provided.
Shorthand Syntax:
simulationUnitLimit=integer
JSON Syntax:
{
"simulationUnitLimit": integer
}
--cli-input-json
| --cli-input-yaml
(string)
Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton
. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml
.
--generate-cli-skeleton
(string)
Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input
, prints a sample input JSON that can be used as an argument for --cli-input-json
. Similarly, if provided yaml-input
it will print a sample input YAML that can be used with --cli-input-yaml
. If provided with the value output
, it validates the command inputs and returns a sample output JSON for that command.
--cli-auto-prompt
(boolean)
Automatically prompt for CLI input parameters.
See ‘aws help’ for descriptions of global parameters.
To create a simulation job
This example creates a simulation job. It uses a robot application and a simulation application.
Command:
aws robomaker create-simulation-job --max-job-duration-in-seconds 3600 --iam-role arn:aws:iam::111111111111:role/AWSRoboMakerCloudWatch-154766341-SimulationJobRole-G0OBWTQ8YBG6 --robot-applications application=arn:aws:robomaker:us-west-2:111111111111:robot-application/MyRobotApplication/1551203485821,launchConfig={packageName=hello_world_robot,launchFile=rotate.launch} --simulation-applications application=arn:aws:robomaker:us-west-2:111111111111:simulation-application/MySimulationApplication/1551203427605,launchConfig={packageName=hello_world_simulation,launchFile=empty_world.launch} --tags Region=North
Output:
{
"arn": "arn:aws:robomaker:us-west-2:111111111111:simulation-job/sim-w7m68wpr05h8",
"status": "Pending",
"lastUpdatedAt": 1551213837.0,
"failureBehavior": "Fail",
"clientRequestToken": "b283ccce-e468-43ee-8642-be76a9d69f15",
"maxJobDurationInSeconds": 3600,
"simulationTimeMillis": 0,
"iamRole": "arn:aws:iam::111111111111:role/MySimulationRole",
"robotApplications": [
{
"application": "arn:aws:robomaker:us-west-2:111111111111:robot-application/MyRobotApplication/1551203485821",
"applicationVersion": "$LATEST",
"launchConfig": {
"packageName": "hello_world_robot",
"launchFile": "rotate.launch"
}
}
],
"simulationApplications": [
{
"application": "arn:aws:robomaker:us-west-2:111111111111:simulation-application/MySimulationApplication/1551203427605",
"applicationVersion": "$LATEST",
"launchConfig": {
"packageName": "hello_world_simulation",
"launchFile": "empty_world.launch"
}
}
],
"tags": {
"Region": "North"
}
}
arn -> (string)
The Amazon Resource Name (ARN) of the simulation job.
status -> (string)
The status of the simulation job.
lastStartedAt -> (timestamp)
The time, in milliseconds since the epoch, when the simulation job was last started.
lastUpdatedAt -> (timestamp)
The time, in milliseconds since the epoch, when the simulation job was last updated.
failureBehavior -> (string)
the failure behavior for the simulation job.
failureCode -> (string)
The failure code of the simulation job if it failed:
InternalServiceError
Internal service error.
RobotApplicationCrash
Robot application exited abnormally.
SimulationApplicationCrash
Simulation application exited abnormally.
BadPermissionsRobotApplication
Robot application bundle could not be downloaded.
BadPermissionsSimulationApplication
Simulation application bundle could not be downloaded.
BadPermissionsS3Output
Unable to publish outputs to customer-provided S3 bucket.
BadPermissionsCloudwatchLogs
Unable to publish logs to customer-provided CloudWatch Logs resource.
SubnetIpLimitExceeded
Subnet IP limit exceeded.
ENILimitExceeded
ENI limit exceeded.
BadPermissionsUserCredentials
Unable to use the Role provided.
InvalidBundleRobotApplication
Robot bundle cannot be extracted (invalid format, bundling error, or other issue).
InvalidBundleSimulationApplication
Simulation bundle cannot be extracted (invalid format, bundling error, or other issue).
RobotApplicationVersionMismatchedEtag
Etag for RobotApplication does not match value during version creation.
SimulationApplicationVersionMismatchedEtag
Etag for SimulationApplication does not match value during version creation.
clientRequestToken -> (string)
Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
outputLocation -> (structure)
Simulation job output files location.
s3Bucket -> (string)
The S3 bucket for output.
s3Prefix -> (string)
The S3 folder in the
s3Bucket
where output files will be placed.
loggingConfig -> (structure)
The logging configuration.
recordAllRosTopics -> (boolean)
A boolean indicating whether to record all ROS topics.
maxJobDurationInSeconds -> (long)
The maximum simulation job duration in seconds.
simulationTimeMillis -> (long)
The simulation job execution duration in milliseconds.
iamRole -> (string)
The IAM role that allows the simulation job to call the AWS APIs that are specified in its associated policies on your behalf.
robotApplications -> (list)
The robot application used by the simulation job.
(structure)
Application configuration information for a robot.
application -> (string)
The application information for the robot application.
applicationVersion -> (string)
The version of the robot application.
launchConfig -> (structure)
The launch configuration for the robot application.
packageName -> (string)
The package name.
launchFile -> (string)
The launch file name.
environmentVariables -> (map)
The environment variables for the application launch.
key -> (string)
value -> (string)
portForwardingConfig -> (structure)
The port forwarding configuration.
portMappings -> (list)
The port mappings for the configuration.
(structure)
An object representing a port mapping.
jobPort -> (integer)
The port number on the simulation job instance to use as a remote connection point.
applicationPort -> (integer)
The port number on the application.
enableOnPublicIp -> (boolean)
A Boolean indicating whether to enable this port mapping on public IP.
streamUI -> (boolean)
Boolean indicating whether a streaming session will be configured for the application. If
True
, AWS RoboMaker will configure a connection so you can interact with your application as it is running in the simulation. You must configure and luanch the component. It must have a graphical user interface.
simulationApplications -> (list)
The simulation application used by the simulation job.
(structure)
Information about a simulation application configuration.
application -> (string)
The application information for the simulation application.
applicationVersion -> (string)
The version of the simulation application.
launchConfig -> (structure)
The launch configuration for the simulation application.
packageName -> (string)
The package name.
launchFile -> (string)
The launch file name.
environmentVariables -> (map)
The environment variables for the application launch.
key -> (string)
value -> (string)
portForwardingConfig -> (structure)
The port forwarding configuration.
portMappings -> (list)
The port mappings for the configuration.
(structure)
An object representing a port mapping.
jobPort -> (integer)
The port number on the simulation job instance to use as a remote connection point.
applicationPort -> (integer)
The port number on the application.
enableOnPublicIp -> (boolean)
A Boolean indicating whether to enable this port mapping on public IP.
streamUI -> (boolean)
Boolean indicating whether a streaming session will be configured for the application. If
True
, AWS RoboMaker will configure a connection so you can interact with your application as it is running in the simulation. You must configure and luanch the component. It must have a graphical user interface.
dataSources -> (list)
The data sources for the simulation job.
(structure)
Information about a data source.
name -> (string)
The name of the data source.
s3Bucket -> (string)
The S3 bucket where the data files are located.
s3Keys -> (list)
The list of S3 keys identifying the data source files.
(structure)
Information about S3 keys.
s3Key -> (string)
The S3 key.
etag -> (string)
The etag for the object.
tags -> (map)
The list of all tags added to the simulation job.
key -> (string)
value -> (string)
vpcConfig -> (structure)
Information about the vpc configuration.
subnets -> (list)
A list of subnet IDs associated with the simulation job.
(string)
securityGroups -> (list)
A list of security group IDs associated with the simulation job.
(string)
vpcId -> (string)
The VPC ID associated with your simulation job.
assignPublicIp -> (boolean)
A boolean indicating if a public IP was assigned.
compute -> (structure)
Compute information for the simulation job.
simulationUnitLimit -> (integer)
The simulation unit limit. Your simulation is allocated CPU and memory proportional to the supplied simulation unit limit. A simulation unit is 1 vcpu and 2GB of memory. You are only billed for the SU utilization you consume up to the maximim value provided.