meta.stackexchange.com#141944schlägt vor, dass eine Frage zu „AWS + persönliche Nutzung“ wie meine hier gestellt werden kann, also hoffe ich, dass ich auf der richtigen Site bin.
Nach einem Tutorial vonAWS Robomaker
(aws.amazon.com), im Abschnitt „Erstellen und Ausführen von Roboter- und Simulationsanwendungen mit Containern in AWS RoboMaker“, Schritt 6, schlägt die Ausführung des folgenden Befehls mit dem Fehler (Anmeldeinformationen ersetzt) fehl.
Was übersehe/mache ich falsch? Ich habe dieses AWS-Konto grundsätzlich neu erstellt, daher wurden nicht so viele Konfigurationen vorgenommen.
$ 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
Inhalt von create_simulation_job.json
(Da es im Tutorial unklar ist, habe ich geraten, die ARN der „Anwendung“ aus der Simulations-App robomaker-helloworld-sim-app auf Robomaker zu übernehmen.)
"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"
}
]
}
]
}
Der IAM-Benutzer verfügt über die folgenden Berechtigungen: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
Antwort1
Habe es selbst beschlossen.
ICHdenkenIch habe vergessen, den Befehl auszuführen aws robomaker create-robot-application
imLernprogramm (aws.amazon.com), da ich die Roboter-App unter „Robomaker -> Entwicklung -> Roboteranwendungen“ nicht gesehen habe. Also habe ich zuerst (erneut) Folgendes ausgeführt:
aws robomaker create-robot-application \
--name $robotapp \
--robot-software-suite name=General \
--environment uri=$ecruri/$robotapp:latest
Dann ersetze ich die ARN in create_simulation_job.json
der Datei durch die, die gerade von der Create-Robot-Anwendung zurückgegeben wurde, führe aws robomaker create-simulation-job
den Befehl aus und da er dieses Mal erfolgreich war, sehe ich wie erwartet einen Simulationsjob unter „Robomaker -> Simulationslauf -> Simulationsjobs“.
In create_simulation_job.json im OP ist ein eindeutiger Fehler: Ich habe die ARN von „Sim App“ übergeben, wo die von „Robot App“ erwartet wurde (obwohl das aus der Fehlermeldung nicht klar hervorging).
"robotApplications": [
{
"application": "arn:aws:robomaker:us-east-1:292945459999:simulation-application/robomaker-helloworld-sim-app/1675482941456",
: