AWS Pagerに気をつけろ 〜 awscli v2 & CICD 〜
少し前に正式リリースされたAWS CLI v2は、デフォルトでページャを設定してくれる。 そのため、シェルパイプラインで less コマンドをかまさなくても自動で less コマンドのようなページャが起動される。
一見便利そうに見えるが、一点だけハマりポイントがある。 実行者が人間ではなく機械、つまりCI/CDやプロビジョニングツール環境下における利用だ。
画面内で結果が出力されるような場合(数行程度)は問題ないと思われるものの、数十行以上出力される更新系APIも存在する。
以下の画像は、CircleCI上で aws ecs update-service
コマンドを叩いたときの様子だ。
(所属組織のリソースが含まれているため、ARN等はマスキングしている
画像の様に Too long with no output
というエラー文と共に10分タイムアウトで落ちている。
パイプしたlessコマンドを q
で片付けない状態が10分続いた、というわけだ。
これの解消方法は簡単で、AWSコマンドを叩く際に環境変数 AWS_PAGER
を空文字列で指定するとよい。
CircleCIでも、わずか2行追加するだけで解消する。
(余計なコメントが入っているが、気にしないでほしい)