meta.stackexchange.com#141944предполагает, что вопрос «AWS + личное использование», подобный моему, можно задать здесь, поэтому надеюсь, что я на правильном сайте.
Следуя руководствуAWS Robomaker
(aws.amazon.com)в разделе «Создание и запуск приложений для роботов и моделирования с контейнерами в AWS RoboMaker», шаг 6, выполнение следующей команды завершается ошибкой (заменены учетные данные).
Что я упускаю/неправ? По сути, я создал эту учетную запись AWS заново, поэтому не так много настроек было сделано.
$ aws robomaker create-simulation-job --cli-input-json file://create_simulation_job.json
An error occurred (AccessDeniedException) when calling the CreateSimulationJob operation: User: arn:aws:iam::292945459999:user/fname.lname is not authorized to perform: robomaker:CreateSimulationJob on resource: arn:aws:robomaker:us-east-1:292945459999:simulation-application/robomaker-helloworld-sim-app/1675482941456
Содержимое create_simulation_job.json
(Поскольку в руководстве это неясно, я предположил, что нужно взять ARN "application" из приложения-симулятора robomaker-helloworld-sim-app на Robomaker)
"maxJobDurationInSeconds": 3600,
"iamRole": "arn:aws:iam::292945459999:role/RoboMaker-HelloWorld-Role",
"robotApplications": [
{
"application": "arn:aws:robomaker:us-east-1:292945459999:simulation-application/robomaker-helloworld-sim-app/1675482941456",
"applicationVersion": "$LATEST",
"launchConfig": {
"environmentVariables": {
"ROS_IP": "ROBOMAKER_ROBOT_APP_IP",
"ROS_MASTER_URI": "http://ROBOMAKER_ROBOT_APP_IP:11311",
"GAZEBO_MASTER_URI": "http://ROBOMAKER_SIM_APP_IP:11345"
},
"streamUI": false,
"command": [
"roslaunch", "hello_world_robot", "rotate.launch"
]
},
"tools": [
{
"streamUI": true,
"name": "robot-terminal",
"command": "/entrypoint.sh && xfce4-terminal",
"streamOutputToCloudWatch": true,
"exitBehavior": "RESTART"
}
]
}
],
"simulationApplications": [
{
"application": "arn:aws:robomaker:us-east-1:292945459999:simulation-application/robomaker-helloworld-sim-app/1675482941456",
"launchConfig": {
"environmentVariables": {
"ROS_IP": "ROBOMAKER_SIM_APP_IP",
"ROS_MASTER_URI": "http://ROBOMAKER_ROBOT_APP_IP:11311",
"GAZEBO_MASTER_URI": "http://ROBOMAKER_SIM_APP_IP:11345",
"TURTLEBOT3_MODEL":"waffle_pi"
},
"streamUI": true,
"command": [
"roslaunch", "hello_world_simulation", "empty_world.launch"
]
},
"tools": [
{
"streamUI": true,
"name": "gzclient",
"command": "/entrypoint.sh && gzclient",
"streamOutputToCloudWatch": true,
"exitBehavior": "RESTART"
}
]
}
]
}
Пользователь IAM имеет следующие разрешения:AdministratorAccess, AWSDeepRacerRoboMakerAccessPolicy, AWSRoboMaker_FullAccess
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal
$ aws --version
aws-cli/1.27.64 Python/3.8.10 Linux/5.4.0-137-generic botocore/1.29.64
решение1
Решил сам.
ядуматьЯ забыл запустить aws robomaker create-robot-application
команду вучебник (aws.amazon.com), так как я не видел приложения для робота в моем "Robomaker -> Development -> Robot Applications". Поэтому я сначала (повторно) запустил:
aws robomaker create-robot-application \
--name $robotapp \
--robot-software-suite name=General \
--environment uri=$ecruri/$robotapp:latest
Затем заменил ARN в create_simulation_job.json
файле на тот, который только что вернуло приложение create-robot-application, запустил aws robomaker create-simulation-job
команду, и на этот раз она прошла успешно. Я вижу задание моделирования в «Robomaker -> Запуск моделирования -> Задания моделирования», как и ожидалось.
В create_simulation_job.json в OP есть одна очевидная ошибка: я передавал ARN «sim app» вместо «robot app» (хотя сообщение об ошибке не говорило об этом).
"robotApplications": [
{
"application": "arn:aws:robomaker:us-east-1:292945459999:simulation-application/robomaker-helloworld-sim-app/1675482941456",
: