稀にFargateの基盤の更新で、コンテナが強制再起動される旨の通知がくる。
Your application running on AWS Fargate will automatically be updated soon
コンテナは基本的に落ちることを想定して作るから、基本的に放置して良い。 ただし、事情によっては任意のタイミングで更新したいことがある。 さらにコンテナを扱っているとその数が膨大すぎて手動では対応が手に負えないこともある。
このスクリプトはファイルに記述されたサービスを自動で強制再デプロイする。
ファイル名 update.sh
#!/bin/bash set -euo pipefail while read CLUSTER SERVICE; do aws ecs update-service --service "$SERVICE" --cluster "$CLUSTER" --force-new-deployment > /dev/null done < "${1:-/dev/stdin}"
使い方
cat list | ./update.sh
ここでファイルlistは次の方法で取得したものを想定する。