AWS SAM CLIのビルドイメージが2023/12/01以降Docker Hubで提供されなくなります
初めに
これまでDocker HubおよびAmazon ECRの両方で提供されていたAWS SAM CLIのビルドで利用されているイメージのDocker Hubでの提供が2023/12/01をもって終了する旨がアナウンスされました。
今後は独自処理のために標準イメージ+αの対応が必要な場合等はAmazon ECR上から取得する必要があります。
対応が必要なケース
以下の場合は対応を行う必要があります。
- AWS SAM CLIのバージョンがv1.22.0未満
- 標準でのビルドがDocker Hubを参照しているため、AWS SAM CLI自体のバージョンアップが必要
- Dockerfile等や各種dockerコマンドにてDocker Hub上のビルドイメージを指定している
- 指定をAmazon ECR側に切り替える対応が必要
なおv1.22.0以降のバージョンについては--use-container
で特別指定を行わない標準のビルドではAmazon ECR上からイメージを取得するため特に影響はありません。
% docker images REPOSITORY TAG IMAGE ID CREATED SIZE public.ecr.aws/lambda/python 3.11-rapid-arm64 1c14e8d22f4c 13 days ago 794MB public.ecr.aws/lambda/nodejs 18-rapid-arm64 c31dd1c46bde 2 weeks ago 682MB public.ecr.aws/lambda/python 3.9-rapid-x86_64 1269126ee880 2 weeks ago 622MB public.ecr.aws/lambda/python 3.9-rapid-arm64 10ea72386bf7 2 weeks ago 653MB ...
ちなみに--use-container
のオプションいつから提供されていたのか改めて確認したところv1.23.0のようです。タイミング的に標準で利用するコンテナレジストリのAmazon ECRへの切り替えはこれに先駆けた対応でしょうか?
対象となる具体的なイメージについては先に記載したGithubのissueリンク上に記載されているためそちらをご参照ください。
そもそも最近追加されたランタイムは既に提供されていない
記載されているイメージのランタイムのバージョンがやけに古いなと思って確認してみましたが、そもそも最近追加されたランタイムのイメージはすでにDocker Hubでの提供がないようです。
具体的にDocker Hub側で提供されなくなった時期の境界は確認していませんが2021/8/17にサポートされたPython 3.9が存在し、2022/05/10にサポートされたnodejs16.xのイメージがDocker Hub上に存在しないのでここ2年前後のリリースでしょうか。
既にリリースされているものについては現在もメンテナンスが続いてる関係でAmazon ECR側と合わせてダブルメンテナンス状態となっているので、今回の対応はこの解消を行いAmazon ECR一本化という形になりそうです。
終わりに
先日AWS SAM CLI自体のPython 3.7のサポート終了に引き続きの告知となりました。
サポート終了告知が続くなあと思ったのですが、よくよく考えると2023/11~2023/12にかけてAWS Lambdaのマネージドランタイムの古いバージョンのサポート終了ラッシュ(6つほど)、2023/12/31には無印のAmazon Linux自体のサポート終了があるのでこの辺りで後方互換周りの整理を行いたい意図もあるのでしょうか?
こうなるとここ数ヶ月はまだ何かしら動きがありそうな気がしますので注視していきたいところではあります。