Publicação de contêineres de aplicativos no Amazon ECR - AWS RoboMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Publicação de contêineres de aplicativos no Amazon ECR

Os contêineres usados pelo AWS RoboMaker em um trabalho de simulação devem ser armazenados no Amazon Elastic Container Registry (ECR), um registro de contêineres totalmente gerenciado. Depois de criar com sucesso seus contêineres de aplicativos, você deve enviá-los para o Amazon ECR. Esta seção explica como fazer isso.

Para começar, você pode evitar digitação repetitiva definindo algumas variáveis de ambiente que são reutilizadas nos comandos a seguir.

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

Em seguida, faça login e crie dois novos repositórios.

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

Você pode marcar suas imagens do Docker com o URI do repositório Amazon ECR.

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

Em seguida, envie as imagens do Docker para o Amazon ECR.

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

Por fim, você pode confirmar o upload das imagens para o Amazon ECR executando os seguintes comandos.

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

O seguinte trecho de código mostra a saída esperada:

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" } ] }

Suas imagens do robô e da simulação do Docker agora estão sendo hospedadas no Amazon ECR. Você deve associar essas imagens a um aplicativo de robô ou a um aplicativo de simulação antes de continuar a enviar um trabalho de simulação.

Versionamento de aplicativos

O AWS RoboMaker oferece suporte à criação de mais de uma versão de aplicativos de robótica e de simulação. Isso ajuda você a controlar o código usado por seus robôs e simulações. Uma versão é um snapshot numerado da versão $LATEST do seu aplicativo. Você pode criar uma versão para uso em diferentes partes do seu fluxo de trabalho de desenvolvimento. Por exemplo, desenvolvimento, implantação beta ou de produção.

Quando cria uma versão de um aplicativo de robótica ou de simulação do AWS RoboMaker, você cria um snapshot do aplicativo. O Amazon ECR usa resumos de imagens para indicar a versão do seu aplicativo. O AWS RoboMaker lembra o resumo da imagem de cada versão.

Se você tiver feito o upload da imagem para o Amazon ECR e não tiver alterado o resumo da imagem, poderá acessar e usar essa versão do seu aplicativo. Você pode criar um máximo de 40 versões por aplicativo.

Ao criar uma imagem, você também pode aplicar tags a ela. Você pode especificar o valor do campo da tag latest de acordo com a versão $LATEST. Esses valores são distintos um do outro.

Há duas maneiras pelas quais uma imagem recebe a tag latest:

  • Você especificou uma tag com o valor de latest.

  • Você envia uma imagem que não tem tags. Nesse caso, o Amazon ECR atualiza a imagem com a tag latest.

Quando você especifica uma tag para uma imagem no AWS RoboMaker, a imagem é sempre escolhida como a versão $LATEST. Por exemplo, se você criar um aplicativo de robô com o nome da imagem myImage, a tag xyz e o resumo da imagem 123, a versão $LATEST é myImage:xyz com o resumo 123.

A seguir estão os cenários nos quais você deve adicionar uma tag:

  • Você atualiza a versão $LATEST para usar uma nova tag. Por exemplo, se você tiver a imagem myImage, poderá atualizá-la com a tag abc. A versão $LATEST da imagem aponta para myImage:abc.

  • Você atualiza a imagem e a marca novamente. Por exemplo, você pode fazer alterações em uma imagem que tenha a tag abc. Você pode usar a tag xyz depois de atualizá-la. A versão $LATEST aponta para myImage:xyz.

Para obter mais informações, consulte Versionamento de aplicativos.