Publicación de contenedores de aplicaciones en Amazon ECR - AWS RoboMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Publicación de contenedores de aplicaciones en Amazon ECR

Los contenedores que utiliza AWS RoboMaker en un trabajo de simulación deben almacenarse en Amazon Elastic Container Registry (ECR), un registro de contenedores totalmente administrado. Una vez que haya creado los contenedores de aplicaciones correctamente, debe enviarlos a Amazon ECR. En esta sección le demostramos cómo.

Para empezar, puede evitar tener que escribir de manera repetitiva si configura ciertas variables de entorno que se reutilizarán en los comandos posteriores.

export robotapp=robomaker-helloworld-robot-app export simapp=robomaker-helloworld-sim-app export account=<YOUR AWS ACCOUNT NUMBER> export region=<YOUR AWS REGION> export ecruri=$account.dkr.ecr.$region.amazonaws.com

A continuación, inicie sesión y cree dos repositorios nuevos.

aws ecr get-login-password --region $region | docker login --username AWS --password-stdin $ecruri aws ecr create-repository --repository-name $robotapp aws ecr create-repository --repository-name $simapp

Puede etiquetar sus imágenes de Docker con el URI del repositorio de Amazon ECR.

docker tag $robotapp $ecruri/$robotapp:latest docker tag $simapp $ecruri/$simapp:latest

A continuación, inserte las imágenes de Docker en Amazon ECR.

docker push $ecruri/$robotapp docker push $ecruri/$simapp

Por último, puede confirmar que las imágenes se hayan cargado en Amazon ECR ejecutando los comandos siguientes.

aws ecr list-images --repository-name $simapp aws ecr list-images --repository-name $robotapp

El siguiente fragmento de código muestra el resultado esperado:

Administrator:~/environment/helloworld (ros1) $ aws ecr list-images --repository-name $simapp { "imageIds": [ { "imageDigest": "sha256:28cad40230402343024kf303f30fk20f2f2fa0a8148", "imageTag": "latest" } ] } Administrator:~/environment/helloworld (ros1) $ aws ecr list-images --repository-name $robotapp { "imageIds": [ { "imageDigest": "sha256:28cad40230402343024kf303f30fk20f2f2fa0a8148", "imageTag": "latest" } ] }

Las imágenes de Docker del robot y la simulación se alojan ahora en Amazon ECR. Debe asociar estas imágenes a una aplicación de robot o a una aplicación de simulación antes de enviar un trabajo de simulación.

Control de versiones de la aplicación

AWS RoboMaker admite la creación de más de una versión de las aplicaciones de robot y de simulación. Esto le ayuda a controlar qué código se está usando en los robots y las simulaciones. Una versión es una instantánea numerada de la versión $LATEST de la aplicación. Puede crear una versión para utilizarla en las distintas partes del flujo de trabajo de desarrollo. Por ejemplo, desarrollo, implementación beta o producción.

Al crear una versión de una aplicación de robot o de simulación de AWS RoboMaker, se crea una instantánea de la aplicación. Amazon ECR utiliza resúmenes de imágenes para indicar la versión de la solicitud. AWS RoboMaker recuerda el resumen de la imagen de cada versión.

Si ha subido la imagen a Amazon ECR y no ha modificado el resumen de la imagen, puede acceder a esa versión de la aplicación y utilizarla. Puede crear un máximo de 40 versiones por aplicación.

Al crear una imagen, también puede aplicarle etiquetas. Puede especificar el valor del campo de la etiqueta como latest para la versión $LATEST. Estos valores son distintos entre sí.

Hay dos maneras de que una imagen reciba la etiqueta latest:

  • Si ha especificado una etiqueta con el valor latest.

  • Si introduce una imagen que no tenga etiquetas, en cuyo caso Amazon ECR actualiza la imagen con la latest etiqueta.

Al especificar una etiqueta para una imagen en AWS RoboMaker, la imagen siempre se selecciona como versión $LATEST. Por ejemplo, si crea una aplicación de robot con el nombre de imagen myImage, la etiqueta xyz y el resumen de imagen 123, la versión $LATEST es myImage:xyz con el resumen 123.

Se debe añadir etiquetas en los casos siguientes:

  • Si actualiza la versión $LATEST para usar una etiqueta nueva. Por ejemplo, si tiene la imagen myImage, puede actualizarla con la etiqueta abc. La versión $LATEST de la imagen apunta a myImage:abc.

  • Si actualiza la imagen y vuelve a etiquetarla. Por ejemplo, puede modificar una imagen que tengan la etiqueta abc. Puede usar la etiqueta xyz después de actualizarlas. La versión $LATEST apunta a myImage:xyz.

Para obtener más información, consulte Control de versiones.