雲のメモ帳

猫とクラウドと旅行が好きなインフラエンジニアです。 日々の調べたことや興味が持ったことをこのブログにアウトプットします。

ECRの untagged イメージにタグ名をつける

これはなに?

AWS CLIでECRの untagged イメージにタグ名をつける手順メモ。
公式の手順だとイメージ変更にタグ名が必要だが、そもそもタグが付いてないイメージなので困って調べた。
イメージにもう一度タグを付ける - Amazon ECR

f:id:ykoomaru:20200709205916p:plain

目次

実行環境

  • AmazonLinux2

作業

1. タグ名を変更したいイメージの ”imageDigest" 値を取得する。

aws ecr describe-images --profile <your_profile_name> --repository-name <your_repo_name>

f:id:ykoomaru:20200709212712p:plain

2. マニフェストを作成する。

ここが肝で、--image-ids に imageDigest を指定します。
sha256:xxxx の部分は、1で取得した値を入れます。

MANIFEST=$(aws ecr batch-get-image --profile <your_profile_name> --repository-name <your_repo_name> --image-ids "imageDigest=sha256:xxxx" --query 'images[].imageManifest' --output text)

3. タグ名を変更する。

<tag_name> に任意のタグ名を入れてください。

aws ecr put-image --profile <your_profile_name> --repository-name <your_repo_name> --image-tag <tag_name> --image-manifest "$MANIFEST"

4. 実行結果を確認する。

aws ecr describe-images --profile <your_profile_name> --repository-name <your_repo_name>

untaggedの時にはなかったimageTagsという項目が表示されていれば設定完了です。
f:id:ykoomaru:20200709215325p:plain

最後に

WindowsだとマニフェストのJSONをうまく認識させられずInvalidになりました、、。機会があれば調べよう。