Amazon ECR へのアプリケーションコンテナの公開 - AWS RoboMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon ECR へのアプリケーションコンテナの公開

シミュレーションジョブで AWS RoboMaker が使用するコンテナは、フルマネージド型のコンテナレジストリである Amazon Elastic Container Registry (ECR) に保存する必要があります。正常にアプリケーションコンテナをビルドしたら、これを Amazon ECR にプッシュします。このセクションでは、その方法を説明します。

はじめに、以下のコマンドで再利用する環境変数をいくつか設定することで、繰り返し入力する手間を省くことができます。

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

次に、サインインして 2 つの新しいリポジトリを作成します。

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

Docker イメージには Amazon ECR リポジトリの URI をタグ付けできます。

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

次に、Docker イメージを Amazon ECR にプッシュします。

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

最後に、以下のコマンドを実行して Amazon ECR にアップロードされたイメージを確認できます。

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

以下のコードスニペットは、期待される出力を示します。

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

これで、ロボットとシミュレーションの Docker イメージが Amazon ECR 内にホストされました。シミュレーションジョブの送信に進む前に、ロボットアプリケーションまたはシミュレーションアプリケーションとこれらのイメージを関連付ける必要があります。

アプリケーションのバージョニング

AWS RoboMaker は、ロボットアプリケーションとシミュレーションアプリケーションの複数のバージョンの作成をサポートしています。これにより、ロボットとシミュレーションで使用するコードを制御できます。バージョンは、アプリケーションの $LATEST バージョンの番号付きスナップショットです。バージョンは、開発ワークフローの段階別に作成できます。例えば、開発、ベータデプロイ、本番稼働用に別のバージョンを使用します。

AWS RoboMaker のロボットアプリケーションまたはシミュレーションアプリケーションのバージョニングを行う場合は、アプリケーションのスナップショットを作成します。Amazon ECR では、イメージダイジェストを使用してアプリケーションのバージョンが表示されます。AWS RoboMaker は、各バージョンのイメージダイジェストを記憶します。

イメージが Amazon ECR にアップロードされており、イメージダイジェストを変更していない場合は、そのバージョンのアプリケーションにアクセスして使用することができます。アプリケーションごとに作成できるバージョンは最大 40 個です。

イメージの作成時にイメージにタグを適用することもできます。$LATEST バージョンでは、タグフィールドの値を latest として指定することができます。これらの値は相互に区別されます。

イメージに latest タグを付ける方法は 2 つあります。

  • latest の値を含むタグを指定した。

  • タグが付いていないイメージをプッシュすると、Amazon ECR により latest タグが付いてイメージが更新されます。

AWS RoboMaker では、イメージに対してタグを指定すると、そのイメージは常に $LATEST バージョンとして選別されます。例えば、イメージ名が myImage、タグが xyz、イメージダイジェストが 123 であるロボットアプリケーションを作成すると、$LATEST バージョンはダイジェストが 123 である myImage:xyz になります。

以下は、タグを追加する際のシナリオです。

  • 新しいタグを使用するために、$LATEST バージョンに更新します。たとえば、myImage というイメージがある場合は、abc タグを使用してイメージを更新できます。$LATEST バージョンのイメージは myImage:abc を指しています。

  • イメージを更新して再びタグを付けします。例えば、タグ abc が付いているイメージに変更を加えることができます。。タグ xyz は更新後に使用できます。$LATEST バージョンは myImage:xyz を指しています。

詳細については、「バージョニングアプリケーション」を参照してください。